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
    additional modifiers for the action of adding to an existing selection
    protected E
    the picked Edge, if any
    protected Color
    color for the picking rectangle
    protected edu.uci.ics.jung.visualization.VisualizationServer.Paintable
    the Paintable for the lens picking rectangle
    protected boolean
    controls whether the Vertices may be moved with the mouse
    protected double
    the x distance from the picked vertex center to the mouse point
    protected double
    the y distance from the picked vertex center to the mouse point
    protected Rectangle2D
    used to draw a rectangle to contain picked vertices
    protected V
    the picked Vertex, if any

    Fields inherited from class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin

    cursor, down, modifiers
  • Constructor Summary

    Constructors
    Constructor
    Description
    create an instance with default settings
    JungPickingGraphMousePlugin(int selectionModifiers, int addToSelectionModifiers)
    create an instance with overrides
  • Method Summary

    Modifier and Type
    Method
    Description
     
    boolean
     
    void
     
    void
    If the mouse is over a picked vertex, drag all picked vertices with the mouse.
    void
     
    void
     
    void
     
    void
    For primary modifiers (default, MouseButton1): pick a single Vertex or Edge that is under the mouse pointer.
    void
    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.