JGraph
v5.13.0.0


com.jgraph.layout.tree
Class JGraphAbstractTreeLayout

java.lang.Object
  extended by com.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/interfaces inherited from interface 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  Point2D oldOrigin
          Keeps track of the old origin so that the new layout can be aligned to it
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  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()
           
 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.


oldOrigin

protected Point2D oldOrigin
Keeps track of the old origin so that the new layout can be aligned to it


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 -

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.

JGraph
v5.13.0.0


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