uci.gef
Class LayerPerspective

java.lang.Object
  |
  +--uci.gef.Layer
        |
        +--uci.gef.LayerDiagram
              |
              +--uci.gef.LayerPerspective

public class LayerPerspective
extends LayerDiagram
implements GraphListener

A Layer like found in many drawing applications. It contains a collection of Figs, ordered from back to front. Each LayerPerspective contains part of the overall picture that the user is drawing. LayerPerspective is different from LayerDiagram in that it assumes that you are drawing a connected graph that is represented in a GraphModel.

See Also:
Serialized Form

Field Summary
protected  Vector _allowedNetClasses
          Classes of NetNodes and NetEdges that are to be visualized in this perspective.
protected  GraphEdgeRenderer _edgeRenderer
           
protected  GraphModel _gm
          The underlying connected graph to be visualized.
protected  GraphNodeRenderer _nodeRenderer
           
protected  Hashtable _nodeTypeRegions
          Rectangles of where to place nodes that are automatically added.
static int GAP
          The space between node FigNodes that are automatically places.
 
Fields inherited from class uci.gef.LayerDiagram
_contents, _nextLayerNumbered
 
Fields inherited from class uci.gef.Layer
_editors, _onMenu
 
Constructor Summary
LayerPerspective(String name, GraphModel gm)
          Construct a new LayerPerspective with the given name, and add it to the menu of layers.
 
Method Summary
 void addNodeTypeRegion(Class nodeClass, Rectangle region)
          Remove the given Fig from this layer.
 void allowNetClass(Class c)
          Add a node class of NetNodes or NetEdges to what will be shown in this perspective.
 void bumpOffOtherNodesIn(Fig newFig, Rectangle bounds, boolean stagger, boolean vertical)
           
 void edgeAdded(GraphEvent ge)
           
 void edgeRemoved(GraphEvent ge)
           
 GraphEdgeRenderer getGraphEdgeRenderer()
           
 GraphModel getGraphModel()
          Reply the GraphModel of the underlying connected graph.
 GraphNodeRenderer getGraphNodeRenderer()
           
 void graphChanged(GraphEvent ge)
           
 void nodeAdded(GraphEvent ge)
           
 void nodeRemoved(GraphEvent ge)
           
 void putInPosition(Fig f)
           
 void setGraphEdgeRenderer(GraphEdgeRenderer rend)
           
 void setGraphModel(GraphModel gm)
           
 void setGraphNodeRenderer(GraphNodeRenderer rend)
           
 boolean shouldShow(Object obj)
          Test to determine if a given NetNode should have a FigNode in this layer.
 
Methods inherited from class uci.gef.LayerDiagram
add, bringForward, bringInFrontOf, bringToFront, elements, getContents, getPortFig, hit, indexOf, insertAt, numberWordFor, paintContents, postLoad, postSave, preSave, presentationCountFor, presentationFor, remove, removeAll, reorder, sendBackward, sendToBack
 
Methods inherited from class uci.gef.Layer
addEditor, adjust, damaged, deleted, elementsIn, fetHidden, findLayerNamed, getContentsEdgesOnly, getContentsNoEdges, getEditors, getGrayed, getLocked, getName, getOnMenu, getPerspectiveType, nodesIn, paint, paintGrayContents, print, refreshEditors, removeEditor, setGrayed, setHidden, setLocked, setName, setOnMenu, setPerspectiveType, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

GAP

public static final int GAP
The space between node FigNodes that are automatically places.

_gm

protected GraphModel _gm
The underlying connected graph to be visualized.

_nodeRenderer

protected GraphNodeRenderer _nodeRenderer

_edgeRenderer

protected GraphEdgeRenderer _edgeRenderer

_allowedNetClasses

protected Vector _allowedNetClasses
Classes of NetNodes and NetEdges that are to be visualized in this perspective.

_nodeTypeRegions

protected Hashtable _nodeTypeRegions
Rectangles of where to place nodes that are automatically added.
Constructor Detail

LayerPerspective

public LayerPerspective(String name,
                        GraphModel gm)
Construct a new LayerPerspective with the given name, and add it to the menu of layers. Needs-More-Work: I have not implemented a menu of layers yet. I don't know if that is really the right user interface
Method Detail

getGraphModel

public GraphModel getGraphModel()
Reply the GraphModel of the underlying connected graph.

setGraphModel

public void setGraphModel(GraphModel gm)

getGraphNodeRenderer

public GraphNodeRenderer getGraphNodeRenderer()

setGraphNodeRenderer

public void setGraphNodeRenderer(GraphNodeRenderer rend)

getGraphEdgeRenderer

public GraphEdgeRenderer getGraphEdgeRenderer()

setGraphEdgeRenderer

public void setGraphEdgeRenderer(GraphEdgeRenderer rend)

allowNetClass

public void allowNetClass(Class c)
Add a node class of NetNodes or NetEdges to what will be shown in this perspective.

addNodeTypeRegion

public void addNodeTypeRegion(Class nodeClass,
                              Rectangle region)
Remove the given Fig from this layer.

putInPosition

public void putInPosition(Fig f)

bumpOffOtherNodesIn

public void bumpOffOtherNodesIn(Fig newFig,
                                Rectangle bounds,
                                boolean stagger,
                                boolean vertical)

nodeAdded

public void nodeAdded(GraphEvent ge)
Specified by:
nodeAdded in interface GraphListener

edgeAdded

public void edgeAdded(GraphEvent ge)
Specified by:
edgeAdded in interface GraphListener

nodeRemoved

public void nodeRemoved(GraphEvent ge)
Specified by:
nodeRemoved in interface GraphListener

edgeRemoved

public void edgeRemoved(GraphEvent ge)
Specified by:
edgeRemoved in interface GraphListener

graphChanged

public void graphChanged(GraphEvent ge)
Specified by:
graphChanged in interface GraphListener

shouldShow

public boolean shouldShow(Object obj)
Test to determine if a given NetNode should have a FigNode in this layer. Normally checks NetNode class against a list of allowable classes. For more sophisticated rules, override this method. FEATURE: multiple_perspectives