org.argouml.ui
Class TreeModelComposite

java.lang.Object
  |
  +--org.argouml.ui.TreeModelComposite
All Implemented Interfaces:
java.lang.Cloneable, javax.swing.tree.TreeModel
Direct Known Subclasses:
NavPerspective, ToDoPerspective

public class TreeModelComposite
extends java.lang.Object
implements javax.swing.tree.TreeModel, java.lang.Cloneable


Field Summary
protected  boolean _flat
           
protected  java.util.Vector _flatChildren
           
protected  java.lang.String _name
           
protected  java.lang.Object _root
           
protected  java.util.Vector _subTreeModels
           
protected static org.apache.log4j.Category cat
           
 
Constructor Summary
TreeModelComposite(java.lang.String name)
           
TreeModelComposite(java.lang.String name, java.util.Vector subs)
           
 
Method Summary
 void addFlatChildren(java.lang.Object node)
           
 void addSubTreeModel(javax.swing.tree.TreeModel tm)
           
 void addTreeModelListener(javax.swing.event.TreeModelListener l)
           
 void calcFlatChildren()
           
 void fireTreeStructureChanged()
           
 void fireTreeStructureChanged(javax.swing.tree.TreePath path)
           
 java.lang.Object getChild(java.lang.Object parent, int index)
          Finds the each of the children of a parent in the tree.
 int getChildCount(java.lang.Object parent)
           
 boolean getFlat()
           
 int getIndexOfChild(java.lang.Object parent, java.lang.Object child)
           
 java.lang.String getName()
           
 java.lang.Object getRoot()
           
 java.util.Vector getSubTreeModels()
           
 boolean isAlwaysLeaf(java.lang.Object node)
          Return true if this node will always be a leaf, it is not an "empty folder"
 boolean isLeaf(java.lang.Object node)
          Returns true if node is a leaf.
 void removeSubTreeModel(javax.swing.tree.TreeModel tm)
           
 void removeTreeModelListener(javax.swing.event.TreeModelListener l)
           
 void setFlat(boolean b)
           
 void setName(java.lang.String s)
           
 void setRoot(java.lang.Object r)
           
 java.lang.String toString()
           
 void valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)
          Messaged when the user has altered the value for the item identified by path to newValue.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cat

protected static org.apache.log4j.Category cat

_subTreeModels

protected java.util.Vector _subTreeModels

_root

protected java.lang.Object _root

_flat

protected boolean _flat

_flatChildren

protected java.util.Vector _flatChildren

_name

protected java.lang.String _name
Constructor Detail

TreeModelComposite

public TreeModelComposite(java.lang.String name)

TreeModelComposite

public TreeModelComposite(java.lang.String name,
                          java.util.Vector subs)
Method Detail

setFlat

public void setFlat(boolean b)

getFlat

public boolean getFlat()

addSubTreeModel

public void addSubTreeModel(javax.swing.tree.TreeModel tm)

removeSubTreeModel

public void removeSubTreeModel(javax.swing.tree.TreeModel tm)

getSubTreeModels

public java.util.Vector getSubTreeModels()

calcFlatChildren

public void calcFlatChildren()

addFlatChildren

public void addFlatChildren(java.lang.Object node)

getName

public java.lang.String getName()

setName

public void setName(java.lang.String s)

getRoot

public java.lang.Object getRoot()
Specified by:
getRoot in interface javax.swing.tree.TreeModel

setRoot

public void setRoot(java.lang.Object r)

getChild

public java.lang.Object getChild(java.lang.Object parent,
                                 int index)
Finds the each of the children of a parent in the tree.
Specified by:
getChild in interface javax.swing.tree.TreeModel
Parameters:
parent - in the tree
index - of child to find
Returns:
the child found at index. Null if index is out of bounds.

getChildCount

public int getChildCount(java.lang.Object parent)
Specified by:
getChildCount in interface javax.swing.tree.TreeModel

getIndexOfChild

public int getIndexOfChild(java.lang.Object parent,
                           java.lang.Object child)
Specified by:
getIndexOfChild in interface javax.swing.tree.TreeModel

isLeaf

public boolean isLeaf(java.lang.Object node)
Returns true if node is a leaf. It is possible for this method to return false even if node has no children. A directory in a filesystem, for example, may contain no files; the node representing the directory is not a leaf, but it also has no children.

If none of the subTreeModels is not a leaf, then we are not a leaf.

Specified by:
isLeaf in interface javax.swing.tree.TreeModel
Parameters:
node - a node in the tree, obtained from this data source
Returns:
true if node is a leaf

isAlwaysLeaf

public boolean isAlwaysLeaf(java.lang.Object node)
Return true if this node will always be a leaf, it is not an "empty folder"

valueForPathChanged

public void valueForPathChanged(javax.swing.tree.TreePath path,
                                java.lang.Object newValue)
Messaged when the user has altered the value for the item identified by path to newValue. If newValue signifies a truly new value the model should post a treeNodesChanged event.
Specified by:
valueForPathChanged in interface javax.swing.tree.TreeModel
Parameters:
path - path to the node that the user has altered.
newValue - the new value from the TreeCellEditor.

fireTreeStructureChanged

public void fireTreeStructureChanged()

fireTreeStructureChanged

public void fireTreeStructureChanged(javax.swing.tree.TreePath path)

addTreeModelListener

public void addTreeModelListener(javax.swing.event.TreeModelListener l)
Specified by:
addTreeModelListener in interface javax.swing.tree.TreeModel

removeTreeModelListener

public void removeTreeModelListener(javax.swing.event.TreeModelListener l)
Specified by:
removeTreeModelListener in interface javax.swing.tree.TreeModel

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object


ArgoUML (c) 1996-2002
ArgoUML Project Home
ArgoUML Cookbook