Package diva.graph
Class BasicEdgeController
- java.lang.Object
-
- diva.graph.BasicEdgeController
-
- All Implemented Interfaces:
EdgeController
- Direct Known Subclasses:
ConceptRelationController
,LinkController
,TransitionController
public class BasicEdgeController extends java.lang.Object implements EdgeController
A basic implementation of EdgeController, which works with graphs that have edges connecting simple nodes.- Version:
- $Id$
- Author:
- Michael Shilman
- Pt.AcceptedRating:
- Red
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
BasicEdgeController.EdgeDropper
An inner class that handles interactive changes to connectivity.
-
Constructor Summary
Constructors Constructor Description BasicEdgeController(GraphController controller)
Create a new edge controller with basic interaction.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEdge(java.lang.Object edge, java.lang.Object node, int end, double x, double y)
Add an edge to this graph editor and render it from the given tail node to an autonomous site at the given location.void
addEdge(java.lang.Object edge, java.lang.Object tail, java.lang.Object head)
Add an edge to this graph between the given tail and head nodes.void
clearEdge(java.lang.Object edge)
Remove the figure for the given edge, but do not remove the edge from the graph model.Figure
drawEdge(java.lang.Object edge)
Draw the edge and add it to the layer, establishing a two-way correspondence between the model and the view.ConnectorTarget
getConnectorTarget()
Get the target used to find sites on nodes to connect to.GraphController
getController()
Get the graph controller that this controller is contained in.Interactor
getEdgeInteractor()
Get the interactor given to edge figures.EdgeRenderer
getEdgeRenderer()
Return the edge renderer for this view.void
removeEdge(java.lang.Object edge)
Remove the edge.Connector
render(java.lang.Object edge, FigureLayer layer, Site tailSite, Site headSite)
Render the edge on the given layer between the two sites.void
setConnectorTarget(ConnectorTarget t)
Set the target used to find sites on nodes to connect to.void
setEdgeInteractor(Interactor interactor)
Set the interactor given to edge figures.void
setEdgeRenderer(EdgeRenderer er)
Set the edge renderer for this view.
-
-
-
Constructor Detail
-
BasicEdgeController
public BasicEdgeController(GraphController controller)
Create a new edge controller with basic interaction. Specifically, this method creates an edge interactor and initializes its manipulator so that edges get attached appropriately. Furthermore, the edge interactor is initialized with the selection model of the graph controller. The manipulator is activated by either a regular click or a control click. Also initialize a basic connector target that generally attaches to the perimeter of nodes, except that it is smart enough to properly handle terminals.
-
-
Method Detail
-
addEdge
public void addEdge(java.lang.Object edge, java.lang.Object node, int end, double x, double y)
Add an edge to this graph editor and render it from the given tail node to an autonomous site at the given location. Give the new edge the given semanticObject. The "end" flag is either HEAD_END or TAIL_END, from diva.canvas.connector.ConnectorEvent.- Specified by:
addEdge
in interfaceEdgeController
- Throws:
GraphException
- If the connector target cannot return a valid site on the node's figure.- See Also:
ConnectorEvent
-
addEdge
public void addEdge(java.lang.Object edge, java.lang.Object tail, java.lang.Object head)
Add an edge to this graph between the given tail and head nodes. Give the new edge the given semanticObject.- Specified by:
addEdge
in interfaceEdgeController
-
clearEdge
public void clearEdge(java.lang.Object edge)
Remove the figure for the given edge, but do not remove the edge from the graph model.- Specified by:
clearEdge
in interfaceEdgeController
-
drawEdge
public Figure drawEdge(java.lang.Object edge)
Draw the edge and add it to the layer, establishing a two-way correspondence between the model and the view. If the edge already has been associated with some figure in the view, then use any information in that figure to help draw the edge.- Specified by:
drawEdge
in interfaceEdgeController
-
getConnectorTarget
public ConnectorTarget getConnectorTarget()
Get the target used to find sites on nodes to connect to.- Specified by:
getConnectorTarget
in interfaceEdgeController
-
getController
public GraphController getController()
Get the graph controller that this controller is contained in.- Specified by:
getController
in interfaceEdgeController
-
getEdgeInteractor
public Interactor getEdgeInteractor()
Get the interactor given to edge figures.- Specified by:
getEdgeInteractor
in interfaceEdgeController
-
getEdgeRenderer
public EdgeRenderer getEdgeRenderer()
Return the edge renderer for this view.- Specified by:
getEdgeRenderer
in interfaceEdgeController
-
removeEdge
public void removeEdge(java.lang.Object edge)
Remove the edge.- Specified by:
removeEdge
in interfaceEdgeController
-
setConnectorTarget
public void setConnectorTarget(ConnectorTarget t)
Set the target used to find sites on nodes to connect to. This sets the local connector target (which is often used to find the starting point of an edge) and the manipulator's connector target, which is used after the connector is being dragged.- Specified by:
setConnectorTarget
in interfaceEdgeController
-
setEdgeInteractor
public void setEdgeInteractor(Interactor interactor)
Set the interactor given to edge figures.- Specified by:
setEdgeInteractor
in interfaceEdgeController
-
setEdgeRenderer
public void setEdgeRenderer(EdgeRenderer er)
Set the edge renderer for this view.- Specified by:
setEdgeRenderer
in interfaceEdgeController
-
render
public Connector render(java.lang.Object edge, FigureLayer layer, Site tailSite, Site headSite)
Render the edge on the given layer between the two sites.- Specified by:
render
in interfaceEdgeController
-
-