org.jdesktop.swingx.treetable
Class AbstractMutableTreeTableNode

java.lang.Object
  extended by org.jdesktop.swingx.treetable.AbstractMutableTreeTableNode
All Implemented Interfaces:
TreeNode, MutableTreeTableNode, TreeTableNode
Direct Known Subclasses:
DefaultMutableTreeTableNode

public abstract class AbstractMutableTreeTableNode
extends Object
implements MutableTreeTableNode

AbstractMutableTreeTableNode provides an implementation of most of the MutableTreeTableNode features.


Field Summary
protected  boolean allowsChildren
           
protected  List<MutableTreeTableNode> children
          List of children, if this node has no children the list will be empty.
protected  MutableTreeTableNode parent
          this node's parent, or null if this node has no parent
protected  Object userObject
          optional user object
 
Constructor Summary
AbstractMutableTreeTableNode()
           
AbstractMutableTreeTableNode(Object userObject)
           
AbstractMutableTreeTableNode(Object userObject, boolean allowsChildren)
           
 
Method Summary
 void add(MutableTreeTableNode child)
           
 Enumeration<? extends MutableTreeTableNode> children()
          Returns an enumeration this node's children.
protected  List<MutableTreeTableNode> createChildrenList()
          Creates the list used to manage the children of this node.
 boolean getAllowsChildren()
          Returns true if the receiver allows children.
 TreeTableNode getChildAt(int childIndex)
          Overridden to specify the return type.
 int getChildCount()
          Returns the number of children TreeNodes the receiver contains.
 int getIndex(TreeNode node)
          Returns the index of node in the receivers children.
 TreeTableNode getParent()
          Overridden to specify the return type.
 Object getUserObject()
          Returns this node's user object.
 void insert(MutableTreeTableNode child, int index)
          Adds the child to this node at the specified index.
 boolean isEditable(int column)
          Determines whether the specified column is editable.
 boolean isLeaf()
          Returns true if the receiver is a leaf.
 void remove(int index)
          Removes the child node at the specified index from this node.
 void remove(MutableTreeTableNode node)
          Removes the specified child node from this node.
 void removeFromParent()
          Removes this node from it's parent.
 void setAllowsChildren(boolean allowsChildren)
          Determines whether or not this node is allowed to have children.
 void setParent(MutableTreeTableNode newParent)
          Sets the parent of this node to newParent.
 void setUserObject(Object object)
          Sets the user object stored in this node.
 void setValueAt(Object aValue, int column)
          Sets the value for the given column.
 String toString()
          Returns the result of sending toString() to this node's user object, or null if this node has no user object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jdesktop.swingx.treetable.TreeTableNode
getColumnCount, getValueAt
 

Field Detail

parent

protected MutableTreeTableNode parent
this node's parent, or null if this node has no parent


children

protected final List<MutableTreeTableNode> children
List of children, if this node has no children the list will be empty. This list will never be null.


userObject

protected transient Object userObject
optional user object


allowsChildren

protected boolean allowsChildren
Constructor Detail

AbstractMutableTreeTableNode

public AbstractMutableTreeTableNode()

AbstractMutableTreeTableNode

public AbstractMutableTreeTableNode(Object userObject)

AbstractMutableTreeTableNode

public AbstractMutableTreeTableNode(Object userObject,
                                    boolean allowsChildren)
Method Detail

createChildrenList

protected List<MutableTreeTableNode> createChildrenList()
Creates the list used to manage the children of this node.

This method is called by the constructor.

Returns:
a list; this list is guaranteed to be non-null

add

public void add(MutableTreeTableNode child)

insert

public void insert(MutableTreeTableNode child,
                   int index)
Adds the child to this node at the specified index. This method calls setParent on child with this as the parameter.

Specified by:
insert in interface MutableTreeTableNode
Parameters:
child - the node to add as a child
index - the index of the child

remove

public void remove(int index)
Removes the child node at the specified index from this node. This method calls setParent on child with a null parameter.

Specified by:
remove in interface MutableTreeTableNode
Parameters:
index - the index of the child

remove

public void remove(MutableTreeTableNode node)
Removes the specified child node from this node. This method calls setParent on child with a null parameter.

Specified by:
remove in interface MutableTreeTableNode
Parameters:
node - the index of the child

removeFromParent

public void removeFromParent()
Removes this node from it's parent. Most implementations will use getParent().remove(this).

Specified by:
removeFromParent in interface MutableTreeTableNode

setParent

public void setParent(MutableTreeTableNode newParent)
Sets the parent of this node to newParent. This methods remove the node from its old parent.

Specified by:
setParent in interface MutableTreeTableNode
Parameters:
newParent - the new parent for this node

getUserObject

public Object getUserObject()
Returns this node's user object.

Specified by:
getUserObject in interface TreeTableNode
Returns:
the Object stored at this node by the user
See Also:
setUserObject(java.lang.Object), toString()

setUserObject

public void setUserObject(Object object)
Sets the user object stored in this node.

Specified by:
setUserObject in interface TreeTableNode
Parameters:
object - the object to store

getChildAt

public TreeTableNode getChildAt(int childIndex)
Overridden to specify the return type. Returns the child TreeNode at index childIndex. Models that utilize this node should verify the column count before querying this node, since nodes may return differing sizes even for the same model.

Specified by:
getChildAt in interface TreeNode
Specified by:
getChildAt in interface TreeTableNode
Parameters:
childIndex - the index of the child
Returns:
the TreeTableNode corresponding to the specified index

getIndex

public int getIndex(TreeNode node)
Returns the index of node in the receivers children. If the receiver does not contain node, -1 will be returned.

Specified by:
getIndex in interface TreeNode

getParent

public TreeTableNode getParent()
Overridden to specify the return type. Returns the parent TreeTableNode of the receiver.

Specified by:
getParent in interface TreeNode
Specified by:
getParent in interface TreeTableNode
Returns:
the parent TreeTableNode or null if this node has no parent (such nodes are usually root nodes).

children

public Enumeration<? extends MutableTreeTableNode> children()
Returns an enumeration this node's children.

Specified by:
children in interface TreeNode
Specified by:
children in interface MutableTreeTableNode
Specified by:
children in interface TreeTableNode
Returns:
an enumeration of TreeTableNodes

getAllowsChildren

public boolean getAllowsChildren()
Returns true if the receiver allows children.

Specified by:
getAllowsChildren in interface TreeNode

setAllowsChildren

public void setAllowsChildren(boolean allowsChildren)
Determines whether or not this node is allowed to have children. If allowsChildren is false, all of this node's children are removed.

Note: By default, a node allows children.

Parameters:
allowsChildren - true if this node is allowed to have children

getChildCount

public int getChildCount()
Returns the number of children TreeNodes the receiver contains.

Specified by:
getChildCount in interface TreeNode

isLeaf

public boolean isLeaf()
Returns true if the receiver is a leaf.

Specified by:
isLeaf in interface TreeNode

isEditable

public boolean isEditable(int column)
Determines whether the specified column is editable.

Specified by:
isEditable in interface TreeTableNode
Parameters:
column - the column to query
Returns:
always returns false

setValueAt

public void setValueAt(Object aValue,
                       int column)
Sets the value for the given column.

Specified by:
setValueAt in interface TreeTableNode
Parameters:
aValue - the value to set
column - the column to set the value on

toString

public String toString()
Returns the result of sending toString() to this node's user object, or null if this node has no user object.

Overrides:
toString in class Object
Returns:
a string representation of the object.
See Also:
getUserObject()