Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Plot] Synchronize time conductor to plot zoom/pan state. #1261

Closed
akhenry opened this issue Oct 17, 2016 · 14 comments · Fixed by #3843
Closed

[Plot] Synchronize time conductor to plot zoom/pan state. #1261

akhenry opened this issue Oct 17, 2016 · 14 comments · Fixed by #3843

Comments

@akhenry
Copy link
Contributor

akhenry commented Oct 17, 2016

It should be possible via a button or gesture to set the bounds of the time conductor based on a plot's current pan/zoom state.

@akhenry akhenry added this to the Robinson milestone Oct 17, 2016
@larkin
Copy link
Contributor

larkin commented Oct 24, 2016

@charlesh88 to design / talk specific gestures for this. May be separate gestures. Either @larkin or @akhenry working on implementation.

@larkin larkin modified the milestones: Robinson, Roddenberry Nov 14, 2016
@larkin larkin modified the milestones: Roddenberry, Sagan Dec 5, 2016
@charlesh88 charlesh88 modified the milestones: Sagan, Shelley Jan 11, 2017
@charlesh88
Copy link
Contributor

Of course, what happens here is that setting the Time Conductor to the datetime bounds of a plot view then causes all other objects in view that are synced to the TC to change their bounds as well, just as if the user had directly manipulated the TC directly.

When the TC is in Real-time mode, and the user has zoomed or panned in a plot, that plot "breaks off" from the TC and real-time updates - effectively, the plot is in fixed time mode while the TC and everything else keeps on keeping on in RT mode. If the user is allowed to sync the TC from that plot while the TC is in RT mode, what should happen?

If we allow this action, then it seems to me that we have to exit real-time mode. I'd suggest that throwing up a warning dialog informing the user that this action will exit RT mode, with Ok and Cancel would be sufficient. Another option is to not allow the TC-sync-from-plot gesture when in RT mode. I don't like this because it seems like an undue restriction, and might confuse users as to why the functionality isn't available.

Charles putting this question to Mark via email.

@charlesh88
Copy link
Contributor

With regard to separate gestures, here's how that might break down:

  1. Sync to both pan and zoom: pass the plot's start and end datetime to the TC, the TC updates its start and end to those settings.
  2. Sync to pan only: Have the TC "pan" to center on the datetime value that is centered in the plot's view without changing its own duration. For example, if the TC has a 12 hour duration, say from yesterday 00:00 to today 12:00, and the user has zoom panned such that the plot displays 1:00 to 3:00 today, then the TC would pan itself to center on 2:00. To preserve the 12 hour duration, the TC's bounds would be 16:00 from the previous day to 8:00 in the current day.
  3. Sync to zoom only: This would keep the TC's current time center while expanding or contracting it's duration to match the duration of the plot. Note that only the plot's duration is relevant to the TC; the plot could be displaying data completely outside the current bounds of the TC. Given that the goal of this this feature is to quickly bring data of interest into view in other displays, this gesture doesn't make sense and I don't think we should support it.

Number 1 above is the simplest, and gets my vote for an initial implementation. 2 might also be desirable. 3 doesn't make sense unless I've missed something.

@larkin @VWoeltjen @akhenry What do you think? What are VISTA use cases that might pertain here? I'll also put this to Mark via email.

@VWoeltjen
Copy link
Contributor

Number 1 above is the simplest, and gets my vote for an initial implementation. 2 might also be desirable. 3 doesn't make sense unless I've missed something.

This summarizes my thoughts pretty well. There are plausible use cases for 2 but this may not be the only way to satisfy them (to recenter seems like something I'd be inclined to do using the time-of-interest instead of plot bounds), so I'd wait for a user request to see what form that takes.

@charlesh88
Copy link
Contributor

Mark's response to the question posed re. what do when in RT mode:

Yes. The use case makes sense. A warning is fine.

It is sometimes preferable to handle things like this with a simple, general mechanism, even if it’s a little less optimized for a single case. In my tool, this was handled by being able to copy the time string from a plot to the clipboard and being able to enter the time into the timeline (time conductor) as text, either typing it directly or pasting it from the clipboard. Being able to put the time in the clipboard helped occasionally when working with other tools.
I’m not saying do that here, or to respond to JPL’s issue. I think your suggestion is fine. But do keep in mind simple building blocks that can be combined to do things like this.

@charlesh88
Copy link
Contributor

charlesh88 commented Jan 12, 2017

Ok, having left this open for a bit for comments, I say let's move ahead. At this point, the consensus is this:

  1. Initially just do combined pan/zoom sync as detailed above: pass the plot's start and end datetime to the TC, the TC updates its start and end to those settings.
  2. Do this via a button in the plot's local controls.
  3. Display a warning confirmation dialog only when the system is in RT mode when this occurs, warning the user that they will exit RT mode.
  4. Switch to historic mode.
  5. Any other unsynced components will be resynced to the TC, just as if the user directly manipulated the TC themselves.

Updated UI published here starting on page 57. Reassigning to @akhenry for implementation. Note that there are some small design changes to the local control buttons that I'll take care of; let's coordinate on where and how to do this.

@charlesh88 charlesh88 reopened this Jan 12, 2017
@charlesh88 charlesh88 assigned akhenry and unassigned charlesh88 Jan 13, 2017
@charlesh88 charlesh88 modified the milestones: Shelley, Simmons Jan 24, 2017
@charlesh88 charlesh88 removed this from the Stephenson milestone Feb 14, 2017
@akhenry
Copy link
Contributor Author

akhenry commented Mar 7, 2017

Bumping due to new Plot, and further discussions necessary around zoom.

@akhenry akhenry modified the milestones: Stross, Sterling Mar 7, 2017
@larkin larkin modified the milestones: Stross, Tiptree Apr 5, 2017
@larkin larkin changed the title [Time Conductor] Synchronize time conductor to plot zoom/pan state. [Plot] Synchronize time conductor to plot zoom/pan state. Sep 18, 2017
@larkin
Copy link
Contributor

larkin commented Sep 18, 2017

revised as a plot feature (not a conductor feature).

@larkin larkin removed this from the Tiptree milestone Sep 18, 2017
@carlfriess
Copy link

Is there any progress on this feature? Would be super useful! Especially with stacked plots.

@shefalijoshi
Copy link
Contributor

The design attached here appears old. @charlesh88 @tiffanyatruong Please attach new designs for this feature.

@shefalijoshi
Copy link
Contributor

Testing instructions:
Set to Local Clock mode in the time conductor
Create an overlay or stacked plot
Add telemetry endpoints to the plot
Either pan/zoom/pause the plot
A warning should be shown with orange border and icon
The sync with time conductor button should be displayed
Press the sync with time conductor button
A dialog should appear notifying the user that this will change the time conductor to fixed timespan mode
The warning should go away

Pan/zoom the plot again (now in fixed timespan mode)
A warning should be shown with orange border and icon
The sync with time conductor button should be displayed
Press the sync with time conductor button
A mini notification should appear at the top of the application that the time conductor bounds will change.

@akhenry akhenry added this to Needs triage in Bug Tracker via automation Jun 4, 2021
@akhenry akhenry moved this from Needs triage to Current Sprint in Bug Tracker Jun 4, 2021
@jvigliotta
Copy link
Contributor

Verified fixed Testathon 6/4/2021

1 similar comment
@charlesh88
Copy link
Contributor

Verified fixed Testathon 6/4/2021

@unlikelyzero unlikelyzero moved this from Current Sprint to Closed in Bug Tracker Jun 4, 2021
@nikhilmandlik
Copy link
Contributor

Verified Fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging a pull request may close this issue.

9 participants