Class DefaultTreeTable.Node

    • Constructor Detail

      • Node

        public Node​(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.
      • Node

        public Node​(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.
      • Node

        public 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.
      • Node

        public Node​(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" CharSequence name
        name - the initial value for the "Name" column (can be null).
    • Method Detail

      • getParent

        public final TreeTable.Node getParent()
        Returns the parent of this node. On Node creation, 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 Node instance.

        Note that the parent is intentionally ignored by the clone(), equals(Object) and hash­Code() methods.

        Specified by:
        get­Parent in interface Tree­Table​.Node
        the parent, or null if none.
      • isLeaf

        public boolean isLeaf()
        Returns true if this node can not have any children. The default implementation unconditionally returns false even 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.

        Specified by:
        is­Leaf in interface Tree­Table​.Node
        true if this node can not have any children.
      • getChildren

        public final List<TreeTable.Node> getChildren()
        Returns the children of this node. For non-leaf nodes, the list is modifiable and will automatically updates the parent reference of any Node instance added to or removed from the list.

        For leaf nodes, this method returns an unmodifiable empty list.

        Specified by:
        get­Children in interface Tree­Table​.Node
        the children, or an empty collection if none.
      • newChild

        public 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.
        Subclasses may override this method with different behavior.
        Specified by:
        new­Child in interface Tree­Table​.Node
        the new child.
        Unsupported­Operation­Exception - if this node is a leaf.
      • getValue

        public <V> V getValue​(TableColumn<V> column)
        Returns the value in the given column, or null if none.
        Specified by:
        get­Value in interface Tree­Table​.Node
        Type Parameters:
        V - the base type of values in the given column.
        column - identifier of the column from which to get the value.
        the value in the given column, or null if none.
        See Also:
      • isEditable

        public 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 Node instance, then this method returns false.
        Specified by:
        is­Editable in interface Tree­Table​.Node
        column - the column to query.
        true if the given column is a legal column for this Node implementation and the corresponding value is editable, or false otherwise.
      • getUserObject

        public Object getUserObject()
        Returns the user object associated to this node. The default implementation returns null.
        Specified by:
        get­User­Object in interface Tree­Table​.Node
        any object stored at this node by the user, or null if none.
      • equals

        public 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 than only whole trees.
        Specified by:
        equals in interface Tree­Table​.Node
        equals in class Object
        other - the object to compare with this node.
        true if the two objects are equal, ignoring the parent node.
      • toString

        public String toString()
        Returns a string representation of this node for identification in error message or in debugger. The default implementation returns the to­String() value of the first non-empty Char­Sequence found 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.
        to­String in class Object
        a string representation of this node.