y.layout.tree
Class TreeLayouter

java.lang.Object
  extended by y.layout.CanonicMultiStageLayouter
      extended by y.layout.tree.TreeLayouter
All Implemented Interfaces:
Layouter

public class TreeLayouter
extends CanonicMultiStageLayouter

Implementation of a layout algorithm for trees.

Here is an sample output of the layouter using left to right orientation and ORTHOGONAL_STYLE layout style.

 
Your browser does not support SVG content.

Field Summary
static int BORDER_CENTER_PORTS
          Port style constant.
static int BORDER_DISTRIBUTED_PORTS
          Port style constant.
static int NODE_CENTER_PORTS
          Port style constant.
static int ORTHOGONAL_STYLE
          Layout style constant.
static int PLAIN_STYLE
          Layout style constant.
 
Fields inherited from interface y.layout.Layouter
EDGE_ID_DPKEY, NODE_ID_DPKEY, SELECTED_EDGES, SELECTED_NODES
 
Constructor Summary
TreeLayouter()
          Creates a new instance of TreeLayouter.
 
Method Summary
 boolean canLayoutCore(LayoutGraph graph)
          Returns true iff the core layouter can layout the given graph structure.
 void doLayoutCore(LayoutGraph graph)
          Starts the tree layout process
 double getBusAlignment()
          Returns the actual set bus alignment.
 Comparator getComparator()
          Returns the comparator for outgoing edges at a node This comparator defines the relative order of the child nodes in the layout to be calculated.
 int getLayoutStyle()
          Returns the current layout style of this layouter
 double getMinimalLayerDistance()
          Returns the minimal distance between adjacent layers for the layout.
 double getMinimalNodeDistance()
          Returns the minimum horizontal distance between adjacent nodes for this layouter.
 AbstractRotatableNodePlacer.Matrix getModificationMatrix()
          Return the modification matrix that is used to rotate / mirror the tree layout.
 int getPortStyle()
          Gets the port assignment style.
 double getVerticalAlignment()
          Returns the vertical alignment.
 boolean isIntegratedEdgeLabelingEnabled()
          Weather the integrated edge labeling is enabled
 boolean isIntegratedNodeLabelingEnabled()
          Weather the integrated node labeling is enabled.
 void setBusAlignment(double busAlignment)
          Sets the vertical alignment of the bus
 void setComparator(Comparator c)
          Sets the comparator for outgoing edges at a node This comparator defines the relative order of the child nodes in the layout to be calculated.
 void setIntegratedEdgeLabelingEnabled(boolean integratedEdgeLabelingEnabled)
          Sets whether integrated edge labeling is enabled
 void setIntegratedNodeLabelingEnabled(boolean integratedNodeLabelingEnabled)
          Sets whether integrated node labeling is enabled
 void setLayoutStyle(int style)
          Sets the layout style of this layouter.
 void setMinimalLayerDistance(double dist)
          Sets the minimal distance between adjacent layers for the layout.
 void setMinimalNodeDistance(double dist)
          Sets the minimum distance between adjacent nodes within a layer.
 void setModificationMatrix(AbstractRotatableNodePlacer.Matrix modificationMatrix)
          Sets the modification matrix that is used to rotate / mirror the tree layout.
 void setPortStyle(int style)
          Sets the port assignment style.
 void setVerticalAlignment(double verticalAlignment)
          Sets the vertical alignment
0: The nodes are aligned on the top
0.5: The nodes are aligned in the middle
1: The nodes are aligned on the bottom
 
Methods inherited from class y.layout.CanonicMultiStageLayouter
appendStage, calcLayout, calcLayout, canLayout, doLayout, doLayout, enableOnlyCore, getComponentLayouter, getGroupNodeHider, getLabelLayouter, getLayoutOrientation, getOrientationLayouter, getParallelEdgeLayouter, getSelfLoopLayouter, getSubgraphLayouter, isComponentLayouterEnabled, isGroupNodeHidingEnabled, isLabelLayouterEnabled, isOrientationLayouterEnabled, isParallelEdgeLayouterEnabled, isSelfLoopLayouterEnabled, isSubgraphLayouterEnabled, prependStage, removeStage, setComponentLayouter, setComponentLayouterEnabled, setGroupNodeHider, setGroupNodeHidingEnabled, setLabelLayouter, setLabelLayouterEnabled, setLayoutOrientation, setOrientationLayouter, setOrientationLayouterEnabled, setParallelEdgeLayouter, setParallelEdgeLayouterEnabled, setSelfLoopLayouter, setSelfLoopLayouterEnabled, setSubgraphLayouter, setSubgraphLayouterEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NODE_CENTER_PORTS

public static final int NODE_CENTER_PORTS
Port style constant. Uses (0,0) as port offset.

See Also:
setPortStyle(int), Constant Field Values

BORDER_CENTER_PORTS

public static final int BORDER_CENTER_PORTS
Port style constant. Ports will lie at the center of a node border.

See Also:
setPortStyle(int), Constant Field Values

BORDER_DISTRIBUTED_PORTS

public static final int BORDER_DISTRIBUTED_PORTS
Port style constant. Ports will be distributed evenly on the side of a node.

See Also:
setPortStyle(int), Constant Field Values

PLAIN_STYLE

public static final int PLAIN_STYLE
Layout style constant. Draw edges as straight lines

See Also:
Constant Field Values

ORTHOGONAL_STYLE

public static final int ORTHOGONAL_STYLE
Layout style constant. Draw edges orthogonally in a bus-like fashion

See Also:
Constant Field Values
Constructor Detail

TreeLayouter

public TreeLayouter()
Creates a new instance of TreeLayouter.

Method Detail

canLayoutCore

public boolean canLayoutCore(LayoutGraph graph)
Returns true iff the core layouter can layout the given graph structure. This is the case iff the graph is a tree.

Specified by:
canLayoutCore in class CanonicMultiStageLayouter

doLayoutCore

public void doLayoutCore(LayoutGraph graph)
Starts the tree layout process

Specified by:
doLayoutCore in class CanonicMultiStageLayouter

setComparator

public void setComparator(Comparator c)
Sets the comparator for outgoing edges at a node This comparator defines the relative order of the child nodes in the layout to be calculated. Bye default XCoordComparator is set.


getComparator

public Comparator getComparator()
Returns the comparator for outgoing edges at a node This comparator defines the relative order of the child nodes in the layout to be calculated.


setPortStyle

public void setPortStyle(int style)
Sets the port assignment style.

Parameters:
style - one of the constants NODE_CENTER_PORTS, BORDER_CENTER_PORTS, or BORDER_DISTRIBUTED_PORTS.

getPortStyle

public int getPortStyle()
Gets the port assignment style.

See Also:
setPortStyle(int)

setLayoutStyle

public void setLayoutStyle(int style)
Sets the layout style of this layouter.

See Also:
PLAIN_STYLE, ORTHOGONAL_STYLE

getLayoutStyle

public int getLayoutStyle()
Returns the current layout style of this layouter


setMinimalNodeDistance

public void setMinimalNodeDistance(double dist)
Sets the minimum distance between adjacent nodes within a layer. Default value is 20.0.


getMinimalNodeDistance

public double getMinimalNodeDistance()
Returns the minimum horizontal distance between adjacent nodes for this layouter.


setMinimalLayerDistance

public void setMinimalLayerDistance(double dist)
Sets the minimal distance between adjacent layers for the layout. Default value is 40.0.


getMinimalLayerDistance

public double getMinimalLayerDistance()
Returns the minimal distance between adjacent layers for the layout.


isIntegratedNodeLabelingEnabled

public boolean isIntegratedNodeLabelingEnabled()
Weather the integrated node labeling is enabled.

Returns:
Weather the integrated node labeling is enabled.

setIntegratedNodeLabelingEnabled

public void setIntegratedNodeLabelingEnabled(boolean integratedNodeLabelingEnabled)
Sets whether integrated node labeling is enabled

Parameters:
integratedNodeLabelingEnabled -

isIntegratedEdgeLabelingEnabled

public boolean isIntegratedEdgeLabelingEnabled()
Weather the integrated edge labeling is enabled

Returns:
Weather the integrated edge labeling is enabled

setIntegratedEdgeLabelingEnabled

public void setIntegratedEdgeLabelingEnabled(boolean integratedEdgeLabelingEnabled)
Sets whether integrated edge labeling is enabled

Parameters:
integratedEdgeLabelingEnabled -

getBusAlignment

public double getBusAlignment()
Returns the actual set bus alignment. The bus alignment represents the position of the "bus" within the spacing between the layers (getMinimalLayerDistance()). 0: the bus is a the top of the space between the layers 0.5: the bus is exactly in the middle 1: the bus is at the bottom

Returns:
the bus alignment (0.0 - 1.0)

setBusAlignment

public void setBusAlignment(double busAlignment)
Sets the vertical alignment of the bus

Parameters:
busAlignment - (between 0 and 1). Default is 0.3.

getVerticalAlignment

public double getVerticalAlignment()
Returns the vertical alignment. The vertical alignment describes the position on which the nodes of one layer are vertically aligned.

0: The nodes are aligned on the top
0.5: The nodes are aligned in the middle
1: The nodes are aligned on the bottom

Returns:
The vertical alignment (0 - 1)

setVerticalAlignment

public void setVerticalAlignment(double verticalAlignment)
Sets the vertical alignment
0: The nodes are aligned on the top
0.5: The nodes are aligned in the middle
1: The nodes are aligned on the bottom

Parameters:
verticalAlignment -

setModificationMatrix

public void setModificationMatrix(AbstractRotatableNodePlacer.Matrix modificationMatrix)
Sets the modification matrix that is used to rotate / mirror the tree layout.

Parameters:
modificationMatrix -

getModificationMatrix

public AbstractRotatableNodePlacer.Matrix getModificationMatrix()
Return the modification matrix that is used to rotate / mirror the tree layout.


© Copyright 2000-2008,
yWorks GmbH.
All rights reserved.