Class TreeLayout<TreeNode>

  • Type Parameters:
    TreeNode -

    Adapted from https://code.google.com/p/treelayout/ to be available to GWT clients


    public class TreeLayout<TreeNode>
    extends Object
    Implements the actual tree layout algorithm.

    The nodes with their final layout can be retrieved through getNodeBounds().

    • Method Detail

      • getBounds

        public Rectangle2D getBounds()
        Returns the bounds of the tree layout.

        The bounds of a TreeLayout is the smallest rectangle containing the bounds of all nodes in the layout. It always starts at (0,0).

        Returns:
        the bounds of the tree layout
      • getLevelCount

        public int getLevelCount()
        Returns the number of levels of the tree.
        Returns:
        [level > 0]
      • getSizeOfLevel

        public double getSizeOfLevel​(int level)
        Returns the size of a level.

        When the root is located at the top or bottom the size of a level is the maximal height of the nodes of that level. When the root is located at the left or right the size of a level is the maximal width of the nodes of that level.

        Parameters:
        level -
        Returns:
        the size of the level [level >= 0 && level < levelCount]
      • getNodeBounds

        public Map<TreeNode,​Rectangle2D> getNodeBounds()
        Returns the layout of the tree nodes by mapping each node of the tree to its bounds (position and size).

        For each rectangle x and y will be >= 0. At least one rectangle will have an x == 0 and at least one rectangle will have an y == 0.

        Returns:
        maps each node of the tree to its bounds (position and size).
      • checkTree

        public void checkTree()
        Check if the tree is a "valid" tree.

        Typically you will use this method during development when you get an unexpected layout from your trees.

        The following checks are performed:

        • Each node must only occur once in the tree.