Class SkyNavigator

java.lang.Object
uk.ac.starlink.ttools.plot2.geom.SkyNavigator
All Implemented Interfaces:
Navigator<SkyAspect>

public class SkyNavigator extends Object implements Navigator<SkyAspect>
Navigator for use with sky plot.
Since:
4 Oct 2013
Author:
Mark Taylor
  • Constructor Details

    • SkyNavigator

      public SkyNavigator(double zoomFactor)
      Constructor.
      Parameters:
      zoomFactor - amount of zoom for one mouse wheel click
  • Method Details

    • drag

      public NavAction<SkyAspect> drag(Surface surface, Point pos, int ibutt, Point origin)
      Description copied from interface: Navigator
      Drag gesture.

      Drag gestures typically indicate panning, and in this case should preferably have the outcome that the same data position remains under the cursor before and after the pan (from origin to evt.getPoint()).

      Specified by:
      drag in interface Navigator<SkyAspect>
      Parameters:
      surface - initial plot surface
      pos - current mouse position
      ibutt - logical mouse button index of drag
      origin - starting point of the drag gesture
      Returns:
      navigation action indicated by the gesture, or null for no change
    • endDrag

      public NavAction<SkyAspect> endDrag(Surface surface, Point pos, int ibutt, Point origin)
      Description copied from interface: Navigator
      Terminating drag gesture. This method is invoked following a sequence of drags when the mouse button has been released.
      Specified by:
      endDrag in interface Navigator<SkyAspect>
      Parameters:
      surface - initial plot surface
      pos - current mouse position
      ibutt - logical mouse button index of terminated drag
      origin - starting point of drag gesture
      Returns:
      navigation action indicated by the gesture, or null for no change
    • wheel

      public NavAction<SkyAspect> wheel(Surface surface, Point pos, int wheelrot)
      Description copied from interface: Navigator
      Mouse wheel gesture.

      Wheel gestures usually indicate zooming, and in this case should preferably have the outcome that the same data position remains at the mouse position before and after the zoom.

      Specified by:
      wheel in interface Navigator<SkyAspect>
      Parameters:
      surface - initial plot surface
      pos - current mouse position
      wheelrot - number of wheel rotation clicks
      Returns:
      navigation action indicated by the gesture, or null for no change
    • click

      public NavAction<SkyAspect> click(Surface surface, Point pos, int ibutt, Supplier<CoordSequence> dposSupplier)
      Description copied from interface: Navigator
      Mouse click gesture.

      Note that other elements of the plotting system may intercept some mouse clicks for other purposes, so the navigator may not receive all clicks. For instance the topcat plot window currently intercepts button-1 clicks and interprets them as row selection requests. Typically this navigator method may only get invoked for modified or non-button-1 clicks.

      Implementation of this gesture may require identifying a data position from a screen position, which is not always trivial, for instance in a 3D plot one graphics position maps to a line of data positions. The dposIt argument can optionally be supplied to cope with such instances. If a data pos cannot be determined, null is returned. If dposIt is absent, the method will run quickly. If it's present, the method may or may not run slowly by iterating over the data points.

      Specified by:
      click in interface Navigator<SkyAspect>
      Parameters:
      surface - initial plot surface
      pos - current mouse position
      ibutt - logical mouse button index
      dposSupplier - iterable over dataDimCount-element arrays representing all the data space positions plotted, or null
      Returns:
      navigation action indicated by the gesture, or null for no change
    • getNavOptions

      public Map<Gesture,String> getNavOptions(Surface surface, Point pos)
      Description copied from interface: Navigator
      Returns a description of the available navigation gestures and the behaviour they cause when the mouse is positioned at a particular point. The order of the returned list may be reflected in their presentation to users, so it is generally a good idea to use a LinkedHashMap.
      Specified by:
      getNavOptions in interface Navigator<SkyAspect>
      Parameters:
      surface - plot surface
      pos - mouse position
      Returns:
      mapping of available gestures to short textual descriptions of their behaviour
    • getConfigKeys

      public static ConfigKey<?>[] getConfigKeys()
      Returns the config keys for use with this navigator.
      Returns:
      config keys
    • createNavigator

      public static SkyNavigator createNavigator(ConfigMap navConfig)
      Creates a navigator instance from a config map. The keys defined by getConfigKeys() are used.
      Parameters:
      navConfig - configuration map
      Returns:
      navigator