org.jgraph.graph

Class ParentMap

Implemented Interfaces:
Serializable

public class ParentMap
extends java.lang.Object
implements Serializable

An object that describes relations between childs and parents.

Nested Class Summary

class
ParentMap.Entry
Object that represents the relation between a child an a parent.

Field Summary

protected Set
changedNodes
Set of changed changedNodes for the parent map.
protected Map
childCount
Maps parents to integers with the future number of childs.
protected ArrayList
entries
Contents of the parent map.

Constructor Summary

ParentMap()
Constructs a ParentMap object.
ParentMap(Object[] children, Object parent)
Constructs a ParentMap object.

Method Summary

void
addEntries(Object[] children, Object parent)
Adds all child parent pairs using addEntry.
void
addEntry(Object child, Object parent)
Add a new entry for this child, parent pair to the parent map.
ParentMap
clone(Map map)
Creates a new parent map based on this parent map, where the child and parents are mapped using map.
static ParentMap
create(GraphModel m, Object[] c, boolean remove, boolean onlyUsePassedInCells)
Returns a parent map that represents the insertion or removal of cells in model based on remove.
Iterator
entries()
Returns an Iterator for the entries in the map.
Set
getChangedNodes()
Returns a Set for the nodes, childs and parents, in this parent map.
int
size()
Returns the number of entries.
String
toString()

Field Details

changedNodes

protected Set changedNodes
Set of changed changedNodes for the parent map. Includes childs and parents.

childCount

protected Map childCount
Maps parents to integers with the future number of childs.

entries

protected ArrayList entries
Contents of the parent map.

Constructor Details

ParentMap

public ParentMap()
Constructs a ParentMap object.

ParentMap

public ParentMap(Object[] children,
                 Object parent)
Constructs a ParentMap object.

Method Details

addEntries

public void addEntries(Object[] children,
                       Object parent)
Adds all child parent pairs using addEntry.

addEntry

public void addEntry(Object child,
                     Object parent)
Add a new entry for this child, parent pair to the parent map. The child and parent are added to the set of changed nodes. Note: The previous parent is changed on execution of this parent map and must be added by the GraphModel and reflected by the GraphChange.getChanged method. TODO: In general, the GraphModel should be in charge of computing the set of changed cells.

clone

public ParentMap clone(Map map)
Creates a new parent map based on this parent map, where the child and parents are mapped using map. If one the cells is not in map, then the original cell is used instead.


create

public static ParentMap create(GraphModel m,
                               Object[] c,
                               boolean remove,
                               boolean onlyUsePassedInCells)
Returns a parent map that represents the insertion or removal of cells in model based on remove. Unselected childs of selected nodes are moved to the first unselected parent of that node.

Note: Consequently, cells "move up" one level when their parent is removed. Note: onlyUsePassedInCells can be used to indicate if only cells from the passed-in cell array are allowed parents. This is only used if remove is not true.


entries

public Iterator entries()
Returns an Iterator for the entries in the map.

getChangedNodes

public Set getChangedNodes()
Returns a Set for the nodes, childs and parents, in this parent map.

size

public int size()
Returns the number of entries.

toString

public String toString()

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