Package org.eclipse.draw2d.text

# Class TextFlow

java.lang.Object
org.eclipse.draw2d.Figure
org.eclipse.draw2d.text.FlowFigure
org.eclipse.draw2d.text.InlineFlow
org.eclipse.draw2d.text.TextFlow

All Implemented Interfaces:
  `IFigure`

public class TextFlow extends InlineFlow
An inline flow figure that renders a string of text across one or more lines. A TextFlow cannot contain children. All `InlineFlow` figure's must be parented by a `FlowFigure`.

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

Since:
  2.1

## Nested Class Summary

## Nested classes/interfaces inherited from class org.eclipse.draw2d.Figure

`Figure.FigureIterator, Figure.IdentitySearch, Figure.ReverseFigureChildrenIterator`

## Nested classes/interfaces inherited from interface org.eclipse.draw2d.IFigure

`IFigure.NoInsets`

## Field Summary

### Fields inherited from class org.eclipse.draw2d.text.FlowFigure

`selectionStart`

### Fields inherited from class org.eclipse.draw2d.Figure

`bgColor, border, bounds, fgColor, flags, font, MAX_FLAG, maxSize, minSize, NO_MANAGER, prefSize, toolTip`

### Fields inherited from interface org.eclipse.draw2d.IFigure

`MAX_DIMENSION, MIN_DIMENSION, NO_INSETS`

## Constructor Summary

Constructors
Constructor
Description
`TextFlow()`
Constructs a new TextFlow with the empty String.
`TextFlow(String s)`
Constructs a new TextFlow with the specified String.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`addLeadingWordRequirements(int[] width)`
Returns the width of the text until the first line-break.
`protected void`
`contributeBidi(BidiProcessor proc)`
A TextFlow contributes its text.
`protected FlowFigureLayout`
`createDefaultFlowLayout()`
Creates the default layout manager
`BidiInfo`
`getBidiInfo()`
Returns the BidiInfo for this figure or `null`.
`protected String`
`getBidiSubstring(TextFragmentBox box, int index)`
`CaretInfo`
`getCaretPlacement(int offset, boolean trailing)`
Returns the CaretInfo in absolute coordinates.
`int`
`getFirstOffsetForLine(int baseline)`
Returns the minimum character offset which is on the given baseline y-coordinate.
`protected FlowUtilities`
`getFlowUtilities()`
Gets the `FlowUtilities` instance to be used in measurement calculations.
`List<? extends TextFragmentBox>`
`getFragments()`
Returns the `FlowBox` fragments contained in this InlineFlow.
`protected List<? extends TextFragmentBox>`
`getFragmentsWithoutBorder()`
Returns the `TextFragmentBox` fragments contained in this TextFlow, not including the border fragments.
`int`
`getLastOffsetForLine(int baseline)`
Returns the maximum offset for a character which is on the given baseline y-coordinate.
`int`
`getNextOffset(Point p, boolean down, int[] trailing)`
Returns the offset nearest the given point either up or down one line.
`int`
`getNextVisibleOffset(int offset)`
Returns the next offset which is visible in at least one fragment or -1 if there is not one.
`int`
`getOffset(Point p, int[] trailing, Dimension proximity)`
Returns the offset of the character directly below or nearest the given location.
`int`
`getPreviousVisibleOffset(int offset)`
Returns the previous offset which is visible in at least one fragment or -1 if there is not one.
`String`
`getText()`
`protected TextUtilities`
`getTextUtilities()`
Gets the `TextUtilities` instance to be used in measurement calculations.
`boolean`
`isTextTruncated()`
Returns `true` if a portion if the text is truncated using ellipses ("...").
`protected void`
`paintFigure(Graphics g)`
Paints this Figure's primary representation, or background.
`protected void`
`paintSelection(Graphics graphics)`
Renders the XOR selection rectangles to the graphics.
`protected void`
`paintText(Graphics g, String draw, int x, int y, int bidiLevel)`
`void`
`setBidiInfo(BidiInfo info)`
Sets the bidi information for this figure.
`void`
`setSelection(int start, int end)`
Sets the extent of selection.
`void`
`setText(String s)`
Sets the text being displayed.
`String`
`toString()`

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

`containsPoint, paintBorder, postValidate, setBorder`

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

`add, remove, revalidateBidi, setBounds, setFlowContext`

### Methods inherited from class org.eclipse.draw2d.Figure

`add, add, add, addAncestorListener, addCoordinateListener, addFigureListener, addFocusListener, addKeyListener, addLayoutListener, addListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, containsPoint, erase, findDescendantAtExcluding, findFigureAt, findFigureAt, findFigureAt, findFigureAtExcluding, findMouseEventTargetAt, findMouseEventTargetInDescendantsAt, fireCoordinateSystemChanged, fireFigureMoved, fireMoved, firePropertyChange, firePropertyChange, firePropertyChange, getBackgroundColor, getBorder, getBounds, getChildren, getChildrenRevIterable, getClientArea, getClientArea, getClippingStrategy, getCursor, getFlag, getFont, getForegroundColor, getInsets, getLayoutManager, getListeners, getListenersIterable, getLocalBackgroundColor, getLocalFont, getLocalForegroundColor, getLocation, getMaximumSize, getMinimumSize, getMinimumSize, getParent, getPreferredSize, getPreferredSize, getSize, getToolTip, getUpdateManager, handleFocusGained, handleFocusLost, handleKeyPressed, handleKeyReleased, handleMouseDoubleClicked, handleMouseDragged, handleMouseEntered, handleMouseExited, handleMouseHover, handleMouseMoved, handleMousePressed, handleMouseReleased, handleMouseWheelScrolled, hasFocus, internalGetEventDispatcher, intersects, invalidate, invalidateTree, isCoordinateSystem, isEnabled, isFocusTraversable, isMirrored, isMouseEventTarget, isOpaque, isRequestFocusEnabled, isShowing, isValid, isValidationRoot, isVisible, layout, optimizeClip, paint, paintChildren, paintClientArea, primTranslate, removeAll, removeAncestorListener, removeCoordinateListener, removeFigureListener, removeFocusListener, removeKeyListener, removeLayoutListener, removeListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, revalidate, setBackgroundColor, setChildrenDirection, setChildrenEnabled, setChildrenOrientation, setClippingStrategy, setConstraint, setCursor, setEnabled, setFlag, setFocusTraversable, setFont, setForegroundColor, setLayoutManager, setLocation, setMaximumSize, setMinimumSize, setOpaque, setParent, setPreferredSize, setPreferredSize, setRequestFocusEnabled, setSize, setSize, setToolTip, setValid, setVisible, translate, translateFromParent, translateToAbsolute, translateToParent, translateToRelative, useLocalCoordinates, validate`

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

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

## Constructor Details

### TextFlow

public TextFlow()
Constructs a new TextFlow with the empty String.

See Also:
  - `Object()`

### TextFlow

public TextFlow(String s)
Constructs a new TextFlow with the specified String.

Parameters:
  `s` - the string

## Method Details

### addLeadingWordRequirements

public boolean addLeadingWordRequirements(int[] width)
Returns the width of the text until the first line-break.

Overrides:
  `addLeadingWordRequirements` in class `InlineFlow`
Parameters:
  `width` - 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
Returns:
  boolean indicating whether or not a line-break was found
See Also:
  - `FlowFigure.addLeadingWordRequirements(int[])`

### contributeBidi

protected void contributeBidi(BidiProcessor proc)
A TextFlow contributes its text.

Overrides:
  `contributeBidi` in class `FlowFigure`
Parameters:
  `proc` - the BidiProcessor to which contributions should be made
See Also:
  - `FlowFigure.contributeBidi(org.eclipse.draw2d.text.BidiProcessor)`

### createDefaultFlowLayout

protected FlowFigureLayout createDefaultFlowLayout()
Description copied from class: `FlowFigure`
Creates the default layout manager

Overrides:
  `createDefaultFlowLayout` in class `InlineFlow`
Returns:
  The default layout
See Also:
  - `InlineFlow.createDefaultFlowLayout()`

### getBidiInfo

public BidiInfo getBidiInfo()
Returns the BidiInfo for this figure or `null`.

Returns:
  `null` or the info
Since:
  3.1

### getBidiSubstring

protected String getBidiSubstring(TextFragmentBox box, int index)

Parameters:
  `box` - which fragment
  `index` - the fragment index
Returns:
  the bidi string for that fragment
Since:
  3.1

### getCaretPlacement

public CaretInfo getCaretPlacement(int offset, boolean trailing)
Returns the CaretInfo in absolute coordinates. The offset must be between 0 and the length of the String being displayed.

Parameters:
  `offset` - the location in this figure's text
  `trailing` - true if the caret is being placed after the offset
Returns:
  the caret bounds relative to this figure
Throws:
  `IllegalArgumentException` - If the offset is not between `0` and the length of the string inclusively
Since:
  3.1

### getFirstOffsetForLine

public int getFirstOffsetForLine(int baseline)
Returns the minimum character offset which is on the given baseline y-coordinate. The y location should be relative to this figure. The return value will be between 0 and N-1. If no fragment is located on the baseline, `-1` is returned.

Parameters:
  `baseline` - the relative baseline coordinate
Returns:
  -1 or the lowest offset for the line
Since:
  3.1

### getFragments

public List<? extends TextFragmentBox> getFragments()
Description copied from class: `InlineFlow`
Returns the `FlowBox` fragments contained in this InlineFlow. The returned list should not be modified.

Overrides:
  `getFragments` in class `InlineFlow`
Returns:
  The fragments

### getFragmentsWithoutBorder

protected List<? extends TextFragmentBox> getFragmentsWithoutBorder()
Returns the `TextFragmentBox` fragments contained in this TextFlow, not including the border fragments. The returned list should not be modified.

Returns:
  list of fragments without the border fragments
Since:
  3.4

### getLastOffsetForLine

public int getLastOffsetForLine(int baseline)
Returns the maximum offset for a character which is on the given baseline y-coordinate. The y location should be relative to this figure. The return value will be between 0 and N-1. If no fragment is located on the baseline, `-1` is returned.

Parameters:
  `baseline` - the relative baseline coordinate
Returns:
  -1 or the highest offset at the given baseline
Since:
  3.1

### getNextOffset

public int getNextOffset(Point p, boolean down, int[] trailing)
Returns the offset nearest the given point either up or down one line. If no offset is found, -1 is returned. `trailing[0]` will be set to 1 if the reference point is closer to the trailing edge of the offset than it is to the leading edge.

Parameters:
  `p` - a reference point
  `down` - `true` if the search is down
  `trailing` - an int array
Returns:
  the next offset or `-1`
Since:
  3.1

### getNextVisibleOffset

public int getNextVisibleOffset(int offset)
Returns the next offset which is visible in at least one fragment or -1 if there is not one. A visible offset means that the character or the one preceding it is displayed, which implies that a caret can be positioned at such an offset. This is useful for advancing a caret past characters which resulted in a line wrap.

Parameters:
  `offset` - the reference offset
Returns:
  the next offset which is visible
Since:
  3.1

### getOffset

public int getOffset(Point p, int[] trailing, Dimension proximity)
Returns the offset of the character directly below or nearest the given location. The point must be relative to this figure. The return value will be between 0 and N-1. If the proximity argument is not `null`, the result may also be `-1` if no offset was found within the proximity.

For a typical character, the trailing argument will be filled in to indicate whether the point is closer to the leading edge (0) or the trailing edge (1). When the point is over a cluster composed of multiple characters, the trailing argument will be filled with the position of the character in the cluster that is closest to the point.

If the proximity argument is not `null`, then the location may be no further than the proximity given. Passing `null` is equivalent to passing `new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)`. The `width` field of the proximity will contain the horizontal distance, `height` will contain vertical. Vertical proximity is more important than horizontal. The returned offset is the lowest index with minimum vertical proximity not exceeding the given limit, with horizontal proximity not exceeding the given limit. If an offset that is within the proximity is found, then the given `Dimension` will be updated to reflect the new proximity.

Parameters:
  `p` - the point relative to this figure
  `trailing` - the trailing buffer
  `proximity` - restricts and records the distance of the returned offset
Returns:
  the nearest offset in this figure's text
Since:
  3.1

### getPreviousVisibleOffset

public int getPreviousVisibleOffset(int offset)
Returns the previous offset which is visible in at least one fragment or -1 if there is not one. See `getNextVisibleOffset(int)` for more.

Parameters:
  `offset` - a reference offset
Returns:
  -1 or the previous offset which is visible
Since:
  3.1

### getText

public String getText()

Returns:
  the String being displayed; will not be `null`

### isTextTruncated

public boolean isTextTruncated()
Returns `true` if a portion if the text is truncated using ellipses ("...").

Returns:
  `true` if the text is truncated with ellipses

### paintFigure

protected void paintFigure(Graphics g)
Description copied from class: `Figure`
Paints this Figure's primary representation, or background. Changes made to the graphics to the graphics current state will not affect the subsequent calls to `Figure.paintClientArea(Graphics)` and `Figure.paintBorder(Graphics)`. Furthermore, it is safe to call `graphics.restoreState()` within this method, and doing so will restore the graphics to its original state upon entry.

Overrides:
  `paintFigure` in class `Figure`
Parameters:
  `g` - The Graphics used to paint
See Also:
  - `Figure.paintFigure(Graphics)`

### paintSelection

protected void paintSelection(Graphics graphics)
Description copied from class: `InlineFlow`
Renders the XOR selection rectangles to the graphics.

Overrides:
  `paintSelection` in class `InlineFlow`
Parameters:
  `graphics` - the graphics to paint on
See Also:
  - `InlineFlow.paintSelection(org.eclipse.draw2d.Graphics)`

### paintText

protected void paintText(Graphics g, String draw, int x, int y, int bidiLevel)

### setBidiInfo

public void setBidiInfo(BidiInfo info)
Description copied from class: `FlowFigure`
Sets the bidi information for this figure. A flow figure contributes bidi text in `FlowFigure.contributeBidi(BidiProcessor)`. If the figure contributes text associated with it, this method is called back to indicate the bidi properties for that text within its block.

Overrides:
  `setBidiInfo` in class `FlowFigure`
Parameters:
  `info` - the BidiInfo for this figure
See Also:
  - `FlowFigure.setBidiInfo(org.eclipse.draw2d.text.BidiInfo)`

### setSelection

public void setSelection(int start, int end)
Sets the extent of selection. The selection range is inclusive. For example, the range [0, 0] indicates that the first character is selected.

Overrides:
  `setSelection` in class `FlowFigure`
Parameters:
  `start` - the start offset
  `end` - the end offset
Since:
  3.1

### setText

public void setText(String s)
Sets the text being displayed. The string may not be `null`.

Parameters:
  `s` - The new text

### toString

public String toString()

Overrides:
  `toString` in class `Object`
See Also:
  - `Object.toString()`

### getFlowUtilities

protected FlowUtilities getFlowUtilities()
Gets the `FlowUtilities` instance to be used in measurement calculations.

Returns:
  a `FlowUtilities` instance
Since:
  3.4

### getTextUtilities

protected TextUtilities getTextUtilities()
Gets the `TextUtilities` instance to be used in measurement calculations.

Returns:
  a `TextUtilities` instance
Since:
  3.4