Class JungPickingGraphMousePlugin<V,​E>

  • Type Parameters:
    V - the vertex type
    E - the edge type
    All Implemented Interfaces:
    edu.uci.ics.jung.visualization.control.GraphMousePlugin, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener
    Direct Known Subclasses:
    VisualGraphPickingGraphMousePlugin

    public class JungPickingGraphMousePlugin<V,​E>
    extends edu.uci.ics.jung.visualization.control.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.
    • 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 java.awt.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 java.awt.geom.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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.awt.Color getLensColor()  
      boolean 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 mousePressed
      protected void pickContainedVertices​(edu.uci.ics.jung.visualization.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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 edu.uci.ics.jung.visualization.VisualizationServer.Paintable lensPaintable
        the Paintable for the lens picking rectangle
      • lensColor

        protected java.awt.Color lensColor
        color for the picking rectangle
    • Constructor Detail

      • 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 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 interface java.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 interface java.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 interface java.awt.event.MouseMotionListener
      • pickContainedVertices

        protected void pickContainedVertices​(edu.uci.ics.jung.visualization.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 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​(java.awt.event.MouseEvent e)
        Specified by:
        mouseClicked in interface java.awt.event.MouseListener
      • mouseEntered

        public void mouseEntered​(java.awt.event.MouseEvent e)
        Specified by:
        mouseEntered in interface java.awt.event.MouseListener
      • mouseExited

        public void mouseExited​(java.awt.event.MouseEvent e)
        Specified by:
        mouseExited in interface java.awt.event.MouseListener
      • mouseMoved

        public void mouseMoved​(java.awt.event.MouseEvent e)
        Specified by:
        mouseMoved in interface java.awt.event.MouseMotionListener
      • isLocked

        public boolean isLocked()
        Returns:
        Returns the locked.
      • setLocked

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