org.jgraph.graph
Class ParentMap

java.lang.Object
  extended by org.jgraph.graph.ParentMap
All Implemented Interfaces:
Serializable

public class ParentMap
extends Object
implements Serializable

An object that describes relations between childs and parents.

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

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.
 
Method Summary
 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 strict)
          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()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

entries

protected ArrayList entries
Contents of the parent map.


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.

Constructor Detail

ParentMap

public ParentMap()
Constructs a ParentMap object.

Method Detail

create

public static ParentMap create(GraphModel m,
                               Object[] c,
                               boolean remove,
                               boolean strict)
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: Strict can be used to indicate if only cells fromt the passed-in cell array are allowed parents. This is only used if remove is not true.


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.


size

public int size()
Returns the number of entries.


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.


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.


toString

public String toString()
Overrides:
toString in class Object