AbstractCellView (JGraph v5.12.4.2 API Specification)
Keywords: org.jgraph.graph.AbstractCellView class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JGraph v5.12.4.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jgraph.graph
Class AbstractCellView

    java.lang.Object
      org.jgraph.graph.AbstractCellView

All Implemented Interfaces:
  CellView, Serializable

Direct Known Subclasses:
  EdgeView, PortView, VertexView

public abstract class AbstractCellView
extends Object
implements CellView, Serializable

The abstract base class for all cell views.

See Also:
  Serialized Form

Field Summary
`protected AttributeMap` | `allAttributes` Contains the complete set of attributes, including the cell's attributes.
`protected AttributeMap` | `attributes` Hashtable for attributes.
`protected Object` | `cell` Reference to the cell for this view
`static GraphCellEditor` | `cellEditor` Editor for the cell.
`protected List` | `childViews` Cached child views.
`protected Rectangle2D` | `groupBounds` Cached bounds of all children if vertex is a group
`protected CellView` | `parent` Cached parent view

Constructor Summary
`AbstractCellView()` Constructs an empty abstract cell view.
`AbstractCellView(Object cell)` Constructs a view for the specified model object, and invokes update on the new instance.

Method Summary
`Map` | `changeAttributes(GraphLayoutCache cache, Map change)` Applies `change` to the attributes of the view and calls update.
`void` | `childUpdated()` Indicates to parent, if any, that this child has been updated.
`protected AttributeMap` | `createAttributeMap()` Hook for subclassers to avoid creating an empty AttributeMap during construction of the instance.
`AttributeMap` | `getAllAttributes()` Returns the attributes of the view combined with the attributes of the corresponding cell.
`AttributeMap` | `getAttributes()` Return the attributes of the view.
`Rectangle2D` | `getBounds()` Returns the cached bounds for the group if isleaf is false
`static Rectangle2D` | `getBounds(CellView[] views)` Returns the bounding box for the specified views.
`Object` | `getCell()` Returns the model object that this view represents.
`protected AttributeMap` | `getCellAttributes(GraphModel model)` Hook for subclassers to avoid cloning the cell's attributes.
`static Point2D` | `getCenterPoint(CellView vertex)`
`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.
`abstract CellHandle` | `getHandle(GraphContext context)` Returns a cell handle for the view.
`CellView` | `getParentView()` Returns the parent view for this view.
`Point2D` | `getPerimeterPoint(EdgeView edge, Point2D source, Point2D p)` Returns the intersection of the bounding rectangle and the straight line between the source and the specified point p.
`abstract CellViewRenderer` | `getRenderer()` Obtains the renderer instance for this view
`Component` | `getRendererComponent(JGraph graph, boolean selected, boolean focus, boolean preview)` Returns a renderer component, configured for the view.
`protected boolean` | `includeInGroupBounds(CellView view)` This is used to exclude certain cell views from the group bounds computation.
`boolean` | `intersects(JGraph graph, Rectangle2D rect)` Returns true if the view intersects the given rectangle.
`boolean` | `isLeaf()` Returns `true` if the view is a leaf.
`protected void` | `mergeAttributes()` Implements the merging of the cell's attributes, initially stored in allAttributes, and the location attributes.
`void` | `refresh(GraphLayoutCache cache, CellMapper mapper, boolean createDependentViews)` Create child views and reload properties for this view.
`void` | `removeFromParent()` Removes this view from the list of children of the parent.
`void` | `scale(double sx, double sy, Point2D origin)` Scale `view` (group) by `sx, sy`.
`void` | `setAttributes(AttributeMap attributes)` Sets the attributes of this view to the specified value
`void` | `setBounds(Rectangle2D bounds)` Sets the bounds of this `view`.
`void` | `setCell(Object cell)` Sets the model object that this view represents to the specified cell
`void` | `translate(double dx, double dy)` Translates `view` (group) by `dx, dy`.
`void` | `update(GraphLayoutCache cache)` Update attributes for this view and indicate to the parent this child has been updated
`protected void` | `updateGroupBounds()` Updates the bounds of this view and its children

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### cellEditor

    public static transient GraphCellEditor cellEditor

  Editor for the cell.

### 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. Default is a ArrayList with allocation size 0.

### allAttributes

    protected AttributeMap allAttributes

  Contains the complete set of attributes, including the cell's attributes. The values in this map are overriden by the corresponding values in `attributes`.

### attributes

    protected AttributeMap attributes

  Hashtable for attributes. Value in this map override the values in `allAttributes`.

### groupBounds

    protected transient Rectangle2D groupBounds

  Cached bounds of all children if vertex is a group

Constructor Detail

### AbstractCellView

    public AbstractCellView()

  Constructs an empty abstract cell view. You should set a cell on this view using setCell before doing anything. Optionally you can also set a different attribute map using setAttributeMap. Note: To change the attribute map you should now use the changeAttributes method.

### AbstractCellView

    public AbstractCellView(Object cell)

  Constructs a view for the specified model object, and invokes update on the new instance.

Parameters:
  `cell` - reference to the model object

Method Detail

### createAttributeMap

    protected AttributeMap createAttributeMap()

  Hook for subclassers to avoid creating an empty AttributeMap during construction of the instance. Override this and return null if you want to avoid creation of an attribute map at construction time.

### getCell

    public Object getCell()

  Returns the model object that this view represents.

  Specified by:
    `getCell` in interface `CellView`
  Returns:
    the model object that this view represents

### setCell

    public void setCell(Object cell)

  Sets the model object that this view represents to the specified cell

  Parameters:
    `cell` - the model object this view will represent

### refresh

    public void refresh(GraphLayoutCache cache,
                        CellMapper mapper,
                        boolean createDependentViews)

  Create child views and reload properties for this view. Invokes update first.

  Specified by:
    `refresh` in interface `CellView`
  Parameters:
    `cache` - the graph model to be used
    `mapper` - the cell mapper to be used
    `createDependentViews` - whether or not to create a view if one does not already exist

### getCellAttributes

    protected AttributeMap getCellAttributes(GraphModel model)

  Hook for subclassers to avoid cloning the cell's attributes. Return model.getAttributes(cell) to avoid cloning.

### update

    public void update(GraphLayoutCache cache)

  Update attributes for this view and indicate to the parent this child has been updated

  Specified by:
    `update` in interface `CellView`
  Parameters:
    `cache` - TODO

### mergeAttributes

    protected void mergeAttributes()

  Implements the merging of the cell's attributes, initially stored in allAttributes, and the location attributes. The result should be stored in allAttributes. This hook is for subclassers to change the merging strategy.

### childUpdated

    public void childUpdated()

  Indicates to parent, if any, that this child has been updated.

  Specified by:
    `childUpdated` in interface `CellView`

### getParentView

    public CellView getParentView()

  Returns the parent view for this view.

  Specified by:
    `getParentView` in interface `CellView`
  Returns:
    the parent view for this view

### getChildViews

    public CellView[] getChildViews()

  Returns the child views of this view.

  Specified by:
    `getChildViews` in interface `CellView`
  Returns:
    the child views of this view

### 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. This returns the array in inverse order, ie with the top most cell view at index 0.

  Parameters:
    `views` - the cell views whose descendants are to be returned
  Returns:
    the specified views and all their descendant views

### removeFromParent

    public void removeFromParent()

  Removes this view from the list of children 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`
  Returns:
    `true` if the view is a leaf

### getAttributes

    public AttributeMap getAttributes()

  Return the attributes of the view.

  Specified by:
    `getAttributes` in interface `CellView`
  Returns:
    the `attributes` of this view

### setAttributes

    public void setAttributes(AttributeMap attributes)

  Sets the attributes of this view to the specified value

  Parameters:
    `attributes` - the new attributes to set

### getAllAttributes

    public AttributeMap 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`

### changeAttributes

    public Map changeAttributes(GraphLayoutCache cache,
                                Map change)

  Applies `change` to the attributes of the view and calls update.

  Specified by:
    `changeAttributes` in interface `CellView`
  Parameters:
    `change` - a map of attribute changes to apply
  Returns:
    the undo map that reverses this change

### getBounds

    public Rectangle2D getBounds()

  Returns the cached bounds for the group if isleaf is false

  Specified by:
    `getBounds` in interface `CellView`

### getBounds

    public static Rectangle2D getBounds(CellView[] views)

  Returns the bounding box for the specified views.

  Parameters:
    `views` - the views for whom the bounding box is to be determined
  Returns:
    the bounding box of the specified views

### setBounds

    public void setBounds(Rectangle2D bounds)

  Sets the bounds of this `view`. Calls translateView and scaleView.

  Parameters:
    `bounds` - the new bounds for this cell view

### updateGroupBounds

    protected void updateGroupBounds()

  Updates the bounds of this view and its children

### includeInGroupBounds

    protected boolean includeInGroupBounds(CellView view)

  This is used to exclude certain cell views from the group bounds computation. This implementation returns false for edges that connect to one of their ancestor groups (eg. parent).

  Parameters:
    `view` - the cell view to be included in the group bounds or not
  Returns:
    whether or not to include the specified cell in the group bounds

### translate

    public void translate(double dx,
                          double dy)

  Translates `view` (group) by `dx, dy`.

  Parameters:
    `dx` - the x-coordinate amount to translate by
    `dy` - the y-coordinate amount to translate by

### scale

    public void scale(double sx,
                      double sy,
                      Point2D origin)

  Scale `view` (group) by `sx, sy`.

  Parameters:
    `sx` - the multiple by which the x coordinate position of the cell view is to be scaled
    `sy` - the multiple by which the y coordinate position of the cell view is to be scaled
    `origin` - the origin point from which the scaling will calculate

### intersects

    public boolean intersects(JGraph graph,
                              Rectangle2D rect)

  Returns true if the view intersects the given rectangle.

  Specified by:
    `intersects` in interface `CellView`
  Parameters:
    `graph` - the `JGraph` instance of the view
    `rect` - the rectangle within which intersection is being checked for
  Returns:
    whether or not the rectangle specified intersects the view

### getRendererComponent

    public Component getRendererComponent(JGraph graph,
                                          boolean selected,
                                          boolean focus,
                                          boolean preview)

  Returns a renderer component, configured for the view. The method used to obtain the renderer instance must install the necessary attributes from this view

  Specified by:
    `getRendererComponent` in interface `CellView`
  Parameters:
    `graph` - the `JGraph` instance of the view
    `selected` - whether or not this view is selected
    `focus` - whether or not this view is the focus
    `preview` - whether or not it is a preview of the view
  Returns:
    the renderer component for this view with this views attributes installed

### getRenderer

    public abstract CellViewRenderer getRenderer()

  Obtains the renderer instance for this view

  Returns:
    the renderer instance for this view

### getHandle

    public abstract CellHandle getHandle(GraphContext context)

  Returns a cell handle for the view.

  Specified by:
    `getHandle` in interface `CellView`
  Parameters:
    `context` - the context of this cell view (cells indirectly affected by it)
  Returns:
    the cell handle for this view

### getEditor

    public GraphCellEditor getEditor()

  Returns a cell editor for the view.

  Specified by:
    `getEditor` in interface `CellView`
  Returns:
    the cell editor for this view

### getCenterPoint

    public static Point2D getCenterPoint(CellView vertex)

### getPerimeterPoint

    public Point2D getPerimeterPoint(EdgeView edge,
                                     Point2D source,
                                     Point2D p)

  Returns the intersection of the bounding rectangle and the straight line between the source and the specified point p. The specified point is expected not to intersect the bounds. Note: You must override this method if you use a different renderer. This is because this method relies on the VertexRenderer interface, which can not be safely assumed for subclassers.

  Specified by:
    `getPerimeterPoint` in interface `CellView`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JGraph v5.12.4.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (C) 2001-2008 Gaudenz Alder. All rights reserved.