Package ghidra.graph.viewer.event.mouse

# Class JungPickingGraphMousePlugin<V,E>

java.lang.Object
edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
ghidra.graph.viewer.event.mouse.JungPickingGraphMousePlugin<V,E>

Type Parameters:
  `V` - the vertex type
  `E` - the edge type

All Implemented Interfaces:
  `edu.uci.ics.jung.visualization.control.GraphMousePlugin`, `MouseListener`, `MouseMotionListener`, `EventListener`

Direct Known Subclasses:
  `VisualGraphPickingGraphMousePlugin`

public class JungPickingGraphMousePlugin<V,E> extends edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin implements MouseListener, 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.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `addToSelectionModifiers`
  additional modifiers for the action of adding to an existing selection
  `protected E`
  `edge`
  the picked Edge, if any
  `protected Color`
  `lensColor`
  color for the picking rectangle
  `protected edu.uci.ics.jung.visualization.VisualizationServer.Paintable`
  `lensPaintable`
  the Paintable for the lens picking rectangle
  `protected boolean`
  `locked`
  controls whether the Vertices may be moved with the mouse
  `protected double`
  `offsetx`
  the x distance from the picked vertex center to the mouse point
  `protected double`
  `offsety`
  the y distance from the picked vertex center to the mouse point
  `protected Rectangle2D`
  `rect`
  used to draw a rectangle to contain picked vertices
  `protected 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
  `JungPickingGraphMousePlugin()`
  create an instance with default settings
  `JungPickingGraphMousePlugin(int selectionModifiers, int addToSelectionModifiers)`
  create an instance with overrides

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Color`
  `getLensColor()`
  `boolean`
  `isLocked()`
  `void`
  `mouseClicked(MouseEvent e)`
  `void`
  `mouseDragged(MouseEvent e)`
  If the mouse is over a picked vertex, drag all picked vertices with the mouse.
  `void`
  `mouseEntered(MouseEvent e)`
  `void`
  `mouseExited(MouseEvent e)`
  `void`
  `mouseMoved(MouseEvent e)`
  `void`
  `mousePressed(MouseEvent e)`
  For primary modifiers (default, MouseButton1): pick a single Vertex or Edge that is under the mouse pointer.
  `void`
  `mouseReleased(MouseEvent e)`
  If the mouse is dragging a rectangle, pick the Vertices contained in that rectangle clean up settings from mousePressed
  `protected void`
  `pickContainedVertices(edu.uci.ics.jung.visualization.VisualizationViewer<V,E> vv, Point2D down, 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(Color lensColor)`
  `void`
  `setLocked(boolean locked)`

  ### Methods inherited from class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin

  `checkModifiers, getCursor, getModifiers, setCursor, setModifiers`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### 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 Rectangle2D rect
    used to draw a rectangle to contain picked vertices

  - ### lensPaintable

    protected edu.uci.ics.jung.visualization.VisualizationServer.Paintable lensPaintable
    the Paintable for the lens picking rectangle

  - ### lensColor

    protected Color lensColor
    color for the picking rectangle

- ## Constructor Details

  - ### JungPickingGraphMousePlugin

    public JungPickingGraphMousePlugin()
    create an instance with default settings

  - ### JungPickingGraphMousePlugin

    public JungPickingGraphMousePlugin(int selectionModifiers, int addToSelectionModifiers)
    create an instance with overrides
    Parameters:
      `selectionModifiers` - for primary selection
      `addToSelectionModifiers` - for additional selection

- ## Method Details

  - ### getLensColor

    public Color getLensColor()
    Returns:
      Returns the lensColor.

  - ### setLensColor

    public void setLensColor(Color lensColor)
    Parameters:
      `lensColor` - The lensColor to set.

  - ### mousePressed

    public void mousePressed(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 interface `MouseListener`
    Parameters:
      `e` - the event

  - ### mouseReleased

    public void mouseReleased(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 interface `MouseListener`

  - ### mouseDragged

    public void mouseDragged(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 interface `MouseMotionListener`

  - ### pickContainedVertices

    protected void pickContainedVertices(edu.uci.ics.jung.visualization.VisualizationViewer<V,E> vv, Point2D down, 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 state
      `down` - one corner of the rectangle
      `out` - the other corner of the rectangle
      `clear` - whether to reset existing picked state

  - ### mouseClicked

    public void mouseClicked(MouseEvent e)
    Specified by:
      `mouseClicked` in interface `MouseListener`

  - ### mouseEntered

    public void mouseEntered(MouseEvent e)
    Specified by:
      `mouseEntered` in interface `MouseListener`

  - ### mouseExited

    public void mouseExited(MouseEvent e)
    Specified by:
      `mouseExited` in interface `MouseListener`

  - ### mouseMoved

    public void mouseMoved(MouseEvent e)
    Specified by:
      `mouseMoved` in interface `MouseMotionListener`

  - ### isLocked

    public boolean isLocked()
    Returns:
      Returns the locked.

  - ### setLocked

    public void setLocked(boolean locked)
    Parameters:
      `locked` - The locked to set.