- Enclosing class:
TreeTable.Nodeimplementation which can store values for a pre-defined list of columns. The list of columns is specified by a
TreeTable, or inherited from a parent node.
Note on the parent nodeThe value returned by the
getParent()method is updated automatically when this node is added to or removed from the list of children of another
Nodeinstance - there is no
setParent(Node)method. Since the parent is inferred rather than user-specified, it is ignored by the
Constructor SummaryConstructorDescriptionCreates a node with a single column for object names (convenience constructor).Creates a new node with the given parent.Creates a new node with the given parent.Creates a new node for the given table.
Method SummaryModifier and TypeMethodDescription
clone()Returns a clone of this node without parent.
booleanReturns the children of this node.
final TreeTable.NodeReturns the parent of this node.Returns the user object associated to this node.
<V> VReturns the value in the given column, or
booleanDetermines whether the value in the specified column is editable.
trueif this node can not have any children.Adds a new child in the children list.
<V> voidSets the value for the given column.Returns a string representation of this node for identification in error message or in debugger.
(TreeTable table)Creates a new node for the given table. The new node will be able to store a value for each columns defined in the given table.
This method does not set the new node as the root of the given table. If desired, it is the caller responsibility to set the table root node.
table- the table for which this node is created.
(DefaultTreeTable.Node parent)Creates a new node with the given parent. The new node is added at the end of the parent list of children. The new node will be able to store values for the same columns than the parent node.
parent- the parent of the new node.
(DefaultTreeTable.Node parent, int index)Creates a new node with the given parent. The new node is added to the parent list of children at the given index. The new node will be able to store values for the same columns than the parent node.
parent- the parent of the new node.
index- the index where to add the new node in the parent list of children.
(CharSequence name)Creates a node with a single column for object names (convenience constructor). The node will have the following columns: Node columns Header Type Initial value "Name"
name- the initial value for the "Name" column (can be
getParentpublic final TreeTable.Node getParent()Returns the parent of this node. On
Nodecreation, this value may be initially
null. It will be automatically set to a non-null value when this node will be added as a child of another
isLeafpublic boolean isLeaf()Returns
trueif this node can not have any children. The default implementation unconditionally returns
falseeven if the list of children is empty, because the list is allowed to grow at any time.
Subclasses can override this method if they can determine which nodes are leaves. In the current implementation, the return value shall be stable (i.e. a node can not alternate between leaf and non-leaf state). However this restriction may be relaxed in a future SIS version.
getChildrenReturns the children of this node. For non-leaf nodes, the list is modifiable and will automatically updates the parent reference of any
Nodeinstance added to or removed from the list.
For leaf nodes, this method returns an unmodifiable empty list.
newChildpublic DefaultTreeTable.Node newChild()Adds a new child in the children list. The default implementation first checks that this node is not a leaf, then delegates to the
Node(Node)constructor. That constructor call has the following implications:
- The new node inherits the columns of this node, on the assumption that they are the same set of columns than other children nodes.
- The new node is appended at the end of the children list.
getValuepublic <V> V getValue
(TableColumn<V> column)Returns the value in the given column, or
setValueSets the value for the given column. The
isEditable(TableColumn)method can be invoked before this setter method for determining if the given column is modifiable.
- Specified by:
- Type Parameters:
V- the base type of values in the given column.
column- identifier of the column into which to set the value.
value- the value to set.
IllegalArgumentException- if the given column is not a legal column for this node.
- See Also:
isEditablepublic boolean isEditable
(TableColumn<?> column)Determines whether the value in the specified column is editable. If the given column is not a legal column for this
Nodeinstance, then this method returns
getUserObjectpublic Object getUserObject()Returns the user object associated to this node. The default implementation returns
cloneReturns a clone of this node without parent. This method recursively clones all children, but does not clone the column values. The parent of the cloned node is set to
equalspublic boolean equals
(Object other)Compares the given object with this node for values and children equality, ignoring the parent. This method can be used for determining if two branches of a same tree or of two different trees are identical.Implementation note: This method ignores the parent because:
- When comparing the children recursively, comparing the parents would cause infinite recursivity.
- For consistency with the
clone()method, which can not clone the parent.
- For making possible to compare branches instead of only whole trees.
hashCodepublic int hashCode()Returns a hash-code value computed from the values and children, ignoring the parent. This method is defined for consistency with
toStringpublic String toString()Returns a string representation of this node for identification in error message or in debugger. The default implementation returns the
toString()value of the first non-empty
CharSequencefound in the values, if any. If no such value is found, then this method returns "Node-i" where Node is the simple classname and i is the index of this node in the parent node.