org.jgraph.graph
Class AbstractCellView

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

public abstract class AbstractCellView
extends Object
implements CellView, Serializable

The abstract base class for all cell views.

Version:
1.0 1/3/02
Author:
Gaudenz Alder
See Also:
Serialized Form

Field Summary
protected  Map allAttributes
           
protected  Map attributes
          Hashtable for attributes.
protected  Object cell
          Reference to the cell for this view
protected static GraphCellEditor cellEditor
          Editor for the cell.
protected  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(Object cell, JGraph graph, CellMapper mapper)
          Constructs a view for the specified model object, and invokes update on the new instance.
 
Method Summary
 void childUpdated()
           
 Map getAllAttributes()
          Returns the attributes of the view combined with the attributes of the corresponding cell.
 Map getAttributes()
          Return the attributes of the view.
abstract  Rectangle getBounds()
          Returns the bounding rectangle for this view.
static Rectangle getBounds(CellView[] views)
          Returns the bounding box for the specified views.
 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()
           
 Component getRendererComponent(JGraph graph, boolean selected, boolean focus, boolean preview)
          Returns a renderer component, configured for the view.
 boolean intersects(Graphics g, Rectangle rect)
          Returns true if the view intersects the given rectangle.
 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, Point origin)
          Scale view (group) by sx, sy.
 Map setAttributes(Map change)
          Applies change to the attributes of the view and calls update.
 void setBounds(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.
protected  void updateAllAttributes()
          This method implements the merge between the cell's and the view's attributes.
 
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 Object cell
Reference to the cell for this view


parent

protected CellView parent
Cached parent view


childViews

protected List childViews
Cached child views.


attributes

protected Map attributes
Hashtable for attributes. Initially empty


allAttributes

protected Map allAttributes
Constructor Detail

AbstractCellView

public AbstractCellView(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 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. Invokes update first.

Specified by:
refresh in interface CellView

update

public void update()
Update attributes and recurse children.

Specified by:
update in interface CellView

updateAllAttributes

protected void updateAllAttributes()
This method implements the merge between the cell's and the view's attributes. The view's attributes override the cell's attributes with one exception.


childUpdated

public void childUpdated()
Specified by:
childUpdated 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 using view.getChildViews


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 Map getAttributes()
Return the attributes of the view.

Specified by:
getAttributes in interface CellView

getAllAttributes

public Map getAllAttributes()
Returns the attributes of the view combined with the attributes of the corresponding cell. The view's attributes override the cell's attributes with the same key.

Specified by:
getAllAttributes in interface CellView

setAttributes

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

Specified by:
setAttributes in interface CellView

getBounds

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

Specified by:
getBounds in interface CellView

getBounds

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


setBounds

public void setBounds(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,
                     Point origin)
Scale view (group) by sx, sy.


intersects

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

Specified by:
intersects in interface CellView

getRendererComponent

public 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