java.lang.Object
com.refinedmods.refinedstorage.common.repackage.org.abego.treelayout.TreeLayout<TreeNode>
Type Parameters:
TreeNode - Type of elements used as nodes in the tree

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

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

See this summary to get an overview how to use TreeLayout.
  • Constructor Details

  • Method Details

    • getTree

      public TreeForTreeLayout<TreeNode> getTree()
      Returns the Tree the layout is created for.
      Returns:
      the Tree the layout is created for
    • getNodeExtentProvider

      public NodeExtentProvider<TreeNode> getNodeExtentProvider()
      Returns the NodeExtentProvider used by this TreeLayout.
      Returns:
      the NodeExtentProvider used by this TreeLayout
    • getConfiguration

      public Configuration<TreeNode> getConfiguration()
      Returns the Configuration used by this TreeLayout.
      Returns:
      the Configuration used by this TreeLayout
    • 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.Double> 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.
    • dumpTree

      public void dumpTree(PrintStream printStream, TreeLayout.DumpConfiguration dumpConfiguration)
      Prints a dump of the tree to the given printStream, using the node's "toString" method.
      Parameters:
      printStream -  
      dumpConfiguration - [default: new DumpConfiguration()]
    • dumpTree

      public void dumpTree(PrintStream printStream)