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.
    • Constructor Summary

      Constructors 
      Constructor Description
      EditingGraphMousePlugin​(int modifiers, org.apache.commons.collections4.Factory<V> vertexFactory, org.apache.commons.collections4.Factory<E> edgeFactory)
      create instance and prepare shapes for visual effects
      EditingGraphMousePlugin​(org.apache.commons.collections4.Factory<V> vertexFactory, org.apache.commons.collections4.Factory<E> edgeFactory)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean checkModifiers​(java.awt.event.MouseEvent e)
      Overridden to be more flexible, and pass events with key combinations.
      void mouseClicked​(java.awt.event.MouseEvent e)  
      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
      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)
      If the mouse is pressed in an empty area, create a new vertex there.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • startVertex

        protected V startVertex
      • down

        protected java.awt.geom.Point2D down
      • rawEdge

        protected java.awt.geom.CubicCurve2D rawEdge
      • edgeShape

        protected java.awt.Shape edgeShape
      • rawArrowShape

        protected java.awt.Shape rawArrowShape
      • arrowShape

        protected java.awt.Shape arrowShape
      • edgeIsDirected

        protected edu.uci.ics.jung.graph.util.EdgeType edgeIsDirected
      • vertexFactory

        protected org.apache.commons.collections4.Factory<V> vertexFactory
      • edgeFactory

        protected org.apache.commons.collections4.Factory<E> edgeFactory
    • Constructor Detail

      • EditingGraphMousePlugin

        public EditingGraphMousePlugin​(org.apache.commons.collections4.Factory<V> vertexFactory,
                                       org.apache.commons.collections4.Factory<E> edgeFactory)
      • EditingGraphMousePlugin

        public EditingGraphMousePlugin​(int modifiers,
                                       org.apache.commons.collections4.Factory<V> vertexFactory,
                                       org.apache.commons.collections4.Factory<E> edgeFactory)
        create instance and prepare shapes for visual effects
        Parameters:
        modifiers -
    • 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 modifers 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