diva.graph.toolbox
Class TypedNodeRenderer

java.lang.Object
  extended by diva.graph.toolbox.TypedNodeRenderer
All Implemented Interfaces:
NodeRenderer

public class TypedNodeRenderer
extends java.lang.Object
implements NodeRenderer

A NodeRenderer implementation which allows a user to add different specialized node renderers which are called selectively, based on the type of the user object that is contained in the node that is being rendered.

Version:
$Id: TypedNodeRenderer.java 38798 2005-07-08 20:00:01Z cxh $
Author:
Michael Shilman
Accepted Rating:
Red

Field Summary
private  GraphController _controller
          The graph controller is using this renderer
private  NodeRenderer _defaultRenderer
          The default renderer.
private  java.util.Hashtable _typedRenderers
          The typed renderers.
 
Constructor Summary
TypedNodeRenderer(GraphController controller, NodeRenderer defaultRenderer)
          A typed node renderer with the given node renderer as its default (i.e. how to render a node if it has a type that is not understood by this renderer).
 
Method Summary
 void addTypedRenderer(java.lang.Class c, NodeRenderer r)
          Add a renderer which is invoked when the rendered node's semantic object is an instance of the given class.
 void removeTypedRenderer(java.lang.Class c)
          Remove a typed renderer.
 Figure render(java.lang.Object node)
          Return the rendered visual representation of this node by looking up the class of its semantic object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_controller

private GraphController _controller
The graph controller is using this renderer


_defaultRenderer

private NodeRenderer _defaultRenderer
The default renderer.


_typedRenderers

private java.util.Hashtable _typedRenderers
The typed renderers.

Constructor Detail

TypedNodeRenderer

public TypedNodeRenderer(GraphController controller,
                         NodeRenderer defaultRenderer)
A typed node renderer with the given node renderer as its default (i.e. how to render a node if it has a type that is not understood by this renderer).

Method Detail

addTypedRenderer

public void addTypedRenderer(java.lang.Class c,
                             NodeRenderer r)
Add a renderer which is invoked when the rendered node's semantic object is an instance of the given class.


removeTypedRenderer

public void removeTypedRenderer(java.lang.Class c)
Remove a typed renderer.

See Also:
addTypedRenderer(Class,NodeRenderer)

render

public Figure render(java.lang.Object node)
Return the rendered visual representation of this node by looking up the class of its semantic object.

Specified by:
render in interface NodeRenderer
Parameters:
node - The node to render.
Returns:
The persistent object that is drawn on the screen.