Class EditingGraphMousePlugin<V,​E>

  • All Implemented Interfaces:
    GraphMousePlugin, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener

    public class EditingGraphMousePlugin<V,​E>
    extends AbstractGraphMousePlugin
    implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener
    A plugin that can create vertices, undirected edges, and directed edges using mouse gestures. vertexSupport and edgeSupport member classes are responsible for actually creating the new graph elements, and for repainting the view when changes were made.
    • Constructor Detail

      • EditingGraphMousePlugin

        public EditingGraphMousePlugin​(com.google.common.base.Supplier<V> vertexFactory,
                                       com.google.common.base.Supplier<E> edgeFactory)
        Creates an instance and prepares shapes for visual effects, using the default modifiers of BUTTON1_MASK.
        Parameters:
        vertexFactory - for creating vertices
        edgeFactory - for creating edges
      • EditingGraphMousePlugin

        public EditingGraphMousePlugin​(int modifiers,
                                       com.google.common.base.Supplier<V> vertexFactory,
                                       com.google.common.base.Supplier<E> edgeFactory)
        Creates an instance and prepares shapes for visual effects.
        Parameters:
        modifiers - the mouse event modifiers to use
        vertexFactory - for creating vertices
        edgeFactory - for creating edges
    • Method Detail

      • checkModifiers

        public boolean checkModifiers​(java.awt.event.MouseEvent e)
        Overridden to be more flexible, and pass events with key combinations. The default responds to both ButtonOne and ButtonOne+Shift
        Specified by:
        checkModifiers in interface GraphMousePlugin
        Overrides:
        checkModifiers in class AbstractGraphMousePlugin
        Parameters:
        e - an event to compare to
        Returns:
        whether the member modifiers match the event modifiers
      • mousePressed

        public void mousePressed​(java.awt.event.MouseEvent e)
        If the mouse is pressed in an empty area, create a new vertex there. If the mouse is pressed on an existing vertex, prepare to create an edge from that vertex to another
        Specified by:
        mousePressed in interface java.awt.event.MouseListener
      • mouseReleased

        public void mouseReleased​(java.awt.event.MouseEvent e)
        If startVertex is non-null, and the mouse is released over an existing vertex, create an undirected edge from startVertex to the vertex under the mouse pointer. If shift was also pressed, create a directed edge instead.
        Specified by:
        mouseReleased in interface java.awt.event.MouseListener
      • mouseDragged

        public void mouseDragged​(java.awt.event.MouseEvent e)
        If startVertex is non-null, stretch an edge shape between startVertex and the mouse pointer to simulate edge creation
        Specified by:
        mouseDragged in interface java.awt.event.MouseMotionListener
      • 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
      • setVertexSupport

        public void setVertexSupport​(VertexSupport<V,​E> vertexSupport)
      • setEdgeSupport

        public void setEdgeSupport​(EdgeSupport<V,​E> edgeSupport)