Package diva.graph
Interface GraphController
-
- All Known Implementing Classes:
AbstractGraphController
,ActorEditorGraphController
,ActorViewerGraphController
,BasicGraphController
,BasicGraphController
,BubbleGraphController
,BusContentionApplet.BusContentionGraphController
,CaseGraphFrame.CaseGraphController
,EditIconGraphController
,FmvAutomatonGraphController
,FSMGraphController
,FSMViewerGraphController
,InterfaceAutomatonGraphController
,LocalZenoApplet.LocalZenoGraphController
,MatchResultViewer.MatchResultActorGraphController
,MatchResultViewer.MatchResultFSMGraphController
,OntologyGraphController
,OntologySolverGraphController
,PteraGraphController
,RunnableGraphController
,SimpleGraphController
,TransformationEditor.TransformationActorGraphController
,TransformationEditor.TransformationFSMGraphController
,WithIconGraphController
public interface GraphController
A class that represents the main component of a typical graph editor. It is associated with a GraphPane, and manages interactors, renderers, and other parameters of user interaction (e.g. connector targets) to implement a flexible graph editor.The interaction and rendering of nodes is managed by node controller objects, each associated with particular kind of node. Edges are similarly managed by an edge controller object.
- Version:
- $Id$
- Author:
- John Reekie, Michael Shilman, Steve Neuendorffer
- Pt.AcceptedRating:
- Red
-
-
Method Summary
All Methods Instance Methods Abstract 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
addGraphViewListener(GraphViewListener l)
void
addNode(java.lang.Object node)
Add the node to this graph editor and place it wherever convenient.void
addNode(java.lang.Object node, double x, double y)
Add the node to this graph editor and render it at the given location.void
addNode(java.lang.Object node, java.lang.Object parent)
Add the node to this graph editor, inside the given parent node at whatever position is convenientvoid
addNode(java.lang.Object node, java.lang.Object parent, double x, double y)
Add the node to this graph editor, inside the given parent node and render it at the given location relative to its parent.void
clear()
Remove all figures from the displayvoid
clearEdge(java.lang.Object edge)
Remove the figure for the given edge.void
clearNode(java.lang.Object node)
Remove the figure for the given node.void
dispatch(GraphViewEvent e)
Dispatch the given graph view event to all registered graph view listeners.Figure
drawEdge(java.lang.Object edge)
Draw the given edge: create a figure, place it in the canvas, and associate the figure with the edge.Figure
drawNode(java.lang.Object node)
Draw the given node: create a figure, place it in the canvas, and associate the figure with the node.Figure
drawNode(java.lang.Object node, java.lang.Object parent)
Draw the given node: create a figure, place it in the figure of the given parent node, and associate the figure with the node.EdgeController
getEdgeController(java.lang.Object edge)
Given an edge, return the controller associated with that edge.Figure
getFigure(java.lang.Object semanticObj)
Return the figure associated with the given semantic object (node or edge), or null if there is no association.GraphModel
getGraphModel()
Return the graph being viewed.GraphPane
getGraphPane()
Return the graphics pane of this controller cast as a GraphPane.NodeController
getNodeController(java.lang.Object node)
Given an node, return the controller associated with that node.SelectionModel
getSelectionModel()
Get the default selection modelvoid
removeEdge(java.lang.Object edge)
Remove the given edge.void
removeGraphViewListener(GraphViewListener l)
Remove the given view listener.void
removeNode(java.lang.Object node)
Remove the given node.void
rerender()
Render the current graph again by recreating the figures for all nodes and edges, but do not alter the connectivity in the graph.void
rerenderEdge(java.lang.Object edge)
Rerender the given edge by replacing its figure with a new figure.void
rerenderNode(java.lang.Object node)
Rerender the given node by replacing its figure with a new figure.void
setFigure(java.lang.Object semanticObj, Figure f)
Set the figure associated with the given semantic object (node or edge).void
setGraphModel(GraphModel model)
Set the graph being viewed.void
setGraphPane(GraphPane pane)
Set the graph pane.void
setSelectionModel(SelectionModel m)
Set the default selection model.
-
-
-
Method Detail
-
addEdge
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.- Throws:
GraphException
- If the connector target cannot return a valid site on the node's figure.
-
addEdge
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.
-
addGraphViewListener
void addGraphViewListener(GraphViewListener l)
-
addNode
void addNode(java.lang.Object node)
Add the node to this graph editor and place it wherever convenient.
-
addNode
void addNode(java.lang.Object node, double x, double y)
Add the node to this graph editor and render it at the given location.
-
addNode
void addNode(java.lang.Object node, java.lang.Object parent)
Add the node to this graph editor, inside the given parent node at whatever position is convenient
-
addNode
void addNode(java.lang.Object node, java.lang.Object parent, double x, double y)
Add the node to this graph editor, inside the given parent node and render it at the given location relative to its parent.
-
clear
void clear()
Remove all figures from the display
-
clearEdge
void clearEdge(java.lang.Object edge)
Remove the figure for the given edge.
-
clearNode
void clearNode(java.lang.Object node)
Remove the figure for the given node.
-
drawEdge
Figure drawEdge(java.lang.Object edge)
Draw the given edge: create a figure, place it in the canvas, and associate the figure with the edge. This should only be called when the object is in the model but does not yet have a figure associated with it.
-
drawNode
Figure drawNode(java.lang.Object node)
Draw the given node: create a figure, place it in the canvas, and associate the figure with the node. This should only be called when the object is in the model but does not yet have a figure associated with it. The location of the figure should be set if some location is appropriate for it.
-
drawNode
Figure drawNode(java.lang.Object node, java.lang.Object parent)
Draw the given node: create a figure, place it in the figure of the given parent node, and associate the figure with the node. This should only be called when the object is in the model but does not yet have a figure associated with it. The location of the figure should be set if some location is appropriate for it.
-
getEdgeController
EdgeController getEdgeController(java.lang.Object edge)
Given an edge, return the controller associated with that edge.
-
getNodeController
NodeController getNodeController(java.lang.Object node)
Given an node, return the controller associated with that node.
-
getGraphModel
GraphModel getGraphModel()
Return the graph being viewed.
-
getGraphPane
GraphPane getGraphPane()
Return the graphics pane of this controller cast as a GraphPane.
-
getFigure
Figure getFigure(java.lang.Object semanticObj)
Return the figure associated with the given semantic object (node or edge), or null if there is no association.
-
getSelectionModel
SelectionModel getSelectionModel()
Get the default selection model
-
removeEdge
void removeEdge(java.lang.Object edge)
Remove the given edge. Find the edge controller associated with that edge and delegate to that edge controller.
-
removeGraphViewListener
void removeGraphViewListener(GraphViewListener l)
Remove the given view listener.
-
removeNode
void removeNode(java.lang.Object node)
Remove the given node. Find the node controller associated with that node and delegate to that node controller.
-
rerender
void rerender()
Render the current graph again by recreating the figures for all nodes and edges, but do not alter the connectivity in the graph. This should be called when changes to renderers are made.
-
rerenderEdge
void rerenderEdge(java.lang.Object edge)
Rerender the given edge by replacing its figure with a new figure. This should be called if the state of the edge has changed in such a way that the rendering should change.
-
rerenderNode
void rerenderNode(java.lang.Object node)
Rerender the given node by replacing its figure with a new figure. This should be called if the state of the node has changed in such a way that the rendering should change.
-
setGraphModel
void setGraphModel(GraphModel model)
Set the graph being viewed. If there is a graph already and it contains data, delete the figures of that graph's nodes and edges (but don't modify the graph itself).
-
setFigure
void setFigure(java.lang.Object semanticObj, Figure f)
Set the figure associated with the given semantic object (node or edge). A null figure clears the association.
-
setGraphPane
void setGraphPane(GraphPane pane)
Set the graph pane. This is called by the GraphPane. FIXME: should this be package private?
-
setSelectionModel
void setSelectionModel(SelectionModel m)
Set the default selection model. The caller is expected to ensure that the old model is empty before calling this.
-
dispatch
void dispatch(GraphViewEvent e)
Dispatch the given graph view event to all registered graph view listeners. This method is generally only called by subclasses and representatives of the subclasses, such as a node controller or an edge controller.
-
-