com.alveole.studio.web.designer
Class LinkEditor

java.lang.Object
  extended by edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
      extended by com.alveole.studio.web.designer.LinkEditor
All Implemented Interfaces:
edu.uci.ics.jung.visualization.control.GraphMousePlugin, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener

public class LinkEditor
extends edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener

A plugin that can create vertices, undirected edges, and directed edges using mouse gestures. This class was imported from JUNG project and modified to integrate callbacks to GuiActionsManager, when a link is created.

Author:
Tom Nelson - RABA Technologies

Field Summary
protected  edu.uci.ics.jung.visualization.VisualizationViewer.Paintable arrowPaintable
           
protected  java.awt.Shape arrowShape
           
protected  java.awt.geom.Point2D down
           
protected  boolean edgeIsDirected
           
protected  edu.uci.ics.jung.visualization.VisualizationViewer.Paintable edgePaintable
           
protected  java.awt.Shape edgeShape
           
protected  GuiActionsManager manager
           
protected  java.awt.Shape rawArrowShape
           
protected  java.awt.geom.CubicCurve2D rawEdge
           
protected  edu.uci.ics.jung.graph.Vertex startVertex
           
 
Fields inherited from class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
cursor, modifiers
 
Constructor Summary
LinkEditor(GuiActionsManager manager)
           
LinkEditor(GuiActionsManager manager, int modifiers)
          create instance and prepare shapes for visual effects
 
Method Summary
 boolean checkModifiers(java.awt.event.MouseEvent e)
          overrided to be more flexible, and pass events with key combinations.
 boolean isEdgeIsDirected()
           
 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.
 void setEdgeIsDirected(boolean edgeIsDirected)
           
 
Methods inherited from class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin
getCursor, getModifiers, setCursor, setModifiers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

startVertex

protected edu.uci.ics.jung.graph.Vertex 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

edgePaintable

protected edu.uci.ics.jung.visualization.VisualizationViewer.Paintable edgePaintable

arrowPaintable

protected edu.uci.ics.jung.visualization.VisualizationViewer.Paintable arrowPaintable

edgeIsDirected

protected boolean edgeIsDirected

manager

protected GuiActionsManager manager
Constructor Detail

LinkEditor

public LinkEditor(GuiActionsManager manager)

LinkEditor

public LinkEditor(GuiActionsManager manager,
                  int modifiers)
create instance and prepare shapes for visual effects

Parameters:
modifiers -
Method Detail

checkModifiers

public boolean checkModifiers(java.awt.event.MouseEvent e)
overrided to be more flexible, and pass events with key combinations. The default responds to both ButtonOne and ButtonOne+Shift

Specified by:
checkModifiers in interface edu.uci.ics.jung.visualization.control.GraphMousePlugin
Overrides:
checkModifiers in class edu.uci.ics.jung.visualization.control.AbstractGraphMousePlugin

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

isEdgeIsDirected

public boolean isEdgeIsDirected()

setEdgeIsDirected

public void setEdgeIsDirected(boolean edgeIsDirected)