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

## org.jgraph.graph
Class GraphLayoutCache

    java.lang.Object
      |
      +--java.util.Observable
            |
            +--org.jgraph.graph.GraphLayoutCache

All Implemented Interfaces:
  CellMapper, Serializable

public class GraphLayoutCache
extends Observable
implements CellMapper, Serializable

An object that defines the view of a graphmodel. This object maps between model cells and views and provides a set of methods to change these views. The view may also contain its own set of attributes and is therefore an extension of an Observable, which may be observed by the GraphUI. It uses the model to send its changes to the command history.

See Also:
  Serialized Form

Nested Class Summary
`class` | `GraphLayoutCache.GraphViewEdit` An implementation of GraphViewChange.
`static class` | `GraphLayoutCache.GraphViewLayerEdit` An implementation of GraphViewChange.

Field Summary
`protected boolean` | `askLocalAttribute` May be used to disable the creation of local edits independently.
`protected CellViewFactory` | `factory` Factory to create the views.
`protected JGraph` | `graph` Factory to create the views.
`protected GraphModel` | `graphModel` Reference to the graphModel
`protected Map` | `hiddenSet` Remebered cell views.
`boolean` | `hideEdgesOnBecomeInvisible` Boolean indicating whether edges should be made invisible if their connected vertices become invisible (for example when removed).
`boolean` | `hideEdgesOnHide` Boolean indicating whether attached edges should be made invisible if their source or target port is hidden.
`protected Set` | `localAttributes` A set containing all attribute keys that are stored in the cell views, in other words, the view-local attributes.
`protected CellMapper` | `mapper` Reference to the cell mapper, typically this.
`protected Map` | `mapping` Maps cells to views.
`protected boolean` | `ordered` View overrides model layering.
`protected boolean` | `partial` Only portions of the model are visible.
`protected PortView[]` | `ports` Cached array of all ports for the view.
`boolean` | `rememberCellViews` Boolean indicating whether cellviews should be remembered once visible in this GraphLayoutCache.
`protected List` | `roots` Ordered list of roots for the view.
`boolean` | `showAllEdgesForVisibleVertices` Boolean indicating whether new or changed edges should be made visible if their source and target vertices are visible.
`boolean` | `showEdgesOnShow` Boolean indicating whether edges should be made visible if their connected vertices become visible.
`protected Set` | `visibleSet` The set of visible cells.

Constructor Summary
`GraphLayoutCache(JGraph graph)` Constructs a view for the specified model that uses `factory` to create its views.
`GraphLayoutCache(JGraph graph, GraphModel model, CellViewFactory factory, boolean ordered, boolean partial)` Constructs a view for the specified model that uses `factory` to create its views.
`GraphLayoutCache(JGraph graph, GraphModel model, CellViewFactory factory, boolean ordered, boolean partial, boolean rememberCellViews, boolean showAllEdgesForVisibleVertices, boolean showEdgesOnShow, boolean hideEdgesOnHide, boolean hideEdgesOnBecomeInvisible)` Constructs a view for the specified model that uses `factory` to create its views.
`GraphLayoutCache(JGraph graph, Set localAttributes)` Constructs a view for the specified model that uses `factory` to create its views.

Method Summary
`Object[]` | `addVisibleDependencies(Object[] cells, boolean visible)`
`protected UndoableEdit[]` | `augment(UndoableEdit[] e, UndoableEdit edit)`
`protected GraphLayoutCache.GraphViewEdit` | `createLocalEdit(Map nested, Object[] visible, Object[] invisible)` Creates a local edit for the specified change.
`void` | `edit(Map attributes, ConnectionSet cs, ParentMap pm, UndoableEdit[] e)` Applies the `propertyMap` and the connection changes to the model.
`CellView[]` | `getAllDescendants(CellView[] views)` Returns all views, including descendants that have a parent in `views`, especially the PortViews.
`Object[]` | `getCells(CellView[] views)` Takes an array of views and returns the array of the corresponding cells by using `getCell` for each view.
`CellViewFactory` | `getFactory()` Returns the factory that was passed to the constructor.
`JGraph` | `getGraph()` Returns the factory that was passed to the constructor.
`Map` | `getHiddenSet()` Returns the hiddenSet.
`Set` | `getLocalAttributes()`
`CellView[]` | `getMapping(Object[] cells)` Returns the views for the specified array of cells without creating these views on the fly.
`CellView[]` | `getMapping(Object[] cells, boolean create)` Returns the views for the specified array of cells.
`CellView` | `getMapping(Object cell, boolean create)` Returns the view for the specified cell.
`GraphModel` | `getModel()` Returns the current model.
`protected Collection` | `getParentPorts(Object cell)`
`PortView[]` | `getPorts()` Returns the ports of the view.
`protected Collection` | `getPorts(Object cell)`
`CellView[]` | `getRoots()` Returns the roots of the view.
`CellView[]` | `getRoots(Rectangle2D clip)` Return all cells that intersect the given rectangle.
`Set` | `getVisibleSet()`
`void` | `graphChanged(GraphModelEvent.GraphModelChange change)` Called from BasicGraphUI.ModelHandler to update the view based on the specified GraphModelEvent.
`protected Map` | `handleAttributes(Map attributes)` Attention: Undo will not work for routing-change if ROUTING and POINTS are stored in different locations.
`protected void` | `hideCellsForChange(GraphModelEvent.GraphModelChange change)`
`void` | `insert(Object[] roots, Map attributes, ConnectionSet cs, ParentMap pm, UndoableEdit[] e)` Inserts the `cells` and connections into the model, and absorbs the local attributes.
`void` | `insertRoots(CellView[] views)` Adds the specified model root cells to the view.
`boolean` | `isAskLocalAttribute()`
`protected boolean` | `isControlAttribute(Object cell, Object key, Object value)` Returns true if `key` is a control attribute
`boolean` | `isHideEdgesOnBecomeInvisible()` Returns the hideEdgesOnBecomeInvisible.
`boolean` | `isHideEdgesOnHide()` Returns the hideEdgesOnHide.
`protected boolean` | `isLocalAttribute(Object cell, Object key, Object value)` Returns true if the set of local attributes contains `key`
`boolean` | `isOrdered()`
`boolean` | `isPartial()`
`boolean` | `isRememberCellViews()` Returns the rememberCellViews.
`boolean` | `isShowAllEdgesForVisibleVertices()` Returns the showAllEdgesForVisibleVertices.
`boolean` | `isShowEdgesOnShow()` Returns the showEdgesOnShow.
`boolean` | `isVisible(Object cell)`
`Object[]` | `order(Object[] cells)` Returns the specified cells in view-order if the model is not ordered.
`void` | `putMapping(Object cell, CellView view)` Associates the specified model cell with the specified view.
`void` | `refresh(CellView[] views, boolean create)`
`void` | `refresh(CellView view, boolean create)`
`void` | `reload()`
`void` | `remove(Object[] roots)` Removes `cells` from the model.
`CellView` | `removeMapping(Object cell)` Removes the associaten for the specified model cell and returns the view that was previously associated with the cell.
`CellView[]` | `removeRoots(Object[] cells)` Removes the specified model root cells from the view by removing the mapping between the cell and its view and makes the cells invisible.
`void` | `setAskLocalAttribute(boolean askLocalAttribute)`
`void` | `setFactory(CellViewFactory factory)` Sets the factory that creates the cell views.
`void` | `setHiddenSet(Map hiddenSet)` Sets the hiddenSet.
`void` | `setHideEdgesOnBecomeInvisible(boolean hideEdgesOnBecomeInvisible)` Sets the hideEdgesOnBecomeInvisible.
`void` | `setHideEdgesOnHide(boolean hideEdgesOnHide)` Sets the hideEdgesOnHide.
`void` | `setLocalAttributes(Set localAttributes)`
`void` | `setModel(GraphModel model)` Sets the current model.
`void` | `setRememberCellViews(boolean rememberCellViews)` Sets the rememberCellViews.
`void` | `setShowAllEdgesForVisibleVertices(boolean showAllEdgesForVisibleVertices)` Sets the showAllEdgesForVisibleVertices.
`void` | `setShowEdgesOnShow(boolean showEdgesOnShow)` Sets the showEdgesOnShow.
`void` | `setVisible(Object[] cells, boolean visible)`
`void` | `setVisible(Object[] visible, Object[] invisible)`
`void` | `setVisible(Object cell, boolean visible)`
`boolean` | `setVisibleImpl(Object[] cells, boolean visible)`
`void` | `setVisibleSet(Set visible)`
`protected void` | `showCellsForChange(GraphModelEvent.GraphModelChange change)`
`void` | `toBack(Object[] cells)` Sends `cells` to back.
`void` | `toFront(Object[] cells)` Brings `cells` to front.
`static void` | `translateViews(CellView[] views, double dx, double dy)` Translates the specified views by the given amount.
`void` | `update(CellView view)`
`void` | `update(CellView[] views)`
`protected void` | `updatePorts()` Updates the cached array of ports.
`void` | `valueForCellChanged(Object cell, Object newValue)` Messaged when the user has altered the value for the item identified by cell to newValue.

Methods inherited from class java.util.Observable
`addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged`

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

Field Detail

### showAllEdgesForVisibleVertices

    public boolean showAllEdgesForVisibleVertices

  Boolean indicating whether new or changed edges should be made visible if their source and target vertices are visible. This setting has no effect in non-partial views.

### showEdgesOnShow

    public boolean showEdgesOnShow

  Boolean indicating whether edges should be made visible if their connected vertices become visible. This does cause new edges to be displayed automatically. This setting has no effect in non-partial views.

### hideEdgesOnHide

    public boolean hideEdgesOnHide

  Boolean indicating whether attached edges should be made invisible if their source or target port is hidden. This setting has no effect in non-partial views.

### hideEdgesOnBecomeInvisible

    public boolean hideEdgesOnBecomeInvisible

  Boolean indicating whether edges should be made invisible if their connected vertices become invisible (for example when removed). This setting has no effect in non-partial views.

### rememberCellViews

    public boolean rememberCellViews

  Boolean indicating whether cellviews should be remembered once visible in this GraphLayoutCache.

### graphModel

    protected GraphModel graphModel

  Reference to the graphModel

### mapping

    protected Map mapping

  Maps cells to views.

### mapper

    protected CellMapper mapper

  Reference to the cell mapper, typically this.

### factory

    protected CellViewFactory factory

  Factory to create the views.

### graph

    protected JGraph graph

  Factory to create the views.

### visibleSet

    protected Set visibleSet

  The set of visible cells.

### roots

    protected List roots

  Ordered list of roots for the view.

### ports

    protected PortView[] ports

  Cached array of all ports for the view.

### hiddenSet

    protected transient Map hiddenSet

  Remebered cell views.

### ordered

    protected boolean ordered

  View overrides model layering.

### partial

    protected boolean partial

  Only portions of the model are visible.

### askLocalAttribute

    protected boolean askLocalAttribute

  May be used to disable the creation of local edits independently.

### localAttributes

    protected Set localAttributes

  A set containing all attribute keys that are stored in the cell views, in other words, the view-local attributes.

Constructor Detail

### GraphLayoutCache

    public GraphLayoutCache(JGraph graph)

  Constructs a view for the specified model that uses `factory` to create its views.

### GraphLayoutCache

    public GraphLayoutCache(JGraph graph,
                            Set localAttributes)

  Constructs a view for the specified model that uses `factory` to create its views.

### GraphLayoutCache

    public GraphLayoutCache(JGraph graph,
                            GraphModel model,
                            CellViewFactory factory,
                            boolean ordered,
                            boolean partial)

  Constructs a view for the specified model that uses `factory` to create its views.

Parameters:
  `model` - the model that constitues the data source

### GraphLayoutCache

    public GraphLayoutCache(JGraph graph,
                            GraphModel model,
                            CellViewFactory factory,
                            boolean ordered,
                            boolean partial,
                            boolean rememberCellViews,
                            boolean showAllEdgesForVisibleVertices,
                            boolean showEdgesOnShow,
                            boolean hideEdgesOnHide,
                            boolean hideEdgesOnBecomeInvisible)

  Constructs a view for the specified model that uses `factory` to create its views.

Parameters:
  `model` - the model that constitues the data source

Method Detail

### getGraph

    public JGraph getGraph()

  Returns the factory that was passed to the constructor.

### setFactory

    public void setFactory(CellViewFactory factory)

  Sets the factory that creates the cell views.

### getFactory

    public CellViewFactory getFactory()

  Returns the factory that was passed to the constructor.

### setModel

    public void setModel(GraphModel model)

  Sets the current model.

### reload

    public void reload()

### getModel

    public GraphModel getModel()

  Returns the current model.

### getRoots

    public CellView[] getRoots()

  Returns the roots of the view.

### getRoots

    public CellView[] getRoots(Rectangle2D clip)

  Return all cells that intersect the given rectangle.

### getPorts

    public PortView[] getPorts()

  Returns the ports of the view.

### updatePorts

    protected void updatePorts()

  Updates the cached array of ports.

### refresh

    public void refresh(CellView[] views,
                        boolean create)

### refresh

    public void refresh(CellView view,
                        boolean create)

### update

    public void update(CellView[] views)

### update

    public void update(CellView view)

### graphChanged

    public void graphChanged(GraphModelEvent.GraphModelChange change)

  Called from BasicGraphUI.ModelHandler to update the view based on the specified GraphModelEvent.

### hideCellsForChange

    protected void hideCellsForChange(GraphModelEvent.GraphModelChange change)

### showCellsForChange

    protected void showCellsForChange(GraphModelEvent.GraphModelChange change)

### insertRoots

    public void insertRoots(CellView[] views)

  Adds the specified model root cells to the view.

### removeRoots

    public CellView[] removeRoots(Object[] cells)

  Removes the specified model root cells from the view by removing the mapping between the cell and its view and makes the cells invisible.

### getCells

    public Object[] getCells(CellView[] views)

  Takes an array of views and returns the array of the corresponding cells by using `getCell` for each view.

### getMapping

    public CellView getMapping(Object cell,
                               boolean create)

  Returns the view for the specified cell. If create is true and no view is found then a view is created using createView(Object).

  Specified by:
    `getMapping` in interface `CellMapper`
  Parameters:
    `create` - whether a new view should created

### getMapping

    public CellView[] getMapping(Object[] cells)

  Returns the views for the specified array of cells without creating these views on the fly.

### getMapping

    public CellView[] getMapping(Object[] cells,
                                 boolean create)

  Returns the views for the specified array of cells. Returned array may contain null pointers if the respective cell is not mapped in this view and `create` is `false`.

### putMapping

    public void putMapping(Object cell,
                           CellView view)

  Associates the specified model cell with the specified view. Updates the portlist if necessary.

  Specified by:
    `putMapping` in interface `CellMapper`
  Parameters:
    `cell` - the cell that constitutes the model element
    `view` - the view that constitutes the view element

### removeMapping

    public CellView removeMapping(Object cell)

  Removes the associaten for the specified model cell and returns the view that was previously associated with the cell. Updates the portlist if necessary.

### isVisible

    public boolean isVisible(Object cell)

### getVisibleSet

    public Set getVisibleSet()

### setVisibleSet

    public void setVisibleSet(Set visible)

### setVisible

    public void setVisible(Object cell,
                           boolean visible)

### setVisible

    public void setVisible(Object[] cells,
                           boolean visible)

### setVisible

    public void setVisible(Object[] visible,
                           Object[] invisible)

### addVisibleDependencies

    public Object[] addVisibleDependencies(Object[] cells,
                                           boolean visible)

### setVisibleImpl

    public boolean setVisibleImpl(Object[] cells,
                                  boolean visible)

### getParentPorts

    protected Collection getParentPorts(Object cell)

### getPorts

    protected Collection getPorts(Object cell)

### isOrdered

    public boolean isOrdered()

### isPartial

    public boolean isPartial()

### valueForCellChanged

    public void valueForCellChanged(Object cell,
                                    Object newValue)

  Messaged when the user has altered the value for the item identified by cell to newValue. If newValue signifies a truly new value the model should post a graphCellsChanged event.

### insert

    public void insert(Object[] roots,
                       Map attributes,
                       ConnectionSet cs,
                       ParentMap pm,
                       UndoableEdit[] e)

  Inserts the `cells` and connections into the model, and absorbs the local attributes. This implementation sets the inserted cells visible. (Note: No undo required for this visibility change.)

### remove

    public void remove(Object[] roots)

  Removes `cells` from the model. If `removeChildren` is `true`, the children are also removed. Notifies the model- and undo listeners of the change.

### edit

    public void edit(Map attributes,
                     ConnectionSet cs,
                     ParentMap pm,
                     UndoableEdit[] e)

  Applies the `propertyMap` and the connection changes to the model. The initial `edits` that triggered the call are considered to be part of this transaction. Notifies the model- and undo listeners of the change. Note: The passed in attributes may contain PortViews.

### augment

    protected UndoableEdit[] augment(UndoableEdit[] e,
                                     UndoableEdit edit)

### toBack

    public void toBack(Object[] cells)

  Sends `cells` to back. Note: This expects an array of cells!

### toFront

    public void toFront(Object[] cells)

  Brings `cells` to front. Note: This expects an array of cells!

### createLocalEdit

    protected GraphLayoutCache.GraphViewEdit createLocalEdit(Map nested,
                                                             Object[] visible,
                                                             Object[] invisible)

  Creates a local edit for the specified change. A local operation contains all visibility changes, as well as all changes to attributes that are local, and all control attributes.

### isLocalAttribute

    protected boolean isLocalAttribute(Object cell,
                                       Object key,
                                       Object value)

  Returns true if the set of local attributes contains `key`

### isControlAttribute

    protected boolean isControlAttribute(Object cell,
                                         Object key,
                                         Object value)

  Returns true if `key` is a control attribute

### order

    public Object[] order(Object[] cells)

  Returns the specified cells in view-order if the model is not ordered.

### handleAttributes

    protected Map handleAttributes(Map attributes)

  Attention: Undo will not work for routing-change if ROUTING and POINTS are stored in different locations. This happens if the model holds the routing attribute and the routing changes from unrouted to routed. In this case the points in the view are already routed according to the new scheme when written to the command history (-> no undo).

### translateViews

    public static void translateViews(CellView[] views,
                                      double dx,
                                      double dy)

  Translates the specified views by the given amount.

### getAllDescendants

    public CellView[] getAllDescendants(CellView[] views)

  Returns all views, including descendants that have a parent in `views`, especially the PortViews. Note: Iterative Implementation using model.getChild and getMapping on this cell mapper.

### getHiddenSet

    public Map getHiddenSet()

  Returns the hiddenSet.

  Returns:
    Map

### isHideEdgesOnBecomeInvisible

    public boolean isHideEdgesOnBecomeInvisible()

  Returns the hideEdgesOnBecomeInvisible.

  Returns:
    boolean

### isHideEdgesOnHide

    public boolean isHideEdgesOnHide()

  Returns the hideEdgesOnHide.

  Returns:
    boolean

### isRememberCellViews

    public boolean isRememberCellViews()

  Returns the rememberCellViews.

  Returns:
    boolean

### isShowAllEdgesForVisibleVertices

    public boolean isShowAllEdgesForVisibleVertices()

  Returns the showAllEdgesForVisibleVertices.

  Returns:
    boolean

### isShowEdgesOnShow

    public boolean isShowEdgesOnShow()

  Returns the showEdgesOnShow.

  Returns:
    boolean

### setHiddenSet

    public void setHiddenSet(Map hiddenSet)

  Sets the hiddenSet.

  Parameters:
    `hiddenSet` - The hiddenSet to set

### setHideEdgesOnBecomeInvisible

    public void setHideEdgesOnBecomeInvisible(boolean hideEdgesOnBecomeInvisible)

  Sets the hideEdgesOnBecomeInvisible.

  Parameters:
    `hideEdgesOnBecomeInvisible` - The hideEdgesOnBecomeInvisible to set

### setHideEdgesOnHide

    public void setHideEdgesOnHide(boolean hideEdgesOnHide)

  Sets the hideEdgesOnHide.

  Parameters:
    `hideEdgesOnHide` - The hideEdgesOnHide to set

### setRememberCellViews

    public void setRememberCellViews(boolean rememberCellViews)

  Sets the rememberCellViews.

  Parameters:
    `rememberCellViews` - The rememberCellViews to set

### setShowAllEdgesForVisibleVertices

    public void setShowAllEdgesForVisibleVertices(boolean showAllEdgesForVisibleVertices)

  Sets the showAllEdgesForVisibleVertices.

  Parameters:
    `showAllEdgesForVisibleVertices` - The showAllEdgesForVisibleVertices to set

### setShowEdgesOnShow

    public void setShowEdgesOnShow(boolean showEdgesOnShow)

  Sets the showEdgesOnShow.

  Parameters:
    `showEdgesOnShow` - The showEdgesOnShow to set

### getLocalAttributes

    public Set getLocalAttributes()

  Returns:
    Returns the localAttributes.

### setLocalAttributes

    public void setLocalAttributes(Set localAttributes)

  Parameters:
    `localAttributes` - The localAttributes to set.

### isAskLocalAttribute

    public boolean isAskLocalAttribute()

  Returns:
    Returns the askLocalAttribute.

### setAskLocalAttribute

    public void setAskLocalAttribute(boolean askLocalAttribute)

  Parameters:
    `askLocalAttribute` - The askLocalAttribute to set.

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

Copyright (C) 2003-2004 Gaudenz Alder. All rights reserved.