Package uk.ac.starlink.ttools.plot2
Class NavigationListener<A>
java.lang.Object
uk.ac.starlink.ttools.plot2.NavigationListener<A>
- All Implemented Interfaces:
MouseListener,MouseMotionListener,MouseWheelListener,EventListener
public abstract class NavigationListener<A>
extends Object
implements MouseListener, MouseMotionListener, MouseWheelListener
Listener that receives mouse events and uses them in conjunction with
a supplied navigator to feed navigation actions to a set of one or
more plot surfaces.
- Since:
- 30 Oct 2013
- Author:
- Mark Taylor
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListeners(Component component) Convenience method to install this listener on a graphical component.abstract Supplier<CoordSequence>Returns an iterable over a sequence of data space positions, which may be required to make sense of a click action.getNavigator(int isurf) Returns a navigator which is used to convert mouse gestures into navigation actions.abstract SurfacegetSurface(int isurf) Returns the current plotting surface corresponding to a given numeric label.abstract intgetSurfaceIndex(Point pos) Return an index labelling the plotting surface which provides the context for navigation actions referenced at a given point.protected voidhandleClick(Navigator<A> navigator, int isurf, Point pos, int ibutt, Supplier<CoordSequence> dposSupplier) Performs the actual work when a mouse click event is detected.voidmouseClicked(MouseEvent evt) voidmouseDragged(MouseEvent evt) voidmouseEntered(MouseEvent evt) voidmouseExited(MouseEvent evt) voidmouseMoved(MouseEvent evt) voidmousePressed(MouseEvent evt) voidmouseReleased(MouseEvent evt) voidvoidremoveListeners(Component component) Reverses the effect ofaddListeners.protected abstract voidReceives a new aspect requested by user interface actions in conjunction with this object.protected abstract voidsetDecoration(Decoration decoration) Sets a decoration to display over the plot to indicate navigation actions in progress.voidupdateDecoration(Decoration dec, boolean autoCancel) Requests a change of the current navigation decoration.
-
Constructor Details
-
NavigationListener
protected NavigationListener()Constructor.
-
-
Method Details
-
getSurfaceIndex
Return an index labelling the plotting surface which provides the context for navigation actions referenced at a given point.- Parameters:
pos- reference point for navigation- Returns:
- numeric label for plotting surface relevant for actions at, or starting at, the given point
-
getSurface
Returns the current plotting surface corresponding to a given numeric label. The supplied index must be one returned fromgetSurfaceIndex(java.awt.Point)(if not, behaviour is undefined).- Parameters:
isurf- surface index returned fromgetSurfaceIndex- Returns:
- current plotting surface corresponding to the given index; may be null
-
createDataPosSupplier
Returns an iterable over a sequence of data space positions, which may be required to make sense of a click action.- Parameters:
pos- reference position for data- Returns:
- iterable over data positions, may be null
- See Also:
-
setAspect
Receives a new aspect requested by user interface actions in conjunction with this object. The supplied aspect corresponds to the surface with the given index, as supplied by thegetSurfaceIndex(java.awt.Point)method.- Parameters:
isurf- label for surface to which new aspect appliesaspect- definition of requested plot surface
-
setDecoration
Sets a decoration to display over the plot to indicate navigation actions in progress. This decoration should be displayed until further notice, that is, until this method is called again with a null argument.This method is called by
updateDecoration. It should not be called directly.- Parameters:
decoration- navigation decoration, or null for none
-
updateDecoration
Requests a change of the current navigation decoration. This performs some housekeeping operations, and callssetDecoration(uk.ac.starlink.ttools.plot2.Decoration). TheautoCancelparameter controls whether the decoration will be cancelled automatically or by hand. If the caller can guarantee to make a matching call with a null decoration in the future,autoCancelmay be false, otherwise it should be true.- Parameters:
dec- new decorationautoCancel- if true, decoration will be automatically cancelled
-
mousePressed
- Specified by:
mousePressedin interfaceMouseListener
-
mouseDragged
- Specified by:
mouseDraggedin interfaceMouseMotionListener
-
mouseReleased
- Specified by:
mouseReleasedin interfaceMouseListener
-
mouseClicked
- Specified by:
mouseClickedin interfaceMouseListener
-
mouseWheelMoved
- Specified by:
mouseWheelMovedin interfaceMouseWheelListener
-
mouseMoved
- Specified by:
mouseMovedin interfaceMouseMotionListener
-
mouseEntered
- Specified by:
mouseEnteredin interfaceMouseListener
-
mouseExited
- Specified by:
mouseExitedin interfaceMouseListener
-
addListeners
Convenience method to install this listener on a graphical component. This currently just callsaddMouseListener,addMouseMotionListenerandaddMouseWheelListener.- Parameters:
component- component to which this object should listen
-
removeListeners
Reverses the effect ofaddListeners.- Parameters:
component- component to which this listener was previously added
-