|
org.netbeans.api.visual 2.2 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.netbeans.api.visual.widget.Widget
org.netbeans.api.visual.widget.Scene
org.netbeans.api.visual.model.ObjectScene
org.netbeans.api.visual.graph.GraphScene<N,E>
public abstract class GraphScene<N,E>
This class holds and manages graph-oriented model.
In comparison with the GraphScene class, in this class the graph consists of nodes and edges. Each edge could be attach to a single source and target node.
The class is abstract and manages only data model and mapping with widgets. The graphics (widgets) has to be supplied by a developer by overriding the attachNodeWidget, attachEdgeWidget, attachEdgeSourceAnchor and attachEdgeTargetAnchor abstract methods.
This class is using generics and allows you to specify type representation for nodes and edges in the graph model. Example:
class MyGraph extends GraphScene<MyNode, MyEdge> { ... }Since the type of nodes and edges could be the same, all node and edge instances has to be unique within the whole scene.
Node and Edge should not be a Widget. It should work properly but in that case the ObjectScene class is loosing its purpose because there is no need to manage a mapping of an instance to the same instance.
Nested Class Summary | |
---|---|
static class |
GraphScene.StringGraph
This class is a particular GraphScene where nodes and edges are represented with String class. |
Nested classes/interfaces inherited from class org.netbeans.api.visual.widget.Scene |
---|
Scene.SceneListener |
Nested classes/interfaces inherited from class org.netbeans.api.visual.widget.Widget |
---|
Widget.Dependency |
Constructor Summary | |
---|---|
GraphScene()
Creates a graph scene. |
Method Summary | |
---|---|
Widget |
addEdge(E edge)
Adds an edge. |
Widget |
addNode(N node)
Adds a node. |
protected abstract void |
attachEdgeSourceAnchor(E edge,
N oldSourceNode,
N sourceNode)
Called by the setEdgeSource method to notify about the changing the edge source in the graph model. |
protected abstract void |
attachEdgeTargetAnchor(E edge,
N oldTargetNode,
N targetNode)
Called by the setEdgeTarget method to notify about the changing the edge target in the graph model. |
protected abstract Widget |
attachEdgeWidget(E edge)
Called by the addEdge method before the edge is registered to acquire a widget that is going to represent the edge in the scene. |
protected abstract Widget |
attachNodeWidget(N node)
Called by the addNode method before the node is registered to acquire a widget that is going to represent the node in the scene. |
protected void |
detachEdgeWidget(E edge,
Widget widget)
Called by the removeEdge method to notify that an edge is removed from the graph model. |
protected void |
detachNodeWidget(N node,
Widget widget)
Called by the removeNode method to notify that a node is removed from the graph model. |
Collection<E> |
findEdgesBetween(N sourceNode,
N targetNode)
Returns a collection of edges that are between a specified source and target nodes. |
Collection<E> |
findNodeEdges(N node,
boolean allowOutputEdges,
boolean allowInputEdges)
Returns a collection of edges that are attached to a specified node. |
Collection<E> |
getEdges()
Returns a collection of all edges registered in the graph model. |
N |
getEdgeSource(E edge)
Returns an edge source. |
N |
getEdgeTarget(E edge)
Returns an edge target. |
Collection<N> |
getNodes()
Returns a collection of all nodes registered in the graph model. |
boolean |
isEdge(Object object)
Checks whether an object is registered as a edge in the graph model. |
boolean |
isNode(Object object)
Checks whether an object is registered as a node in the graph model. |
protected void |
notifyEdgeAdded(E edge,
Widget widget)
Called by the addEdge method to notify that an edge is added into the graph model. |
protected void |
notifyNodeAdded(N node,
Widget widget)
Called by the addNode method to notify that a node is added into the graph model. |
void |
removeEdge(E edge)
Removes an edge and detaches it from its source and target nodes. |
void |
removeNode(N node)
Removes a node. |
void |
removeNodeWithEdges(N node)
Removes a specified node with all edges that are attached to the node. |
void |
setEdgeSource(E edge,
N sourceNode)
Sets an edge source. |
void |
setEdgeTarget(E edge,
N targetNode)
Sets an edge target. |
Methods inherited from class org.netbeans.api.visual.model.ObjectScene |
---|
addObject, addObjectSceneListener, createObjectHoverAction, createSelectAction, findObject, findStoredObject, findWidget, findWidgets, getFocusedObject, getHighlightedObjects, getHoveredObject, getIdentityCode, getObjects, getObjectState, getSelectedObjects, isObject, removeObject, removeObjectSceneListener, setFocusedObject, setHighlightedObjects, setHoveredObject, setSelectedObjects, userSelectionSuggested |
Methods inherited from class org.netbeans.api.visual.widget.Scene |
---|
addSceneListener, convertSceneToView, convertSceneToView, convertViewToScene, createSatelliteView, createView, createWidgetHoverAction, getActiveTool, getDefaultFont, getFocusedWidget, getGraphics, getKeyEventProcessingType, getLookFeel, getMaximumBounds, getPriorActions, getSceneAnimator, getView, getZoomFactor, isRepaintRequiredForRevalidating, isValidated, paint, removeSceneListener, setActiveTool, setFocusedWidget, setKeyEventProcessingType, setLookFeel, setMaximumBounds, setZoomFactor, validate |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public GraphScene()
Method Detail |
---|
public final Widget addNode(N node)
node
- the node to be added; the node must not be null, must not be already in the model, must be unique in the model
(means: there is no other node or edge in the model has is equal to this node)
and must not be a Widget
public final void removeNode(N node)
node
- the node to be removed; the node must not be null and must be already in the modelpublic final void removeNodeWithEdges(N node)
node
- the node to be removedpublic final Collection<N> getNodes()
public final Widget addEdge(E edge)
edge
- the edge to be added; the edge must not be null, must not be already in the model, must be unique in the model
(means: there is no other node or edge in the model has is equal to this edge)
and must not be a Widget
public final void removeEdge(E edge)
edge
- the edge to be removed; the edge must not be null and must be already in the modelpublic final Collection<E> getEdges()
public final void setEdgeSource(E edge, N sourceNode)
edge
- the edge which source is going to be changedsourceNode
- the source node; if null, then the edge source will be detachedpublic final void setEdgeTarget(E edge, N targetNode)
edge
- the edge which target is going to be changedtargetNode
- the target node; if null, then the edge target will be detachedpublic final N getEdgeSource(E edge)
edge
- the edge
public final N getEdgeTarget(E edge)
edge
- the edge
public final Collection<E> findNodeEdges(N node, boolean allowOutputEdges, boolean allowInputEdges)
node
- the node which edges connections are searched forallowOutputEdges
- if true, the output edges are included in the collection; if false, the output edges are not includedallowInputEdges
- if true, the input edges are included in the collection; if false, the input edges are not included
public final Collection<E> findEdgesBetween(N sourceNode, N targetNode)
sourceNode
- the source nodetargetNode
- the target node
public boolean isNode(Object object)
object
- the object; must not be a Widget
public boolean isEdge(Object object)
object
- the object; must not be a Widget
protected void notifyNodeAdded(N node, Widget widget)
node
- the added nodewidget
- the widget created by the attachNodeWidget method as a visual representation of the nodeprotected void notifyEdgeAdded(E edge, Widget widget)
edge
- the added nodewidget
- the widget created by the attachEdgeWidget method as a visual representation of the edgeprotected void detachNodeWidget(N node, Widget widget)
node
- the removed nodewidget
- the removed node widget; null if the node is non-visualprotected void detachEdgeWidget(E edge, Widget widget)
edge
- the removed edgewidget
- the removed edge widget; null if the edge is non-visualprotected abstract Widget attachNodeWidget(N node)
node
- the node that is going to be added
protected abstract Widget attachEdgeWidget(E edge)
edge
- the edge that is going to be added
protected abstract void attachEdgeSourceAnchor(E edge, N oldSourceNode, N sourceNode)
Usually it is implemented as:
Widget sourceNodeWidget = findWidget (sourceNode); Anchor sourceAnchor = AnchorFactory.createRectangularAnchor (sourceNodeWidget) ConnectionWidget edgeWidget = (ConnectionWidget) findWidget (edge); edgeWidget.setSourceAnchor (sourceAnchor);
edge
- the edge which source is changed in graph modeloldSourceNode
- the old source nodesourceNode
- the new source nodeprotected abstract void attachEdgeTargetAnchor(E edge, N oldTargetNode, N targetNode)
Usually it is implemented as:
Widget targetNodeWidget = findWidget (targetNode); Anchor targetAnchor = AnchorFactory.createRectangularAnchor (targetNodeWidget) ConnectionWidget edgeWidget = (ConnectionWidget) findWidget (edge); edgeWidget.setTargetAnchor (targetAnchor);
edge
- the edge which target is changed in graph modeloldTargetNode
- the old target nodetargetNode
- the new target node
|
org.netbeans.api.visual 2.2 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |