com.jgraph.graph
Class AbstractCellView

java.lang.Object
  extended bycom.jgraph.graph.AbstractCellView
All Implemented Interfaces:
CellView, java.io.Serializable
Direct Known Subclasses:
EdgeView, PortView, VertexView

public abstract class AbstractCellView
extends java.lang.Object
implements CellView, java.io.Serializable

The abstract base class for all cell views.

See Also:
Serialized Form

Field Summary
protected  java.util.Map attributes
          Hashtable for attributes.
protected  java.lang.Object cell
          Reference to the cell for this view
protected static GraphCellEditor cellEditor
          Editor for the cell.
protected  java.util.List childViews
          Cached child views.
protected  JGraph graph
          Reference to the graph
protected  CellMapper mapper
          Reference to the cell mapper for the view
protected  CellView parent
          Cached parent view
 
Constructor Summary
AbstractCellView(java.lang.Object cell, JGraph graph, CellMapper mapper)
          Constructs a view for the specified model object, and invokes update on the new instance.
 
Method Summary
 java.util.Map getAttributes()
          Return the attributes of the view.
abstract  java.awt.Rectangle getBounds()
          Returns the bounding rectangle for this view.
static java.awt.Rectangle getBounds(CellView[] views)
          Returns the bounding box for the specified views.
 java.lang.Object getCell()
          Returns the model object that this view represents.
 CellView[] getChildViews()
          Returns the child views of this view.
static CellView[] getDescendantViews(CellView[] views)
          Returns all views, including descendants that have a parent in views without the PortViews.
 GraphCellEditor getEditor()
          Returns a cell editor for the view.
 JGraph getGraph()
          Returns the graph associated with the view.
abstract  CellHandle getHandle(GraphContext context)
          Returns a cell handle for the view.
 CellMapper getMapper()
          Returns the cell mapper associated with the view.
 GraphModel getModel()
          Returns the model associated with the view.
 CellView getParentView()
          Returns the parent view for this view.
protected abstract  CellViewRenderer getRenderer()
           
 java.awt.Component getRendererComponent(JGraph graph, boolean selected, boolean focus, boolean preview)
          Returns a renderer component, configured for the view.
 boolean intersects(java.awt.Graphics g, java.awt.Rectangle rect)
          Returns true if the view intersects the given rectangle.
 boolean isControlAttribute(java.lang.Object key)
          The following control attributes may always be present.
 boolean isLeaf()
          Returns true if the view is a leaf.
 void refresh(boolean createDependentViews)
          Create child views and reload properties.
 void removeFromParent()
          Removes this view from the list of childs of the parent.
protected  void scale(double sx, double sy, java.awt.Point origin)
          Scale view (group) by sx, sy.
 void setAttributes(java.util.Map change)
          Applies change to the attributes of the view and calls update.
 void setBounds(java.awt.Rectangle bounds)
          Sets the bounds of view.
protected  void translate(int dx, int dy)
          Translates view (group) by dx, dy.
 void update()
          Update attributes and recurse children.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cellEditor

protected static GraphCellEditor cellEditor
Editor for the cell.


graph

protected JGraph graph
Reference to the graph


mapper

protected CellMapper mapper
Reference to the cell mapper for the view


cell

protected java.lang.Object cell
Reference to the cell for this view


parent

protected CellView parent
Cached parent view


childViews

protected java.util.List childViews
Cached child views.


attributes

protected java.util.Map attributes
Hashtable for attributes. Initially empty

Constructor Detail

AbstractCellView

public AbstractCellView(java.lang.Object cell,
                        JGraph graph,
                        CellMapper mapper)
Constructs a view for the specified model object, and invokes update on the new instance.

Parameters:
cell - reference to the model object
Method Detail

getGraph

public JGraph getGraph()
Returns the graph associated with the view.


getModel

public GraphModel getModel()
Returns the model associated with the view.


getMapper

public CellMapper getMapper()
Returns the cell mapper associated with the view.


getCell

public java.lang.Object getCell()
Returns the model object that this view represents.

Specified by:
getCell in interface CellView

refresh

public void refresh(boolean createDependentViews)
Create child views and reload properties.

Specified by:
refresh in interface CellView

update

public void update()
Update attributes and recurse children.

Specified by:
update in interface CellView

getParentView

public CellView getParentView()
Returns the parent view for this view.

Specified by:
getParentView in interface CellView

getChildViews

public CellView[] getChildViews()
Returns the child views of this view.

Specified by:
getChildViews in interface CellView

getDescendantViews

public static CellView[] getDescendantViews(CellView[] views)
Returns all views, including descendants that have a parent in views without the PortViews. Note: Iterative Implementation.


removeFromParent

public void removeFromParent()
Removes this view from the list of childs of the parent.

Specified by:
removeFromParent in interface CellView

isLeaf

public boolean isLeaf()
Returns true if the view is a leaf.

Specified by:
isLeaf in interface CellView

getAttributes

public java.util.Map getAttributes()
Return the attributes of the view.

Specified by:
getAttributes in interface CellView

setAttributes

public void setAttributes(java.util.Map change)
Applies change to the attributes of the view and calls update.

Specified by:
setAttributes in interface CellView

isControlAttribute

public boolean isControlAttribute(java.lang.Object key)
The following control attributes may always be present.


getBounds

public abstract java.awt.Rectangle getBounds()
Returns the bounding rectangle for this view.

Specified by:
getBounds in interface CellView

getBounds

public static java.awt.Rectangle getBounds(CellView[] views)
Returns the bounding box for the specified views.


setBounds

public void setBounds(java.awt.Rectangle bounds)
Sets the bounds of view. Calls translateView and scaleView.


translate

protected void translate(int dx,
                         int dy)
Translates view (group) by dx, dy.


scale

protected void scale(double sx,
                     double sy,
                     java.awt.Point origin)
Scale view (group) by sx, sy.


intersects

public boolean intersects(java.awt.Graphics g,
                          java.awt.Rectangle rect)
Returns true if the view intersects the given rectangle.

Specified by:
intersects in interface CellView

getRendererComponent

public java.awt.Component getRendererComponent(JGraph graph,
                                               boolean selected,
                                               boolean focus,
                                               boolean preview)
Returns a renderer component, configured for the view.

Specified by:
getRendererComponent in interface CellView

getRenderer

protected abstract CellViewRenderer getRenderer()

getHandle

public abstract CellHandle getHandle(GraphContext context)
Returns a cell handle for the view.

Specified by:
getHandle in interface CellView

getEditor

public GraphCellEditor getEditor()
Returns a cell editor for the view.

Specified by:
getEditor in interface CellView