JGraphLayout
v1.4.0.2


com.jgraph.layout.tree
Class JGraphAbstractTreeLayout

java.lang.Object
  extended bycom.jgraph.layout.tree.JGraphAbstractTreeLayout
All Implemented Interfaces:
JGraphLayout
Direct Known Subclasses:
JGraphCompactTreeLayout, JGraphTreeLayout

public abstract class JGraphAbstractTreeLayout
extends Object
implements JGraphLayout

An implementation of a basic tree layout. The layout is created using the internal TreeNode structure with appropriate interfaces to the actual graph model. The layout can be configured by orientation, the alignment of the nodes per level, the minimum distance between


Nested Class Summary
protected  class JGraphAbstractTreeLayout.TreeNode
          An ADT representing a node in a tree structure.
 
Nested classes inherited from class com.jgraph.layout.JGraphLayout
JGraphLayout.Stoppable
 
Field Summary
protected  JGraphFacade graph
          The facade that describes the graph to be acted upon
protected  double levelDistance
          levelDistance is the distance between the lowest point of any vertex on one level to the highest point of any vertex on the next level down.
protected  double[] lowerLevelValues
          The lowest point for each tree level
protected  double nodeDistance
          nodeDistance is the minimum distance between any two vertices on the same level.
protected  Map nodes
          Stores the mapping between internal tree nodes and graph cells
protected  int orientation
          orientation indicates where, relative to the rest of the tree, the root node is placed.
protected  boolean positionMultipleTrees
          Indicates whether or not to space out multiple trees so that no overlapping occurs between each tree
protected  double rootAlignPosition
          Keeps track of the coordinate that the root cells are aligned to.
protected  boolean routeTreeEdges
          Whether or not to apply a standard routing algorithm to the edges
protected  double treeBoundary
          Keeps track of the coordinate that each tree fills space up to.
protected  double treeDistance
          If positionMultipleTrees is true this value is the minimum distance between each overlapping tree structure after they are separated
protected  double[] upperLevelValues
          The highest point for each tree level
 
Fields inherited from interface com.jgraph.layout.JGraphLayout
VERSION
 
Constructor Summary
JGraphAbstractTreeLayout()
           
 
Method Summary
 double getLevelDistance()
           
 double getNodeDistance()
           
 int getOrientation()
           
 boolean getRouteTreeEdges()
           
 double getTreeDistance()
           
 boolean isPositionMultipleTrees()
           
protected  void routeEdges()
          Routes edges between level so the edge descends halfway down to the next level of cells, moves across to above the cell and then descends to join the cell
 void run(JGraphFacade graph)
          The API method used to exercise the layout upon the facade description and produce a separate description of the vertex position and edge routing changes made.
 void setLevelDistance(double distance)
           
 void setNodeDistance(int distance)
           
 void setOrientation(int orientation)
          SwingConstants.NORTH SwingConstants.EAST SwingConstants.SOUTH SwingConstants.WEST are valid inputs to this method
 void setPositionMultipleTrees(boolean positionMultipleTrees)
           
 void setRouteTreeEdges(boolean routeTreeEdges)
           
 void setTreeDistance(int treeDistance)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nodes

protected transient Map nodes
Stores the mapping between internal tree nodes and graph cells


orientation

protected int orientation
orientation indicates where, relative to the rest of the tree, the root node is placed. Default is SwingConstants.NORTH (1), other valid values are SwingConstants.SOUTH (5), SwingConstants.EAST (3) and SwingConstants.WEST (7). NORTH means the root is at the top and the children below, WEST means the root is on the left and the children to the right, and so on.


levelDistance

protected double levelDistance
levelDistance is the distance between the lowest point of any vertex on one level to the highest point of any vertex on the next level down.


nodeDistance

protected double nodeDistance
nodeDistance is the minimum distance between any two vertices on the same level. Levels closer to the root tend to be spaced a lot further apart than this.


positionMultipleTrees

protected boolean positionMultipleTrees
Indicates whether or not to space out multiple trees so that no overlapping occurs between each tree


treeDistance

protected double treeDistance
If positionMultipleTrees is true this value is the minimum distance between each overlapping tree structure after they are separated


treeBoundary

protected double treeBoundary
Keeps track of the coordinate that each tree fills space up to. This value refers to either axis, depending on the orientation of the tree. This is used when there are multiple trees to ensure the correct minimum separation distance between each one.


rootAlignPosition

protected double rootAlignPosition
Keeps track of the coordinate that the root cells are aligned to. The value refers to either axis, depending on the orientation of the tree.


graph

protected JGraphFacade graph
The facade that describes the graph to be acted upon


routeTreeEdges

protected boolean routeTreeEdges
Whether or not to apply a standard routing algorithm to the edges


lowerLevelValues

protected double[] lowerLevelValues
The lowest point for each tree level


upperLevelValues

protected double[] upperLevelValues
The highest point for each tree level

Constructor Detail

JGraphAbstractTreeLayout

public JGraphAbstractTreeLayout()
Method Detail

run

public void run(JGraphFacade graph)
The API method used to exercise the layout upon the facade description and produce a separate description of the vertex position and edge routing changes made. 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

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

setOrientation

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

Parameters:
orientation -

routeEdges

protected void routeEdges()
Routes edges between level so the edge descends halfway down to the next level of cells, moves across to above the cell and then descends to join the cell


setLevelDistance

public void setLevelDistance(double distance)
Parameters:
distance - new level distance

setNodeDistance

public void setNodeDistance(int distance)
Parameters:
distance - new node distance

getLevelDistance

public double getLevelDistance()
Returns:
Returns the levelDistance.

getNodeDistance

public double getNodeDistance()
Returns:
Returns the nodeDistance.

getOrientation

public int getOrientation()
Returns:
Returns the orientation.

isPositionMultipleTrees

public boolean isPositionMultipleTrees()
Returns:
Returns the positionMultipleTrees.

setPositionMultipleTrees

public void setPositionMultipleTrees(boolean positionMultipleTrees)
Parameters:
positionMultipleTrees - The positionMultipleTrees to set.

getTreeDistance

public double getTreeDistance()
Returns:
Returns the treeDistance.

setTreeDistance

public void setTreeDistance(int treeDistance)
Parameters:
treeDistance - The treeDistance to set.

getRouteTreeEdges

public boolean getRouteTreeEdges()
Returns:
Returns the routeTreeEdges.

setRouteTreeEdges

public void setRouteTreeEdges(boolean routeTreeEdges)
Parameters:
routeTreeEdges - The routeTreeEdges to set.

JGraphLayout
v1.4.0.2


Copyright (C) 2005 JGraph.com. All rights reserved.