javax.swing.tree
Class TreePath

java.lang.Object
  extended byjavax.swing.tree.TreePath
All Implemented Interfaces:
Serializable

public class TreePath
extends Object
implements Serializable

Represents a path to a node. A TreePath is an array of Objects that are vended from a TreeModel. The elements of the array are ordered such that the root is always the first element (index 0) of the array. TreePath is Serializable, but if any components of the path are not serializable, it will not be written out.

For further information and examples of using tree paths, see How to Use Trees in The Java Tutorial.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

Author:
Scott Violet, Philip Milne
See Also:
Serialized Form

Field Summary
private  Object lastPathComponent
          Last path component.
private  TreePath parentPath
          Path representing the parent, null if lastPathComponent represents the root.
 
Constructor Summary
protected TreePath()
          Primarily provided for subclasses that represent paths in a different manner.
  TreePath(Object singlePath)
          Constructs a TreePath containing only a single element.
  TreePath(Object[] path)
          Constructs a path from an array of Objects, uniquely identifying the path from the root of the tree to a specific node, as returned by the tree's data model.
protected TreePath(Object[] path, int length)
          Constructs a new TreePath with the identified path components of length length.
protected TreePath(TreePath parent, Object lastElement)
          Constructs a new TreePath, which is the path identified by parent ending in lastElement.
 
Method Summary
 boolean equals(Object o)
          Tests two TreePaths for equality by checking each element of the paths for equality.
 Object getLastPathComponent()
          Returns the last component of this path.
 TreePath getParentPath()
          Returns a path containing all the elements of this object, except the last path component.
 Object[] getPath()
          Returns an ordered array of Objects containing the components of this TreePath.
 Object getPathComponent(int element)
          Returns the path component at the specified index.
 int getPathCount()
          Returns the number of elements in the path.
 int hashCode()
          Returns the hashCode for the object.
 boolean isDescendant(TreePath aTreePath)
          Returns true if aTreePath is a descendant of this TreePath.
 TreePath pathByAddingChild(Object child)
          Returns a new path containing all the elements of this object plus child.
private  void readObject(ObjectInputStream s)
           
 String toString()
          Returns a string that displays and identifies this object's properties.
private  void writeObject(ObjectOutputStream s)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

parentPath

private TreePath parentPath
Path representing the parent, null if lastPathComponent represents the root.


lastPathComponent

private transient Object lastPathComponent
Last path component.

Constructor Detail

TreePath

public TreePath(Object[] path)
Constructs a path from an array of Objects, uniquely identifying the path from the root of the tree to a specific node, as returned by the tree's data model.

The model is free to return an array of any Objects it needs to represent the path. The DefaultTreeModel returns an array of TreeNode objects. The first TreeNode in the path is the root of the tree, the last TreeNode is the node identified by the path.

Parameters:
path - an array of Objects representing the path to a node

TreePath

public TreePath(Object singlePath)
Constructs a TreePath containing only a single element. This is usually used to construct a TreePath for the the root of the TreeModel.

Parameters:
singlePath - an Object representing the path to a node
See Also:
TreePath(Object[])

TreePath

protected TreePath(TreePath parent,
                   Object lastElement)
Constructs a new TreePath, which is the path identified by parent ending in lastElement.


TreePath

protected TreePath(Object[] path,
                   int length)
Constructs a new TreePath with the identified path components of length length.


TreePath

protected TreePath()
Primarily provided for subclasses that represent paths in a different manner. If a subclass uses this constructor, it should also override the getPath, getPathCount, and getPathComponent methods, and possibly the equals method.

Method Detail

getPath

public Object[] getPath()
Returns an ordered array of Objects containing the components of this TreePath. The first element (index 0) is the root.

Returns:
an array of Objects representing the TreePath
See Also:
TreePath(Object[])

getLastPathComponent

public Object getLastPathComponent()
Returns the last component of this path. For a path returned by DefaultTreeModel this will return an instance of TreeNode.

Returns:
the Object at the end of the path
See Also:
TreePath(Object[])

getPathCount

public int getPathCount()
Returns the number of elements in the path.

Returns:
an int giving a count of items the path

getPathComponent

public Object getPathComponent(int element)
Returns the path component at the specified index.

Parameters:
element - an int specifying an element in the path, where 0 is the first element in the path
Returns:
the Object at that index location
Throws:
IllegalArgumentException - if the index is beyond the length of the path
See Also:
TreePath(Object[])

equals

public boolean equals(Object o)
Tests two TreePaths for equality by checking each element of the paths for equality. Two paths are considered equal if they are of the same length, and contain the same elements (.equals).

Overrides:
equals in class Object
Parameters:
o - the Object to compare
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
Returns the hashCode for the object. The hash code of a TreePath is defined to be the hash code of the last component in the path.

Overrides:
hashCode in class Object
Returns:
the hashCode for the object
See Also:
Object.equals(java.lang.Object), Hashtable

isDescendant

public boolean isDescendant(TreePath aTreePath)
Returns true if aTreePath is a descendant of this TreePath. A TreePath P1 is a descendent of a TreePath P2 if P1 contains all of the components that make up P2's path. For example, if this object has the path [a, b], and aTreePath has the path [a, b, c], then aTreePath is a descendant of this object. However, if aTreePath has the path [a], then it is not a descendant of this object.

Returns:
true if aTreePath is a descendant of this path

pathByAddingChild

public TreePath pathByAddingChild(Object child)
Returns a new path containing all the elements of this object plus child. child will be the last element of the newly created TreePath. This will throw a NullPointerException if child is null.


getParentPath

public TreePath getParentPath()
Returns a path containing all the elements of this object, except the last path component.


toString

public String toString()
Returns a string that displays and identifies this object's properties.

Overrides:
toString in class Object
Returns:
a String representation of this object

writeObject

private void writeObject(ObjectOutputStream s)
                  throws IOException
Throws:
IOException

readObject

private void readObject(ObjectInputStream s)
                 throws IOException,
                        ClassNotFoundException
Throws:
IOException
ClassNotFoundException