Class EditingGraphMousePlugin<V,E>

java.lang.Object
edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
edu.uci.ics.jung.visualization.control.EditingGraphMousePlugin<V,E>
All Implemented Interfaces:
GraphMousePlugin, MouseListener, MouseMotionListener, EventListener

public class EditingGraphMousePlugin<V,E> extends AbstractGraphMousePlugin implements MouseListener, 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.
  • Field Details

  • Constructor Details

    • 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 Details

    • checkModifiers

      public boolean checkModifiers(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(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 MouseListener
    • mouseReleased

      public void mouseReleased(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 MouseListener
    • mouseDragged

      public void mouseDragged(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 MouseMotionListener
    • 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
    • getVertexSupport

      public VertexSupport<V,E> getVertexSupport()
    • setVertexSupport

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

      public EdgeSupport<V,E> getEdgeSupport()
    • setEdgeSupport

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