org.abego.treelayout.util
Class DefaultTreeForTreeLayout<TreeNode>

java.lang.Object
  extended by org.abego.treelayout.util.AbstractTreeForTreeLayout<TreeNode>
      extended by org.abego.treelayout.util.DefaultTreeForTreeLayout<TreeNode>
Type Parameters:
TreeNode -
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...)).

Author:
Udo Borkowski (ub@abego.org)

Constructor Summary
DefaultTreeForTreeLayout(TreeNode root)
          Creates a new instance with a given node as the root
 
Method Summary
 void addChild(TreeNode parentNode, TreeNode node)
           
 void addChildren(TreeNode parentNode, TreeNode... nodes)
           
 List<TreeNode> getChildrenList(TreeNode node)
          Return the children of a node as a List.
 TreeNode getParent(TreeNode node)
          Returns the parent of a node, if it has one.
 boolean hasNode(TreeNode node)
           
 
Methods inherited from class org.abego.treelayout.util.AbstractTreeForTreeLayout
getChildren, getChildrenReverse, getFirstChild, getLastChild, getRoot, isChildOfParent, isLeaf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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 Detail

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>
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>
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)


Copyright © 2011 abego Software GmbH, Germany. All Rights Reserved.