Class PickingGraphMousePlugin<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
-
- edu.uci.ics.jung.visualization.control.PickingGraphMousePlugin<V,E>
-
- All Implemented Interfaces:
GraphMousePlugin
,java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.util.EventListener
public class PickingGraphMousePlugin<V,E> extends AbstractGraphMousePlugin implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener
PickingGraphMousePlugin supports the picking of graph elements with the mouse. MouseButtonOne picks a single vertex or edge, and MouseButtonTwo adds to the set of selected Vertices or EdgeType. If a Vertex is selected and the mouse is dragged while on the selected Vertex, then that Vertex will be repositioned to follow the mouse until the button is released.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
PickingGraphMousePlugin.LensPaintable
a Paintable to draw the rectangle used to pick multiple Vertices
-
Field Summary
Fields Modifier and Type Field Description protected int
addToSelectionModifiers
additional modifiers for the action of adding to an existing selectionprotected E
edge
the picked Edge, if anyprotected java.awt.Color
lensColor
color for the picking rectangleprotected VisualizationServer.Paintable
lensPaintable
the Paintable for the lens picking rectangleprotected boolean
locked
controls whether the Vertices may be moved with the mouseprotected double
offsetx
the x distance from the picked vertex center to the mouse pointprotected double
offsety
the y distance from the picked vertex center to the mouse pointprotected java.awt.geom.Rectangle2D
rect
used to draw a rectangle to contain picked verticesprotected V
vertex
the picked Vertex, if any-
Fields inherited from class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
cursor, down, modifiers
-
-
Constructor Summary
Constructors Constructor Description PickingGraphMousePlugin()
create an instance with default settingsPickingGraphMousePlugin(int selectionModifiers, int addToSelectionModifiers)
create an instance with overides
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.awt.Color
getLensColor()
private boolean
heyThatsTooClose(java.awt.geom.Point2D p, java.awt.geom.Point2D q, double min)
rejects picking if the rectangle is too small, like if the user meant to select one vertex but moved the mouse slightlyboolean
isLocked()
void
mouseClicked(java.awt.event.MouseEvent e)
void
mouseDragged(java.awt.event.MouseEvent e)
If the mouse is over a picked vertex, drag all picked vertices with the mouse.void
mouseEntered(java.awt.event.MouseEvent e)
void
mouseExited(java.awt.event.MouseEvent e)
void
mouseMoved(java.awt.event.MouseEvent e)
void
mousePressed(java.awt.event.MouseEvent e)
For primary modifiers (default, MouseButton1): pick a single Vertex or Edge that is under the mouse pointer.void
mouseReleased(java.awt.event.MouseEvent e)
If the mouse is dragging a rectangle, pick the Vertices contained in that rectangle clean up settings from mousePressedprotected void
pickContainedVertices(VisualizationViewer<V,E> vv, java.awt.geom.Point2D down, java.awt.geom.Point2D out, boolean clear)
pick the vertices inside the rectangle created from points 'down' and 'out' (two diagonally opposed corners of the rectangle)void
setLensColor(java.awt.Color lensColor)
void
setLocked(boolean locked)
-
Methods inherited from class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
checkModifiers, getCursor, getModifiers, setCursor, setModifiers
-
-
-
-
Field Detail
-
vertex
protected V vertex
the picked Vertex, if any
-
edge
protected E edge
the picked Edge, if any
-
offsetx
protected double offsetx
the x distance from the picked vertex center to the mouse point
-
offsety
protected double offsety
the y distance from the picked vertex center to the mouse point
-
locked
protected boolean locked
controls whether the Vertices may be moved with the mouse
-
addToSelectionModifiers
protected int addToSelectionModifiers
additional modifiers for the action of adding to an existing selection
-
rect
protected java.awt.geom.Rectangle2D rect
used to draw a rectangle to contain picked vertices
-
lensPaintable
protected VisualizationServer.Paintable lensPaintable
the Paintable for the lens picking rectangle
-
lensColor
protected java.awt.Color lensColor
color for the picking rectangle
-
-
Constructor Detail
-
PickingGraphMousePlugin
public PickingGraphMousePlugin()
create an instance with default settings
-
PickingGraphMousePlugin
public PickingGraphMousePlugin(int selectionModifiers, int addToSelectionModifiers)
create an instance with overides- Parameters:
selectionModifiers
- for primary selectionaddToSelectionModifiers
- for additional selection
-
-
Method Detail
-
getLensColor
public java.awt.Color getLensColor()
- Returns:
- Returns the lensColor.
-
setLensColor
public void setLensColor(java.awt.Color lensColor)
- Parameters:
lensColor
- The lensColor to set.
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
For primary modifiers (default, MouseButton1): pick a single Vertex or Edge that is under the mouse pointer. If no Vertex or edge is under the pointer, unselect all picked Vertices and edges, and set up to draw a rectangle for multiple selection of contained Vertices. For additional selection (default Shift+MouseButton1): Add to the selection, a single Vertex or Edge that is under the mouse pointer. If a previously picked Vertex or Edge is under the pointer, it is un-picked. If no vertex or Edge is under the pointer, set up to draw a multiple selection rectangle (as above) but do not unpick previously picked elements.- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
- Parameters:
e
- the event
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
If the mouse is dragging a rectangle, pick the Vertices contained in that rectangle clean up settings from mousePressed- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
If the mouse is over a picked vertex, drag all picked vertices with the mouse. If the mouse is not over a Vertex, draw the rectangle to select multiple Vertices- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
-
heyThatsTooClose
private boolean heyThatsTooClose(java.awt.geom.Point2D p, java.awt.geom.Point2D q, double min)
rejects picking if the rectangle is too small, like if the user meant to select one vertex but moved the mouse slightly- Parameters:
p
-q
-min
-- Returns:
-
pickContainedVertices
protected void pickContainedVertices(VisualizationViewer<V,E> vv, java.awt.geom.Point2D down, java.awt.geom.Point2D out, boolean clear)
pick the vertices inside the rectangle created from points 'down' and 'out' (two diagonally opposed corners of the rectangle)- Parameters:
vv
- the viewer containing the layout and picked statedown
- one corner of the rectangleout
- the other corner of the rectangleclear
- whether to reset existing picked state
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEntered
in interfacejava.awt.event.MouseListener
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
-
isLocked
public boolean isLocked()
- Returns:
- Returns the locked.
-
setLocked
public void setLocked(boolean locked)
- Parameters:
locked
- The locked to set.
-
-