diva.graph
Class BasicNodeController

java.lang.Object
  extended by diva.graph.BasicNodeController
All Implemented Interfaces:
NodeController
Direct Known Subclasses:
LocatableNodeController

public class BasicNodeController
extends java.lang.Object
implements NodeController

A basic node controller implementation, intended for use as a controller for graphs containing only one node type. This class can also be subclassed to control a specific type of node in graphs that have multiple node types.

Version:
$Id: BasicNodeController.java 38798 2005-07-08 20:00:01Z cxh $
Author:
Steve Neuendorffer
Accepted Rating:
Red

Field Summary
private  GraphController _controller
           
private  Interactor _interactor
           
private  NodeRenderer _renderer
           
 
Constructor Summary
BasicNodeController(GraphController controller)
          Create a new basic controller with default node and edge interactors.
 
Method Summary
protected  void _drawChildren(java.lang.Object node)
          Draw the children of the given node.
protected  Figure _renderNode(java.lang.Object node)
          Render the given node using the node renderer.
 void addNode(java.lang.Object node)
          Given a node, add it to this graph editor and perform a layout on the new node.
 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 and place it where convenient
 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.
 void clearNode(java.lang.Object node)
          Remove the figure for the given node.
 Figure drawNode(java.lang.Object node)
          Render the given node and add the resulting figure to the foreground layer of the graph pane.
 Figure drawNode(java.lang.Object node, java.lang.Object parent)
          Render the given node and add the resulting figure to the given node's figure, which is assumed to be a CompositeFigure in the controller's graph pane.
 GraphController getController()
          Return the graph controller containing this controller.
 Interactor getNodeInteractor()
          Return the node interactor associated with this controller.
 NodeRenderer getNodeRenderer()
          Return the node renderer associated with this controller.
 void removeNode(java.lang.Object node)
          Remove the node.
 void setNodeInteractor(Interactor interactor)
          Set the node interactor for this controller
 void setNodeRenderer(NodeRenderer renderer)
          Set the node renderer for this controller
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_interactor

private Interactor _interactor

_renderer

private NodeRenderer _renderer

_controller

private GraphController _controller
Constructor Detail

BasicNodeController

public BasicNodeController(GraphController controller)
Create a new basic controller with default node and edge interactors.

Method Detail

addNode

public void addNode(java.lang.Object node)
Given a node, add it to this graph editor and perform a layout on the new node.

Specified by:
addNode in interface NodeController

addNode

public void addNode(java.lang.Object node,
                    double x,
                    double y)
Add the node to this graph editor and render it at the given location.

Specified by:
addNode in interface NodeController

addNode

public void addNode(java.lang.Object node,
                    java.lang.Object parent)
Add the node to this graph editor, inside the given parent node and place it where convenient

Specified by:
addNode in interface NodeController

addNode

public 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.

Specified by:
addNode in interface NodeController

clearNode

public void clearNode(java.lang.Object node)
Remove the figure for the given node.

Specified by:
clearNode in interface NodeController

drawNode

public Figure drawNode(java.lang.Object node)
Render the given node and add the resulting figure to the foreground layer of the graph pane. If the node was previously rendered, then infer the new location of the figure from the old.

Specified by:
drawNode in interface NodeController

drawNode

public Figure drawNode(java.lang.Object node,
                       java.lang.Object parent)
Render the given node and add the resulting figure to the given node's figure, which is assumed to be a CompositeFigure in the controller's graph pane.

Specified by:
drawNode in interface NodeController

getController

public GraphController getController()
Return the graph controller containing this controller.

Specified by:
getController in interface NodeController

getNodeInteractor

public Interactor getNodeInteractor()
Return the node interactor associated with this controller.

Specified by:
getNodeInteractor in interface NodeController

getNodeRenderer

public NodeRenderer getNodeRenderer()
Return the node renderer associated with this controller.

Specified by:
getNodeRenderer in interface NodeController

removeNode

public void removeNode(java.lang.Object node)
Remove the node.

Specified by:
removeNode in interface NodeController

setNodeInteractor

public void setNodeInteractor(Interactor interactor)
Set the node interactor for this controller

Specified by:
setNodeInteractor in interface NodeController

setNodeRenderer

public void setNodeRenderer(NodeRenderer renderer)
Set the node renderer for this controller

Specified by:
setNodeRenderer in interface NodeController

_renderNode

protected Figure _renderNode(java.lang.Object node)
Render the given node using the node renderer. Set the interactor of the resulting figure to the node interactor.


_drawChildren

protected void _drawChildren(java.lang.Object node)
Draw the children of the given node.