ptolemy.vergil.basic
Class LocatableNodeDragInteractor
java.lang.Object
diva.canvas.interactor.AbstractInteractor
diva.canvas.interactor.DragInteractor
diva.graph.NodeDragInteractor
ptolemy.vergil.basic.LocatableNodeDragInteractor
- All Implemented Interfaces:
- LayerListener, LayerMotionListener, Interactor, java.util.EventListener
public class LocatableNodeDragInteractor
- extends NodeDragInteractor
An interaction role that drags nodes that have locatable objects
as semantic objects. When the node is dragged, this interactor
updates the location in the locatable object with the new location of the
figure.
The dragging of a selection is undoable, and is based on the difference
between the point where the mouse was pressed and where the mouse was
released. This information is used to create MoML to undo the move if
requested.
- Since:
- Ptolemy II 2.0
- Version:
- $Id: LocatableNodeDragInteractor.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Steve Neuendorffer
- Accepted Rating:
- Proposed Rating:
Method Summary |
private double[] |
_getConstrainedPoint(LayerEvent e)
|
void |
mousePressed(LayerEvent e)
When the mouse is pressed before dragging, store a copy of the
pressed point location so that a relative move can be
evaluated for undo purposes. |
void |
mouseReleased(LayerEvent e)
When the mouse is released after dragging, mark the frame modified
and update the panner, and generate an undo entry for the move. |
void |
setSnapResolution(double resolution)
Specify the snap resolution. |
void |
translate(LayerEvent e,
double x,
double y)
Drag all selected nodes and move any attached edges. |
Methods inherited from class diva.canvas.interactor.DragInteractor |
addLayerListener, appendConstraint, constrainPoint, fireLayerEvent, getSelectiveEnabled, getTargetArray, getX, getY, mouseDragged, prependConstraint, removeLayerListener, setSelectiveEnabled, setTargetArray, setup, targets |
Methods inherited from class diva.canvas.interactor.AbstractInteractor |
accept, getMouseFilter, isConsuming, isEnabled, isMotionEnabled, mouseClicked, mouseEntered, mouseExited, mouseMoved, setConsuming, setEnabled, setMotionEnabled, setMouseFilter |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
_controller
private LocatableNodeController _controller
_dragStart
private double[] _dragStart
_snapConstraint
private SnapConstraint _snapConstraint
LocatableNodeDragInteractor
public LocatableNodeDragInteractor(LocatableNodeController controller)
- Create a new interactor contained within the given controller.
- Parameters:
controller
- The controller.
mousePressed
public void mousePressed(LayerEvent e)
- When the mouse is pressed before dragging, store a copy of the
pressed point location so that a relative move can be
evaluated for undo purposes.
- Specified by:
mousePressed
in interface LayerListener
- Overrides:
mousePressed
in class DragInteractor
- Parameters:
e
- The press event.
mouseReleased
public void mouseReleased(LayerEvent e)
- When the mouse is released after dragging, mark the frame modified
and update the panner, and generate an undo entry for the move.
If no movement has occurred, then do nothing.
- Specified by:
mouseReleased
in interface LayerListener
- Overrides:
mouseReleased
in class DragInteractor
- Parameters:
e
- The release event.
setSnapResolution
public void setSnapResolution(double resolution)
- Specify the snap resolution. The default snap resolution is 5.0.
- Parameters:
resolution
- The snap resolution.
translate
public void translate(LayerEvent e,
double x,
double y)
- Drag all selected nodes and move any attached edges.
Update the locatable nodes with the current location.
- Overrides:
translate
in class NodeDragInteractor
- Parameters:
e
- The event triggering this translation.x
- The horizontal delta.y
- The vertical delta.
_getConstrainedPoint
private double[] _getConstrainedPoint(LayerEvent e)