Class DefaultTreeForTreeLayout<TreeNode>

java.lang.Object
org.abego.treelayout.util.AbstractTreeForTreeLayout<TreeNode>
org.abego.treelayout.util.DefaultTreeForTreeLayout<TreeNode>
Type Parameters:
TreeNode - Type of elements used as nodes in the tree
All Implemented Interfaces:
TreeForTreeLayout<TreeNode>

public class DefaultTreeForTreeLayout<TreeNode> extends AbstractTreeForTreeLayout<TreeNode>
Provides a generic implementation for the TreeForTreeLayout interface, applicable to any type of tree node.

It allows you to create a tree "from scratch", without creating any new class.

To create a tree you must provide the root of the tree (see DefaultTreeForTreeLayout(Object). Then you can incrementally construct the tree by adding children to the root or other nodes of the tree (see addChild(Object, Object) and addChildren(Object, Object...)).

  • Field Details

  • Constructor Details

    • DefaultTreeForTreeLayout

      public DefaultTreeForTreeLayout(TreeNode root)
      Creates a new instance with a given node as the root
      Parameters:
      root - the node to be used as the root.
  • Method Details

    • getEmptyList

      private List<TreeNode> getEmptyList()
    • getParent

      public TreeNode getParent(TreeNode node)
      Description copied from class: AbstractTreeForTreeLayout
      Returns the parent of a node, if it has one.

      Time Complexity: O(1)

      Specified by:
      getParent in class AbstractTreeForTreeLayout<TreeNode>
      Parameters:
      node -  
      Returns:
      [nullable] the parent of the node, or null when the node is a root.
    • getChildrenList

      public List<TreeNode> getChildrenList(TreeNode node)
      Description copied from class: AbstractTreeForTreeLayout
      Return the children of a node as a List.

      Time Complexity: O(1)

      Also the access to an item of the list must have time complexity O(1).

      A client must not modify the returned list.

      Specified by:
      getChildrenList in class AbstractTreeForTreeLayout<TreeNode>
      Parameters:
      node -  
      Returns:
      the children of the given node. When node is a leaf the list is empty.
    • hasNode

      public boolean hasNode(TreeNode node)
      Parameters:
      node -  
      Returns:
      true iff the node is in the tree
    • addChild

      public void addChild(TreeNode parentNode, TreeNode node)
      Parameters:
      parentNode - [hasNode(parentNode)]
      node - [!hasNode(node)]
    • addChildren

      public void addChildren(TreeNode parentNode, TreeNode... nodes)