Package org.eclipse.zest.layouts.algorithms

# Class TreeLayoutAlgorithm

java.lang.Object
org.eclipse.zest.layouts.algorithms.AbstractLayoutAlgorithm
org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm

All Implemented Interfaces:
  `LayoutAlgorithm`

public class TreeLayoutAlgorithm extends AbstractLayoutAlgorithm
The TreeLayoutAlgorithm class implements a simple algorithm to arrange graph nodes in a layered tree-like layout.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`TreeLayoutAlgorithm.Zest1`
Deprecated, for removal: This API element is subject to removal in a future version.
Use `TreeLayoutAlgorithm` instead.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`BOTTOM_UP`
Tree direction constant for which root is placed at the bottom and branches spread upwards
`static final int`
`LEFT_RIGHT`
Tree direction constant for which root is placed at the left and branches spread to the right
`static final int`
`RIGHT_LEFT`
Tree direction constant for which root is placed at the right and branches spread to the left
`static final int`
`TOP_DOWN`
Tree direction constant for which root is placed at the top and branches spread downwards

### Fields inherited from class org.eclipse.zest.layouts.algorithms.AbstractLayoutAlgorithm

`context`

## Constructor Summary

Constructors
Constructor
Description
`TreeLayoutAlgorithm()`
Create a default Tree Layout.
`TreeLayoutAlgorithm(int direction)`
Create a Tree Layout with a specified direction.
`TreeLayoutAlgorithm(int direction, Dimension nodeSpace)`
Create a Tree Layout with fixed size spacing around nodes.

## Method Summary

Modifier and Type
Method
Description
`void`
`applyLayout(boolean clean)`
Makes this algorithm perform layout computation and apply it to its context.
`int`
`getDirection()`
`boolean`
`isResizing()`
`void`
`setDirection(int direction)`
`void`
`setLayoutContext(LayoutContext context)`
Sets the layout context for this algorithm.
`void`
`setNodeSpace(Dimension nodeSpace)`
`void`
`setResizing(boolean resizing)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### TOP_DOWN

public static final int TOP_DOWN
Tree direction constant for which root is placed at the top and branches spread downwards

Since:
  2.0
See Also:
  - Constant Field Values

### BOTTOM_UP

public static final int BOTTOM_UP
Tree direction constant for which root is placed at the bottom and branches spread upwards

Since:
  2.0
See Also:
  - Constant Field Values

### LEFT_RIGHT

public static final int LEFT_RIGHT
Tree direction constant for which root is placed at the left and branches spread to the right

Since:
  2.0
See Also:
  - Constant Field Values

### RIGHT_LEFT

public static final int RIGHT_LEFT
Tree direction constant for which root is placed at the right and branches spread to the left

Since:
  2.0
See Also:
  - Constant Field Values

## Constructor Details

### TreeLayoutAlgorithm

public TreeLayoutAlgorithm()
Create a default Tree Layout.

### TreeLayoutAlgorithm

public TreeLayoutAlgorithm(int direction)
Create a Tree Layout with a specified direction.

Parameters:
  `direction` - The direction, one of `BOTTOM_UP`, `LEFT_RIGHT`, `RIGHT_LEFT`, `TOP_DOWN`

### TreeLayoutAlgorithm

public TreeLayoutAlgorithm(int direction, Dimension nodeSpace)
Create a Tree Layout with fixed size spacing around nodes. If nodeSpace is not null, the layout will size the container to the ideal space to just contain all nodes of fixed size without any overlap. Otherwise, the algorithm will size for the container's available space.

Parameters:
  `direction` - The direction, one of `BOTTOM_UP`, `LEFT_RIGHT`, `RIGHT_LEFT`, `TOP_DOWN`
  `nodeSpace` - the size to make each node. May be null.
Since:
  2.0

## Method Details

### setNodeSpace

public void setNodeSpace(Dimension nodeSpace)

Parameters:
  `nodeSpace` - the nodeSpaceSize to set
Since:
  2.0

### getDirection

public int getDirection()

Since:
  2.0

### setDirection

public void setDirection(int direction)

Since:
  2.0

### isResizing

public boolean isResizing()

Returns:
  true if this algorithm is set to resize elements
Since:
  2.0

### setResizing

public void setResizing(boolean resizing)

Parameters:
  `resizing` - true if this algorithm should resize elements (default is false)
Since:
  2.0

### setLayoutContext

public void setLayoutContext(LayoutContext context)
Description copied from interface: `LayoutAlgorithm`
Sets the layout context for this algorithm. The receiver will unregister from its previous layout context and register to the new one (registration means for example adding listeners). After a call to this method, the receiving algorithm can compute and cache internal data related to given context and perform an initial layout.

Specified by:
  `setLayoutContext` in interface `LayoutAlgorithm`
Overrides:
  `setLayoutContext` in class `AbstractLayoutAlgorithm`
Parameters:
  `context` - a new layout context or null if this algorithm should not perform any layout

### applyLayout

public void applyLayout(boolean clean)
Description copied from interface: `LayoutAlgorithm`
Makes this algorithm perform layout computation and apply it to its context.

Parameters:
  `clean` - if true the receiver should assume that the layout context has changed significantly and recompute the whole layout even if it keeps track of changes with listeners. False can be used after dynamic layout in a context is turned back on so that layout algorithm working in background can apply accumulated changes. Static layout algorithm can ignore this call entirely if clean is false.