JGraph
v5.13.0.0


com.jgraph.layout.tree
Class JGraphCompactTreeLayout

java.lang.Object
  extended by com.jgraph.layout.tree.JGraphAbstractTreeLayout
      extended by com.jgraph.layout.tree.JGraphCompactTreeLayout
All Implemented Interfaces:
JGraphLayout
Direct Known Subclasses:
JGraphMoenLayout

public class JGraphCompactTreeLayout
extends JGraphAbstractTreeLayout

The compact tree layout is a Moen layout, which concentrates on making the graph as compact as possible whilst still allowing correctly for varations in node shapes and sizes The paper by Moen is called "Drawing Dynamic Trees" and may be purchased from http://csdl.computer.org/comp/mags/so/1990/04/s4021abs.htm


Nested Class Summary
protected  class JGraphCompactTreeLayout.CompactTreeNode
          Abstraction of node in a tree structure
 
Nested classes/interfaces inherited from class com.jgraph.layout.tree.JGraphAbstractTreeLayout
JGraphAbstractTreeLayout.TreeNode
 
Nested classes/interfaces inherited from interface com.jgraph.layout.JGraphLayout
JGraphLayout.Stoppable
 
Field Summary
static int DEFAULT_ORIENTATION
          Deprecated. use SwingConstants compass directions instead
static int LEFT_TO_RIGHT
          Deprecated. use SwingConstants.WEST instead
static int UP_TO_DOWN
          Deprecated. use SwingConstants.NORTH instead
 
Fields inherited from class com.jgraph.layout.tree.JGraphAbstractTreeLayout
graph, levelDistance, lowerLevelValues, nodeDistance, nodes, oldOrigin, orientation, positionMultipleTrees, routeTreeEdges, treeBoundary, treeDistance, upperLevelValues
 
Fields inherited from interface com.jgraph.layout.JGraphLayout
VERSION
 
Constructor Summary
JGraphCompactTreeLayout()
          Default constructor, sets level distance and orientation to defaults
 
Method Summary
protected  void attachParent(JGraphCompactTreeLayout.CompactTreeNode t, double h)
          Attaches the specified tree node in a parent-child relationship taking into account node shape
protected  void branch(JGraphCompactTreeLayout.CompactTreeNode parent, JGraphCompactTreeLayout.CompactTreeNode child, JGraphCompactTreeLayout.CompactTreeNode sibling)
           
protected  com.jgraph.layout.tree.JGraphCompactTreeLayout.PolyLine bridge(com.jgraph.layout.tree.JGraphCompactTreeLayout.PolyLine line1, double x1, double y1, com.jgraph.layout.tree.JGraphCompactTreeLayout.PolyLine line2, double x2, double y2)
           
protected  void dispatchResult(Collection treeLayoutNodes)
          Sets the new positions of the cells in the graph based on the information from the interal tree nodes.
 double getChildParentDistance()
          Deprecated. use getLevelDistance
 double getNodeBorder()
           
 int getOrientation()
           
protected  JGraphCompactTreeLayout.CompactTreeNode getTreeLayoutNode(Object cell)
          Obtains the mapped node from the internal tree representation used from the cell specified
protected  JGraphCompactTreeLayout.CompactTreeNode getTreeLayoutNode(Object cell, boolean createIfNotPresent)
          Obtains the mapped node from the internal tree representation used from the cell specified
protected  double join(JGraphCompactTreeLayout.CompactTreeNode t)
          joins the specified tree node
protected  void layout(JGraphCompactTreeLayout.CompactTreeNode t)
          Laids out the specified tree node in the internal tree representation
protected  void layoutLeaf(JGraphCompactTreeLayout.CompactTreeNode t)
          Laids out a tree node as a leaf, taking into account node shape
protected  void layoutTree(JGraphCompactTreeLayout.CompactTreeNode root)
          Top-level layout method for Moen
protected  void leftRightNodeLayout(JGraphCompactTreeLayout.CompactTreeNode node, double off_x, double off_y)
          Lays out a Moen in the left-right orientation
protected  double merge(com.jgraph.layout.tree.JGraphCompactTreeLayout.Polygon c1, com.jgraph.layout.tree.JGraphCompactTreeLayout.Polygon c2)
           
protected  double offset(double p1, double p2, double a1, double a2, double b1, double b2)
           
 void run(JGraphFacade graph)
          The run method of this layout that executes a Moen using the cell data and configuration information in the specified facade It first builds a representation of the tree using the inner tree class by doing a depth first search of the graph from the root.
 void setChildParentDistance(double distance)
          Deprecated. use setLevelDistance
 void setNodeBorder(double nodeBorder)
           
 void setOrientation(int orientation)
          SwingConstants.NORTH SwingConstants.WEST are valid inputs to this method
 String toString()
          Returns Compact Tree, the name of this algorithm.
protected  void unzip(JGraphCompactTreeLayout.CompactTreeNode node)
           
protected  void upDownNodeLayout(JGraphCompactTreeLayout.CompactTreeNode node, JGraphCompactTreeLayout.CompactTreeNode parent, double off_x, double off_y)
          Lays out a Moen in the up-down orientation
protected  void zip(JGraphCompactTreeLayout.CompactTreeNode node)
           
 
Methods inherited from class com.jgraph.layout.tree.JGraphAbstractTreeLayout
getLevelDistance, getNodeDistance, getRouteTreeEdges, getTreeDistance, isPositionMultipleTrees, setLevelDistance, setNodeDistance, setPositionMultipleTrees, setRouteTreeEdges, setTreeDistance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LEFT_TO_RIGHT

public static final int LEFT_TO_RIGHT
Deprecated. use SwingConstants.WEST instead
Value of left to right orientation

See Also:
Constant Field Values

UP_TO_DOWN

public static final int UP_TO_DOWN
Deprecated. use SwingConstants.NORTH instead
Value of up to down orientation

See Also:
Constant Field Values

DEFAULT_ORIENTATION

public static final int DEFAULT_ORIENTATION
Deprecated. use SwingConstants compass directions instead
Value of default orientation

See Also:
Constant Field Values
Constructor Detail

JGraphCompactTreeLayout

public JGraphCompactTreeLayout()
Default constructor, sets level distance and orientation to defaults

Method Detail

run

public void run(JGraphFacade graph)
The run method of this layout that executes a Moen using the cell data and configuration information in the specified facade It first builds a representation of the tree using the inner tree class by doing a depth first search of the graph from the root. It then lays out the graph using the obtained data and makes the data available for external collection]

Specified by:
run in interface JGraphLayout
Overrides:
run in class JGraphAbstractTreeLayout
Parameters:
graph - the facade describing the graph and its configuration

layoutTree

protected void layoutTree(JGraphCompactTreeLayout.CompactTreeNode root)
Top-level layout method for Moen

Parameters:
root - the root node of the tree

getTreeLayoutNode

protected JGraphCompactTreeLayout.CompactTreeNode getTreeLayoutNode(Object cell)
Obtains the mapped node from the internal tree representation used from the cell specified

Parameters:
cell - the cell whose TreeLayoutNode is to be found
Returns:
the internal node representation of the specified cell

getTreeLayoutNode

protected JGraphCompactTreeLayout.CompactTreeNode getTreeLayoutNode(Object cell,
                                                                    boolean createIfNotPresent)
Obtains the mapped node from the internal tree representation used from the cell specified

Parameters:
cell - the cell whose TreeLayoutNode is to be found
createIfNotPresent - whether or not to create the internal node if it doesn't already exist
Returns:
the internal node representation of the specified cell

dispatchResult

protected void dispatchResult(Collection treeLayoutNodes)
Sets the new positions of the cells in the graph based on the information from the interal tree nodes. Note this doesn't apply the position to the actual graph, only stores the bounds values to be applied later

Parameters:
treeLayoutNodes - the nodes of the internal tree structure that describe the new tree layout

layout

protected void layout(JGraphCompactTreeLayout.CompactTreeNode t)
Laids out the specified tree node in the internal tree representation

Parameters:
t - the node to be laid out

attachParent

protected void attachParent(JGraphCompactTreeLayout.CompactTreeNode t,
                            double h)
Attaches the specified tree node in a parent-child relationship taking into account node shape

Parameters:
t - the internal tree node

layoutLeaf

protected void layoutLeaf(JGraphCompactTreeLayout.CompactTreeNode t)
Laids out a tree node as a leaf, taking into account node shape

Parameters:
t - the node to be laid out

join

protected double join(JGraphCompactTreeLayout.CompactTreeNode t)
joins the specified tree node

Parameters:
t - the tree node to be joined
Returns:
Returns the size of the tree.

merge

protected double merge(com.jgraph.layout.tree.JGraphCompactTreeLayout.Polygon c1,
                       com.jgraph.layout.tree.JGraphCompactTreeLayout.Polygon c2)
Parameters:
c1 -
c2 -
Returns:
Returns the width of the layout

offset

protected double offset(double p1,
                        double p2,
                        double a1,
                        double a2,
                        double b1,
                        double b2)
Parameters:
p1 -
p2 -
a1 -
a2 -
b1 -
b2 -
Returns:
Returns the actual offset

bridge

protected com.jgraph.layout.tree.JGraphCompactTreeLayout.PolyLine bridge(com.jgraph.layout.tree.JGraphCompactTreeLayout.PolyLine line1,
                                                                         double x1,
                                                                         double y1,
                                                                         com.jgraph.layout.tree.JGraphCompactTreeLayout.PolyLine line2,
                                                                         double x2,
                                                                         double y2)
Parameters:
line1 -
x1 -
y1 -
line2 -
x2 -
y2 -
Returns:
Returns a PolyLine

branch

protected void branch(JGraphCompactTreeLayout.CompactTreeNode parent,
                      JGraphCompactTreeLayout.CompactTreeNode child,
                      JGraphCompactTreeLayout.CompactTreeNode sibling)

unzip

protected void unzip(JGraphCompactTreeLayout.CompactTreeNode node)

zip

protected void zip(JGraphCompactTreeLayout.CompactTreeNode node)

leftRightNodeLayout

protected void leftRightNodeLayout(JGraphCompactTreeLayout.CompactTreeNode node,
                                   double off_x,
                                   double off_y)
Lays out a Moen in the left-right orientation

Parameters:
node - the current node being laid out
off_x - x-axis offset
off_y - y-axis offset

upDownNodeLayout

protected void upDownNodeLayout(JGraphCompactTreeLayout.CompactTreeNode node,
                                JGraphCompactTreeLayout.CompactTreeNode parent,
                                double off_x,
                                double off_y)
Lays out a Moen in the up-down orientation

Parameters:
node - the current node being laid out
parent - the parent of the current node
off_x - the total x-axis offset of the parent node
off_y - the total y-axis offset of the parent node

setOrientation

public void setOrientation(int orientation)
SwingConstants.NORTH SwingConstants.WEST are valid inputs to this method

Overrides:
setOrientation in class JGraphAbstractTreeLayout
Parameters:
orientation -

getOrientation

public int getOrientation()
Overrides:
getOrientation in class JGraphAbstractTreeLayout
Returns:
Returns the orientation.

setChildParentDistance

public void setChildParentDistance(double distance)
Deprecated. use setLevelDistance

Sets the minimum distance, upon the axis of orientation of the layout, that a parent will be from any of its children

Parameters:
distance - the minimum distance

getChildParentDistance

public double getChildParentDistance()
Deprecated. use getLevelDistance

Get the minimum distance between a parent from any of its children

Returns:
the level distance

getNodeBorder

public double getNodeBorder()
Returns:
Returns the nodeBorder.

setNodeBorder

public void setNodeBorder(double nodeBorder)
Parameters:
nodeBorder - The nodeBorder to set.

toString

public String toString()
Returns Compact Tree, the name of this algorithm.

Overrides:
toString in class Object

JGraph
v5.13.0.0


Copyright (C) 2001-2009 JGraph Ltd. All rights reserved.