Class 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.
    Author:
    Tom Nelson
    • 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 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
    • Constructor Summary

      Constructors 
      Constructor Description
      PickingGraphMousePlugin()
      create an instance with default settings
      PickingGraphMousePlugin​(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()  
      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​(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 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
      • 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 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​(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.