站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > NetBeans API Javadoc (Current Development Version)

GraphPinScene (Visual Library API) - NetBeans API Javadoc (Current Development Version)

org.netbeans.api.visual 2.2

org.netbeans.api.visual.graph
Class GraphPinScene<N,E,P>

java.lang.Object
  extended by org.netbeans.api.visual.widget.Widget
      extended by org.netbeans.api.visual.widget.Scene
          extended by org.netbeans.api.visual.model.ObjectScene
              extended by org.netbeans.api.visual.graph.GraphPinScene<N,E,P>
Direct Known Subclasses:
GraphPinScene.StringGraph, VMDGraphScene

public abstract class GraphPinScene<N,E,P>
extends ObjectScene

This class holds and manages graph-oriented model.

In comparison with the GraphScene class, in this class the graph consists of nodes, edges and pins. Each pin is assigned to a node (the assigned cannot be change at any time. Each edge could be attach to a single source and target pin.

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, attachPinWidget, 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, MyPin> { ... }
 
Since the type of nodes, edges and pins could be the same, all node, edge and pin instances have to be unique within the whole scene.


Nested Class Summary
static class GraphPinScene.StringGraph
          This class is a particular GraphPinScene where nodes, edges and pins 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
GraphPinScene()
          Creates a graph scene.
 
Method Summary
 Widget addEdge(E edge)
          Adds an edge.
 Widget addNode(N node)
          Adds a node.
 Widget addPin(N node, P pin)
          Adds a pin and assigns it to a specified node.
protected abstract  void attachEdgeSourceAnchor(E edge, P oldSourcePin, P sourcePin)
          Called by the setEdgeSource method to notify about the changing the edge source in the graph model.
protected abstract  void attachEdgeTargetAnchor(E edge, P oldTargetPin, P targetPin)
          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 abstract  Widget attachPinWidget(N node, P pin)
          Called by the addPin method before the pin is registered to acquire a widget that is going to represent the pin 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.
protected  void detachPinWidget(P pin, Widget widget)
          Called by the removePin method to notify that a pin is removed from the graph model.
 Collection<E> findEdgesBetween(P sourcePin, P targetPin)
          Returns a collection of edges that are between a source and a target pin.
 Collection<E> findPinEdges(P pin, boolean allowOutputEdges, boolean allowInputEdges)
          Returns a collection of edges that are attached to a specified pin.
 Collection<E> getEdges()
          Returns a collection of all edges registered in the graph model.
 P getEdgeSource(E edge)
          Returns an edge source.
 P getEdgeTarget(E edge)
          Returns an edge target.
 Collection<P> getNodePins(N node)
          Returns a collection of pins that are assigned to a specified node
 Collection<N> getNodes()
          Returns a collection of all nodes registered in the graph model.
 N getPinNode(P pin)
          Returns a node where the pin assigned to.
 Collection<P> getPins()
          Returns all pins registered in the graph model.
 boolean isEdge(Object object)
          Checks whether an object is registered as an edge in the graph model.
 boolean isNode(Object object)
          Checks whether an object is registered as a node in the graph model.
 boolean isPin(Object object)
          Checks whether an object is registered as a pin 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.
protected  void notifyPinAdded(N node, P pin, Widget widget)
          Called by the addPin method to notify that a pin is added into the graph model.
 void removeEdge(E edge)
          Removes an edge and detaches it from its source and target pins.
 void removeNode(N node)
          Removes a node with all pins that are assigned to the node.
 void removeNodeWithEdges(N node)
          Removes a node with all pins that are assign to the node and with all edges that are connected to the pins.
 void removePin(P pin)
          Removes an pin and detaches all edges that are connected to it.
 void removePinWithEdges(P pin)
          Removes a pin with all edges that are connected to the pin.
 void setEdgeSource(E edge, P sourcePin)
          Sets an edge source.
 void setEdgeTarget(E edge, P targetPin)
          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 org.netbeans.api.visual.widget.Widget
addChild, addChild, addChild, addChild, addChildren, addDependency, bringToBack, bringToFront, calculateClientArea, convertLocalToScene, convertLocalToScene, convertSceneToLocal, convertSceneToLocal, createActions, equals, getAccessibleContext, getActions, getActions, getBackground, getBorder, getBounds, getChildConstraint, getChildren, getClientArea, getCursor, getFont, getForeground, getLayout, getLocation, getLookup, getMaximumSize, getMinimumSize, getParentWidget, getPreferredBounds, getPreferredLocation, getPreferredSize, getScene, getState, getToolTipText, hashCode, isCheckClipping, isEnabled, isHitAt, isOpaque, isPreferredBoundsSet, isVisible, notifyAdded, notifyRemoved, notifyStateChanged, paint, paintBackground, paintBorder, paintChildren, paintWidget, removeChild, removeChildren, removeChildren, removeDependency, removeFromParent, repaint, resolveBounds, revalidate, revalidate, setAccessibleContext, setBackground, setBorder, setBorder, setCheckClipping, setChildConstraint, setCursor, setEnabled, setFont, setForeground, setLayout, setMaximumSize, setMinimumSize, setOpaque, setPreferredBounds, setPreferredLocation, setPreferredSize, setState, setToolTipText, setVisible
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GraphPinScene

public GraphPinScene()
Creates a graph scene.

Method Detail

addNode

public final Widget addNode(N node)
Adds a node.

Parameters:
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, edge or pin in the model has is equal to this node) and must not be a Widget
Returns:
the widget that is created by attachNodeWidget; null if the node is non-visual

removeNode

public final void removeNode(N node)
Removes a node with all pins that are assigned to the node.

Parameters:
node - the node to be removed; the node must not be null and must be already in the model

removeNodeWithEdges

public final void removeNodeWithEdges(N node)
Removes a node with all pins that are assign to the node and with all edges that are connected to the pins.

Parameters:
node - the node to be removed; the node must not be null and must be already in the model

getNodes

public final Collection<N> getNodes()
Returns a collection of all nodes registered in the graph model.

Returns:
the collection of all nodes registered in the graph model

addEdge

public final Widget addEdge(E edge)
Adds an edge.

Parameters:
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, edge or pin in the model has is equal to this edge) and must not be a Widget
Returns:
the widget that is created by attachEdgeWidget; null if the edge is non-visual

removeEdge

public final void removeEdge(E edge)
Removes an edge and detaches it from its source and target pins.

Parameters:
edge - the edge to be removed; the edge must not be null and must be already in the model

getEdges

public final Collection<E> getEdges()
Returns a collection of all edges registered in the graph model.

Returns:
the collection of all edges registered in the graph model

addPin

public final Widget addPin(N node,
                           P pin)
Adds a pin and assigns it to a specified node.

Parameters:
node - the node where the pin is assigned to
pin - the pin to be added; the pin must not be null, must not be already in the model, must be unique in the model (means: there is no other node, edge or pin in the model has is equal to this pin) and must not be a Widget
Returns:
the widget that is created by attachPinWidget; null if the pin is non-visual

removePin

public final void removePin(P pin)
Removes an pin and detaches all edges that are connected to it.

Parameters:
pin - the pin to be removed; the pin must not be null and must be already in the model

removePinWithEdges

public final void removePinWithEdges(P pin)
Removes a pin with all edges that are connected to the pin.

Parameters:
pin - the pin to be removed; the pin must not be null and must be already in the model

getPinNode

public final N getPinNode(P pin)
Returns a node where the pin assigned to.

Parameters:
pin - the pin
Returns:
the node where the pin assigned to.

getPins

public final Collection<P> getPins()
Returns all pins registered in the graph model.

Returns:
the collection of all pins registered in the graph model

getNodePins

public final Collection<P> getNodePins(N node)
Returns a collection of pins that are assigned to a specified node

Parameters:
node - the node
Returns:
the collection of pins; null if node does not exist in the scene

setEdgeSource

public final void setEdgeSource(E edge,
                                P sourcePin)
Sets an edge source.

Parameters:
edge - the edge which source is going to be changed
sourcePin - the source pin; if null, then the edge source will be detached

setEdgeTarget

public final void setEdgeTarget(E edge,
                                P targetPin)
Sets an edge target.

Parameters:
edge - the edge which target is going to be changed
targetPin - the target pin; if null, then the edge target will be detached

getEdgeSource

public final P getEdgeSource(E edge)
Returns an edge source.

Parameters:
edge - the edge
Returns:
the edge source; null, if edge does not have source attached

getEdgeTarget

public final P getEdgeTarget(E edge)
Returns an edge target.

Parameters:
edge - the edge
Returns:
the edge target; null, if edge does not have target attached

findPinEdges

public final Collection<E> findPinEdges(P pin,
                                        boolean allowOutputEdges,
                                        boolean allowInputEdges)
Returns a collection of edges that are attached to a specified pin.

Parameters:
pin - the pin which edges connections are searched for
allowOutputEdges - if true, the output edges are included in the collection; if false, the output edges are not included
allowInputEdges - if true, the input edges are included in the collection; if false, the input edges are not included
Returns:
the collection of edges

findEdgesBetween

public final Collection<E> findEdgesBetween(P sourcePin,
                                            P targetPin)
Returns a collection of edges that are between a source and a target pin.

Parameters:
sourcePin - the source pin
targetPin - the target pin
Returns:
the collection of edges

isNode

public boolean isNode(Object object)
Checks whether an object is registered as a node in the graph model.

Parameters:
object - the object; must not be a Widget
Returns:
true, if the object is registered as a node

isEdge

public boolean isEdge(Object object)
Checks whether an object is registered as an edge in the graph model.

Parameters:
object - the object; must not be a Widget
Returns:
true, if the object is registered as a edge

isPin

public boolean isPin(Object object)
Checks whether an object is registered as a pin in the graph model.

Parameters:
object - the object; must not be a Widget
Returns:
true, if the object is registered as a pin

notifyNodeAdded

protected void notifyNodeAdded(N node,
                               Widget widget)
Called by the addNode method to notify that a node is added into the graph model.

Parameters:
node - the added node
widget - the widget created by the attachNodeWidget method as a visual representation of the node

notifyEdgeAdded

protected void notifyEdgeAdded(E edge,
                               Widget widget)
Called by the addEdge method to notify that an edge is added into the graph model.

Parameters:
edge - the added node
widget - the widget created by the attachEdgeWidget method as a visual representation of the edge

notifyPinAdded

protected void notifyPinAdded(N node,
                              P pin,
                              Widget widget)
Called by the addPin method to notify that a pin is added into the graph model.

Parameters:
node - the node where the pin is assigned to
pin - the added pin
widget - the widget created by the attachPinWidget method as a visual representation of the pin

detachNodeWidget

protected void detachNodeWidget(N node,
                                Widget widget)
Called by the removeNode method to notify that a node is removed from the graph model. The default implementation removes the node widget from its parent widget.

Parameters:
node - the removed node
widget - the removed node widget; null if the node is non-visual

detachEdgeWidget

protected void detachEdgeWidget(E edge,
                                Widget widget)
Called by the removeEdge method to notify that an edge is removed from the graph model. The default implementation removes the edge widget from its parent widget.

Parameters:
edge - the removed edge
widget - the removed edge widget; null if the edge is non-visual

detachPinWidget

protected void detachPinWidget(P pin,
                               Widget widget)
Called by the removePin method to notify that a pin is removed from the graph model. The default implementation removes the pin widget from its parent widget.

Parameters:
pin - the removed pin
widget - the removed pin widget; null if the pin is non-visual

attachNodeWidget

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. The method is responsible for creating the widget, adding it into the scene and returning it from the method.

Parameters:
node - the node that is going to be added
Returns:
the widget representing the node; null, if the node is non-visual

attachEdgeWidget

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. The method is responsible for creating the widget, adding it into the scene and returning it from the method.

Parameters:
edge - the edge that is going to be added
Returns:
the widget representing the edge; null, if the edge is non-visual

attachPinWidget

protected abstract Widget attachPinWidget(N node,
                                          P pin)
Called by the addPin method before the pin is registered to acquire a widget that is going to represent the pin in the scene. The method is responsible for creating the widget, adding it into the scene and returning it from the method.

Parameters:
node - the node where the pin is assigned to
pin - the pin that is going to be added
Returns:
the widget representing the pin; null, if the pin is non-visual

attachEdgeSourceAnchor

protected abstract void attachEdgeSourceAnchor(E edge,
                                               P oldSourcePin,
                                               P sourcePin)
Called by the setEdgeSource method to notify about the changing the edge source in the graph model. The method is responsible for attaching a new source pin to the edge in the visual representation.

Usually it is implemented as:

 Widget sourcePinWidget = findWidget (sourcePin);
 Anchor sourceAnchor = AnchorFactory.createRectangularAnchor (sourcePinWidget)
 ConnectionWidget edgeWidget = (ConnectionWidget) findWidget (edge);
 edgeWidget.setSourceAnchor (sourceAnchor);
 

Parameters:
edge - the edge which source is changed in graph model
oldSourcePin - the old source pin
sourcePin - the new source pin

attachEdgeTargetAnchor

protected abstract void attachEdgeTargetAnchor(E edge,
                                               P oldTargetPin,
                                               P targetPin)
Called by the setEdgeTarget method to notify about the changing the edge target in the graph model. The method is responsible for attaching a new target pin to the edge in the visual representation.

Usually it is implemented as:

 Widget targetPinWidget = findWidget (targetPin);
 Anchor targetAnchor = AnchorFactory.createRectangularAnchor (targetPinWidget)
 ConnectionWidget edgeWidget = (ConnectionWidget) findWidget (edge);
 edgeWidget.setTargetAnchor (targetAnchor);
 

Parameters:
edge - the edge which target is changed in graph model
oldTargetPin - the old target pin
targetPin - the new target pin

org.netbeans.api.visual 2.2

Built on May 28 2007.  |  Portions Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.