|
JGraph |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.util.Observable
org.jgraph.graph.GraphLayoutCache
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.
Nested Class Summary | |
class |
GraphLayoutCache.GraphViewEdit
An implementation of GraphViewChange. |
Field Summary | |
protected boolean |
askLocalAttribute
May be used to disable the creation of local edits independently. |
protected boolean |
autoSizeOnValueChange
True if the cells should be auto-sized when their values change. |
protected List |
changed
An extension of the observable pattern that contains the cellviews that have changed and should be checked for auto sizing. |
protected CellViewFactory |
factory
Factory to create the views. |
protected GraphModel |
graphModel
Reference to the graphModel |
protected Map |
hiddenSet
Remebered cell views. |
protected boolean |
hidesDanglingConnections
Boolean indicating whether existing connections should be hidden if their source or target port is removed from the model. |
protected boolean |
hidesExistingConnections
Boolean indicating whether existing connections should be hidden if their source or target is hidden, either by hiding the cell or by changing the source or target of the edge to a hidden cell. |
protected boolean |
inserted
Specify if the last change was an insert. |
protected Set |
localAttributes
A set containing all attribute keys that are stored in the cell views, in other words, the view-local attributes. |
protected Map |
mapping
Maps cells to views. |
protected boolean |
partial
Only portions of the model are visible. |
protected PortView[] |
ports
Cached array of all ports for the view. |
protected boolean |
remembersCellViews
Boolean indicating whether cellviews should be remembered once visible in this GraphLayoutCache. |
protected List |
roots
Ordered list of roots for the view. |
protected boolean |
selectsAllInsertedCells
Boolean indicating whether inserted cells should automatically be selected. |
protected boolean |
selectsLocalInsertedCells
Boolean indicating whether cells that are inserted using the local insert method should automatically be selected. |
protected boolean |
showsExistingConnections
Boolean indicating whether existing connections should me made visible if their sources or targets are made visible, given the opposite end of the edge is already visible or made visible, too. |
protected boolean |
showsInsertedConnections
Boolean indicating whether inserted edges should me made visible if their sources or targets are already visible. |
protected Set |
visibleSet
The set of visible cells. |
Constructor Summary | |
GraphLayoutCache(GraphModel model,
CellViewFactory factory)
Constructs a view for the specified model that uses factory
to create its views. |
|
GraphLayoutCache(GraphModel model,
CellViewFactory factory,
boolean partial)
Constructs a view for the specified model that uses factory
to create its views. |
|
GraphLayoutCache(GraphModel model,
CellViewFactory factory,
CellView[] cellViews,
boolean partial)
Constructs a view for the specified model that uses factory
to create its views. |
Method Summary | |
protected void |
addChanged(CellView view)
|
void |
addChanged(CellView[] cellViews)
Adds the specified cell views to the changed cell views. |
Object[] |
addVisibleDependencies(Object[] cells,
boolean visible)
|
protected UndoableEdit[] |
augment(UndoableEdit[] e,
UndoableEdit edit)
|
protected void |
augmentNestedMapForValueChange(Map nested,
Object cell,
Object newValue)
Hook for subclassers to add more stuff for value changes. |
protected GraphLayoutCache.GraphViewEdit |
createLocalEdit(Object[] inserted,
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. |
void |
edit(Object[] cells,
Map attributes)
Applies the attributes to all cells by
creating a map that contains the attributes for each cell and calling
edit on this layout cache. |
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. |
CellView[] |
getCellViews()
|
CellView[] |
getChanged()
|
protected Object[] |
getContext(GraphModelEvent.GraphModelChange change)
Hook for subclassers to augment the context for a graphChange. |
CellViewFactory |
getFactory()
Returns the factory that was passed to the constructor. |
Map |
getHiddenSet()
Returns the hiddenSet. |
boolean |
getInserted()
|
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. |
Object[] |
getVisibleCells(Object[] cells)
Returns a an array with the visible cells in cells . |
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. |
Object[] |
insertClones(Object[] cells,
Map clones,
Map nested,
ConnectionSet cs,
ParentMap pm,
double dx,
double dy)
Inserts the cloned cells from the clone map and clones the passed-in arguments according to the clone map before insertion and returns the clones in order of the cells. |
void |
insertViews(CellView[] views)
Adds the specified model root cells to the view. |
boolean |
isAskLocalAttribute()
|
boolean |
isAutoSizeOnValueChange()
Returns true if cells should be auto-sized when their values change |
protected boolean |
isControlAttribute(Object cell,
Object key,
Object value)
Returns true if key is a control attribute |
protected boolean |
isLocalAttribute(Object cell,
Object key,
Object value)
Returns true if the set of local attributes contains key |
boolean |
isPartial()
|
boolean |
isSelectsAllInsertedCells()
|
boolean |
isSelectsLocalInsertedCells()
|
boolean |
isVisible(Object cell)
|
void |
notifyObservers(Object arg)
|
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[] |
removeCells(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. |
CellView |
removeMapping(Object cell)
Removes the associaten for the specified model cell and returns the view that was previously associated with the cell. |
protected void |
resetChanged()
|
void |
setAskLocalAttribute(boolean askLocalAttribute)
|
void |
setAutoSizeOnValueChange(boolean flag)
Determines whether cells should be auto-sized when their values change. |
void |
setFactory(CellViewFactory factory)
Sets the factory that creates the cell views. |
void |
setHiddenSet(Map hiddenSet)
Sets the hiddenSet. |
void |
setHidesDanglingConnections(boolean hidesDanglingConnections)
Returns the showEdgesOnShow. |
void |
setHidesExistingConnections(boolean hidesExistingConnections)
Returns the showEdgesOnShow. |
void |
setInserted()
|
void |
setLocalAttributes(Set localAttributes)
|
void |
setModel(GraphModel model)
Sets the current model. |
void |
setRemembersCellViews(boolean rememberCellViews)
Sets the rememberCellViews. |
void |
setSelectLocalInsertedCells(boolean selectsLocalInsertedCells)
|
void |
setSelectsAllInsertedCells(boolean selectsAllInsertedCells)
|
void |
setShowsExistingConnections(boolean showsExistingConnections)
Returns the showEdgesOnShow. |
void |
setShowsInsertedConnections(boolean showsInsertedConnections)
Returns 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, setChanged |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected boolean autoSizeOnValueChange
protected boolean showsExistingConnections
protected boolean showsInsertedConnections
protected boolean hidesExistingConnections
protected boolean hidesDanglingConnections
protected boolean remembersCellViews
protected boolean selectsAllInsertedCells
protected boolean selectsLocalInsertedCells
protected GraphModel graphModel
protected transient Map mapping
protected CellViewFactory factory
protected transient Set visibleSet
protected transient List roots
protected transient PortView[] ports
protected transient List changed
protected transient Map hiddenSet
protected boolean partial
protected transient boolean inserted
protected boolean askLocalAttribute
protected Set localAttributes
Constructor Detail |
public GraphLayoutCache(GraphModel model, CellViewFactory factory)
factory
to create its views.
model
- the model that constitues the data sourcepublic GraphLayoutCache(GraphModel model, CellViewFactory factory, boolean partial)
factory
to create its views.
model
- the model that constitues the data sourcepublic GraphLayoutCache(GraphModel model, CellViewFactory factory, CellView[] cellViews, boolean partial)
factory
to create its views.
model
- the model that constitues the data sourceMethod Detail |
protected void addChanged(CellView view)
public void addChanged(CellView[] cellViews)
public void setInserted()
public boolean getInserted()
public CellView[] getChanged()
protected void resetChanged()
public void notifyObservers(Object arg)
public void setFactory(CellViewFactory factory)
public CellViewFactory getFactory()
public void setModel(GraphModel model)
public CellView[] getCellViews()
public void reload()
public GraphModel getModel()
public CellView[] getRoots()
public CellView[] getRoots(Rectangle2D clip)
public Object[] getVisibleCells(Object[] cells)
cells
.
public PortView[] getPorts()
protected void updatePorts()
public void refresh(CellView[] views, boolean create)
public void refresh(CellView view, boolean create)
public void update(CellView[] views)
public void update(CellView view)
public void graphChanged(GraphModelEvent.GraphModelChange change)
protected Object[] getContext(GraphModelEvent.GraphModelChange change)
protected void hideCellsForChange(GraphModelEvent.GraphModelChange change)
protected void showCellsForChange(GraphModelEvent.GraphModelChange change)
public void insertViews(CellView[] views)
public CellView[] removeCells(Object[] cells)
public Object[] getCells(CellView[] views)
getCell
for each view.
public CellView getMapping(Object cell, boolean create)
getMapping
in interface CellMapper
create
- whether a new view should createdpublic CellView[] getMapping(Object[] cells)
public CellView[] getMapping(Object[] cells, boolean create)
create
is false
.
public void putMapping(Object cell, CellView view)
putMapping
in interface CellMapper
cell
- the cell that constitutes the model elementview
- the view that constitutes the view elementpublic CellView removeMapping(Object cell)
public boolean isVisible(Object cell)
public Set getVisibleSet()
public void setVisibleSet(Set visible)
public void setVisible(Object cell, boolean visible)
public void setVisible(Object[] cells, boolean visible)
public void setVisible(Object[] visible, Object[] invisible)
public Object[] addVisibleDependencies(Object[] cells, boolean visible)
public boolean setVisibleImpl(Object[] cells, boolean visible)
protected Collection getParentPorts(Object cell)
protected Collection getPorts(Object cell)
public boolean isPartial()
public void valueForCellChanged(Object cell, Object newValue)
protected void augmentNestedMapForValueChange(Map nested, Object cell, Object newValue)
public void insert(Object[] roots, Map attributes, ConnectionSet cs, ParentMap pm, UndoableEdit[] e)
cells
and connections into the model, and
absorbs the local attributes. This implementation sets the inserted cells
visible and selects the new roots depending on graph.selectNewCells.
public Object[] insertClones(Object[] cells, Map clones, Map nested, ConnectionSet cs, ParentMap pm, double dx, double dy)
public void remove(Object[] roots)
cells
from the model. If
removeChildren
is true
, the children are
also removed. Notifies the model- and undo listeners of the change.
public void edit(Map attributes, ConnectionSet cs, ParentMap pm, UndoableEdit[] e)
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.
public void edit(Object[] cells, Map attributes)
attributes
to all cells
by
creating a map that contains the attributes for each cell and calling
edit on this layout cache.
protected UndoableEdit[] augment(UndoableEdit[] e, UndoableEdit edit)
public void toBack(Object[] cells)
cells
to back. Note: This expects an array of cells!
public void toFront(Object[] cells)
cells
to front. Note: This expects an array of
cells!
protected GraphLayoutCache.GraphViewEdit createLocalEdit(Object[] inserted, Map nested, Object[] visible, Object[] invisible)
protected boolean isLocalAttribute(Object cell, Object key, Object value)
key
protected boolean isControlAttribute(Object cell, Object key, Object value)
key
is a control attribute
protected Map handleAttributes(Map attributes)
public static void translateViews(CellView[] views, double dx, double dy)
public CellView[] getAllDescendants(CellView[] views)
views
, especially the PortViews. Note: Iterative
Implementation using model.getChild and getMapping on this cell mapper.
public Map getHiddenSet()
public void setShowsExistingConnections(boolean showsExistingConnections)
public void setShowsInsertedConnections(boolean showsInsertedConnections)
public void setHidesExistingConnections(boolean hidesExistingConnections)
public void setHidesDanglingConnections(boolean hidesDanglingConnections)
public void setRemembersCellViews(boolean rememberCellViews)
rememberCellViews
- The rememberCellViews to setpublic void setHiddenSet(Map hiddenSet)
hiddenSet
- The hiddenSet to setpublic Set getLocalAttributes()
public void setLocalAttributes(Set localAttributes)
localAttributes
- The localAttributes to set.public boolean isAskLocalAttribute()
public void setAskLocalAttribute(boolean askLocalAttribute)
askLocalAttribute
- The askLocalAttribute to set.public boolean isAutoSizeOnValueChange()
public void setAutoSizeOnValueChange(boolean flag)
flag
- a boolean value, true if cells should be auto-sized when their
values changepublic boolean isSelectsAllInsertedCells()
public void setSelectsAllInsertedCells(boolean selectsAllInsertedCells)
public boolean isSelectsLocalInsertedCells()
public void setSelectLocalInsertedCells(boolean selectsLocalInsertedCells)
|
JGraph |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |