|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object charvax.swing.tree.DefaultMutableTreeNode
A DefaultMutableTreeNode is a general-purpose node in a tree data structure.
A tree node may have at most one parent and 0 or more children. DefaultMutableTreeNode provides operations for examining and modifying a node's parent and children and also operations for examining the tree that the node is a part of. A node's tree is the set of all nodes that can be reached by starting at the node and following all the possible links to parents and children. A node with no parent is the root of its tree; a node with no children is a leaf. A tree may consist of many subtrees, each node acting as the root for its own subtree.
This class provides enumerations for efficiently traversing a tree or subtree in various orders or for following the path between two nodes. A DefaultMutableTreeNode may also hold a reference to a user object, the use of which is left to the user. Asking a DefaultMutableTreeNode for its string representation with toString() returns the string representation of its user object.
Field Summary | |
protected boolean |
_allowsChildren
True if this node can have children. |
protected java.util.Vector |
_children
Array of children, may be null if this node has no children. |
protected DefaultMutableTreeNode |
_parent
This node's parent, or null if this node has no parent. |
protected java.lang.Object |
_userObject
Optional user object. |
Method Summary | |
void |
add(MutableTreeNode newChild)
Removes newChild from its parent and makes it a child of this node by adding it to the end of this node's child array. |
java.util.Enumeration |
children()
Creates and returns a forward-order enumeration of this node's children. |
boolean |
getAllowsChildren()
Returns true if this node is allowed to have children. |
TreeNode |
getChildAfter(TreeNode aChild)
Returns the child in this node's child array that immediately follows aChild, which must be a child of this node. |
TreeNode |
getChildAt(int index)
Returns the child at the specified index in this node's child array. |
TreeNode |
getChildBefore(TreeNode aChild)
Returns the child in this node's child array that immediately precedes aChild, which must be a child of this node. |
int |
getChildCount()
Returns the number of children of this node. |
int |
getDepth()
Returns the depth of the tree rooted at this node -- the longest distance from this node to a leaf. |
TreeNode |
getFirstChild()
Returns this node's first child. |
DefaultMutableTreeNode |
getFirstLeaf()
Finds and returns the first leaf that is a descendant of this node -- either this node or its first child's first leaf. |
int |
getIndex(TreeNode aChild)
Returns the index of the specified child in this node's child array. |
TreeNode |
getLastChild()
Returns this node's last child. |
DefaultMutableTreeNode |
getLastLeaf()
Finds and returns the last leaf that is a descendant of this node -- either this node or its last child's last leaf. |
int |
getLevel()
Returns the number of levels above this node -- the distance from the root to this node. |
DefaultMutableTreeNode |
getNextLeaf()
Returns the leaf after this node or null if this node is the last leaf in the tree. |
TreeNode |
getParent()
Returns this node's parent or null if this node has no parent. |
TreeNode[] |
getPath()
Returns the path from the root, to get to this node. |
DefaultMutableTreeNode |
getPreviousLeaf()
Returns the leaf before this node or null if this node is the first leaf in the tree. |
TreeNode |
getRoot()
Returns the root of the tree that contains this node. |
java.lang.Object |
getUserObject()
Returns this node's user object. |
java.lang.Object[] |
getUserObjectPath()
Returns the user object path, from the root, to get to this node. |
void |
insert(MutableTreeNode child,
int index)
Adds child to this MutableTreeNode at index. |
boolean |
isLeaf()
Returns true if this node has no children. |
boolean |
isNodeAncestor(TreeNode anotherNode)
Returns true if anotherNode is an ancestor of this node -- if it is this node, this node's parent, or an ancestor of this node's parent. |
boolean |
isNodeChild(TreeNode aNode)
Returns true if aNode is a child of this node. |
boolean |
isNodeDescendant(TreeNode anotherNode)
Returns true if anotherNode is a descendant of this node -- if it is this node, one of this node's children, or a descendant of one of this node's children. |
boolean |
isRoot()
Returns true if this node is the root of the tree. |
java.util.Enumeration |
postorderEnumeration()
Creates and returns an enumeration that traverses the subtree rooted at this node in postorder. |
java.util.Enumeration |
preorderEnumeration()
Creates and returns an enumeration that traverses the subtree rooted at this node in preorder. |
void |
remove(int index)
Removes the child at index from this MutableTreeNode. |
void |
remove(MutableTreeNode node)
Removes node from this MutableTreeNode, giving it a null parent. |
void |
removeAllChildren()
Removes all of this node's children, setting their parents to null. |
void |
removeFromParent()
Removes the subtree rooted at this node from the tree, giving this node a null parent. |
void |
setAllowsChildren(boolean allows)
Determines whether or not this node is allowed to have children. |
void |
setParent(MutableTreeNode newParent)
Sets this node's parent to newParent but does not change the parent's child array. |
void |
setUserObject(java.lang.Object object)
Resets the user object of this MutableTreeNode to object. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.util.Vector _children
protected DefaultMutableTreeNode _parent
protected boolean _allowsChildren
protected java.lang.Object _userObject
Method Detail |
public void insert(MutableTreeNode child, int index)
insert
in interface MutableTreeNode
public void remove(int index)
remove
in interface MutableTreeNode
public void remove(MutableTreeNode node)
remove
in interface MutableTreeNode
public void setUserObject(java.lang.Object object)
setUserObject
in interface MutableTreeNode
public void removeFromParent()
removeFromParent
in interface MutableTreeNode
public void setParent(MutableTreeNode newParent)
setParent
in interface MutableTreeNode
public TreeNode getParent()
getParent
in interface TreeNode
public TreeNode getChildAt(int index)
getChildAt
in interface TreeNode
index
- an index into this node's child array.
public int getChildCount()
getChildCount
in interface TreeNode
public int getIndex(TreeNode aChild)
aChild
- the TreeNode to search for among this node's children.
public java.util.Enumeration children()
children
in interface TreeNode
public void setAllowsChildren(boolean allows)
allows
- true if this node is allowed to have children.public boolean getAllowsChildren()
getAllowsChildren
in interface TreeNode
public java.lang.Object getUserObject()
getUserObject
in interface MutableTreeNode
public void removeAllChildren()
public void add(MutableTreeNode newChild)
newChild
- node to add as a child of this node.
java.lang.IllegalArgumentException
- if newChild is null.
java.lang.IllegalStateException
- if this node does not allow children.public boolean isNodeAncestor(TreeNode anotherNode)
anotherNode
- node to test as an ancestor of this node
public boolean isNodeDescendant(TreeNode anotherNode)
anotherNode
- node to test as a descendant of this node
public int getDepth()
public int getLevel()
public TreeNode[] getPath()
public java.lang.Object[] getUserObjectPath()
public TreeNode getRoot()
public boolean isRoot()
public java.util.Enumeration preorderEnumeration()
Modifying the tree by inserting, removing, or moving a node invalidates any enumerations created before the modification.
public java.util.Enumeration postorderEnumeration()
Modifying the tree by inserting, removing, or moving a node invalidates any enumerations created before the modification.
public boolean isNodeChild(TreeNode aNode)
public TreeNode getFirstChild()
java.util.NoSuchElementException
- if this node has no childrenpublic TreeNode getLastChild()
java.util.NoSuchElementException
- if this node has no childrenpublic TreeNode getChildAfter(TreeNode aChild)
java.lang.IllegalArgumentException
- - if aChild is null or is not a
child of this nodepublic TreeNode getChildBefore(TreeNode aChild)
java.lang.IllegalArgumentException
- - if aChild is null or is not a
child of this nodepublic boolean isLeaf()
isLeaf
in interface TreeNode
public DefaultMutableTreeNode getFirstLeaf()
public DefaultMutableTreeNode getLastLeaf()
public DefaultMutableTreeNode getNextLeaf()
In this implementation of the MutableNode interface, this operation is very inefficient. In order to determine the next node, this method first performs a linear search in the parent's child-list in order to find the current node.
That implementation makes the operation suitable for short traversals from a known position. But to traverse all of the leaves in the tree, you should use depthFirstEnumeration to enumerate the nodes in the tree and use isLeaf on each node to determine which are leaves.
public DefaultMutableTreeNode getPreviousLeaf()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |