Package org.eclipse.draw2d.text

# Class BlockFlowLayout

java.lang.Object
org.eclipse.draw2d.text.FlowFigureLayout
org.eclipse.draw2d.text.FlowContainerLayout
org.eclipse.draw2d.text.BlockFlowLayout

All Implemented Interfaces:
  `LayoutManager`, `FlowContext`

Direct Known Subclasses:
  `PageFlowLayout`

public class BlockFlowLayout extends FlowContainerLayout
The layout for `BlockFlow` figures.

WARNING: This class is not intended to be subclassed by clients.

Since:
  2.1

## Constructor Summary

Constructors
Constructor
Description
`BlockFlowLayout(BlockFlow blockFlow)`
Creates a new BlockFlowLayout with the given BlockFlow.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`addCurrentLine()`
Align the line horizontally and then commit it.
`void`
`addLine(CompositeBox box)`
Adds an entire line into the context.
`void`
`blockContentsChanged()`
Marks the blocks contents as changed.
`protected void`
`cleanup()`
Flush anything pending and free all temporary data used during layout.
`protected void`
`createNewLine()`
Used by getCurrentLine().
`protected void`
`endBlock()`
Called by flush(), adds the BlockBox associated with this BlockFlowLayout to the current line and then ends the line.
`void`
`endLine()`
The current line should be committed if it is occupied, and then set to `null`.
`protected void`
`flush()`
Called after `FlowContainerLayout.layoutChildren()` when all children have been laid out.
`protected final BlockFlow`
`getBlockFlow()`
Returns the BlockFlow associated with this BlockFlowLayout
`boolean`
`getContinueOnSameLine()`
This method is used to convey layout state to different FlowFigures.
`void`
`getWidthLookahead(FlowFigure child, int[] result)`
This method looks ahead for line-breaks.
`protected void`
`preLayout()`
Called before layoutChildren() to setup any necessary state.
`void`
`setContinueOnSameLine(boolean value)`
This method is used to convey layout state to different FlowFigures.
`protected void`
`setupBlock()`
sets up the single block that contains all of the lines.

### Methods inherited from class org.eclipse.draw2d.text.FlowContainerLayout

`addToCurrentLine, getRemainingLineWidth, isCurrentLineOccupied, layout, layoutChildren`

### Methods inherited from class org.eclipse.draw2d.text.FlowFigureLayout

`getConstraint, getContext, getFlowFigure, getMinimumSize, getPreferredSize, invalidate, layout, remove, setConstraint, setFlowContext`

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

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

## Constructor Details

### BlockFlowLayout

public BlockFlowLayout(BlockFlow blockFlow)
Creates a new BlockFlowLayout with the given BlockFlow.

Parameters:
  `blockFlow` - the BlockFlow

## Method Details

### addCurrentLine

protected void addCurrentLine()
Align the line horizontally and then commit it.

### addLine

public void addLine(CompositeBox box)
Description copied from interface: `FlowContext`
Adds an entire line into the context. If there is a previous line, it is ended.

Parameters:
  `box` - the line being added
See Also:
  - `FlowContext.addLine(CompositeBox)`

### blockContentsChanged

public void blockContentsChanged()
Marks the blocks contents as changed. This means that children will be invalidated during validation.

Since:
  3.1

### cleanup

protected void cleanup()
Description copied from class: `FlowContainerLayout`
Flush anything pending and free all temporary data used during layout.

Overrides:
  `cleanup` in class `FlowContainerLayout`
See Also:
  - `FlowContainerLayout.cleanup()`

### createNewLine

protected void createNewLine()
Description copied from class: `FlowContainerLayout`
Used by getCurrentLine().

Specified by:
  `createNewLine` in class `FlowContainerLayout`
See Also:
  - `FlowContainerLayout.createNewLine()`

### endBlock

protected void endBlock()
Called by flush(), adds the BlockBox associated with this BlockFlowLayout to the current line and then ends the line.

### endLine

public void endLine()
Description copied from interface: `FlowContext`
The current line should be committed if it is occupied, and then set to `null`. Otherwise, do nothing.

See Also:
  - `FlowContext.endLine()`

### flush

protected void flush()
Description copied from class: `FlowContainerLayout`
Called after `FlowContainerLayout.layoutChildren()` when all children have been laid out. This method exists to flush the last line.

Specified by:
  `flush` in class `FlowContainerLayout`
See Also:
  - `FlowContainerLayout.flush()`

### getBlockFlow

protected final BlockFlow getBlockFlow()
Returns the BlockFlow associated with this BlockFlowLayout

Returns:
  the BlockFlow

### getContinueOnSameLine

public boolean getContinueOnSameLine()
Description copied from interface: `FlowContext`
This method is used to convey layout state to different FlowFigures. This state is cleared when a fragment is added to the current line and once the layout is complete.

Returns:
  `true` if the next fragment should be placed on the current line
See Also:
  - `FlowContext.getContinueOnSameLine()`

### getWidthLookahead

public void getWidthLookahead(FlowFigure child, int[] result)
Description copied from interface: `FlowContext`
This method looks ahead for line-breaks. When laying out, this method can be used to determine the next line-break across multiple figures.

Parameters:
  `child` - the search will occur starting from the figure after the given child
  `result` - the width before the next line-break (if one's found; all the width, otherwise) will be added on to the first int in the given array
See Also:
  - `FlowContext.getWidthLookahead(FlowFigure, int[])`

### preLayout

protected void preLayout()
Description copied from class: `FlowContainerLayout`
Called before layoutChildren() to setup any necessary state.

Specified by:
  `preLayout` in class `FlowContainerLayout`
See Also:
  - `FlowContainerLayout.preLayout()`

### setContinueOnSameLine

public void setContinueOnSameLine(boolean value)
Description copied from interface: `FlowContext`
This method is used to convey layout state to different FlowFigures. This state is cleared when a fragment is added and once the layout is complete.

Parameters:
  `value` - `true` indicates that the first fragment of the next TextFlow should be laid out on the current line, and not a new one
See Also:
  - `FlowContext.setContinueOnSameLine(boolean)`

### setupBlock

protected void setupBlock()
sets up the single block that contains all of the lines.