Class FlowFigure

java.lang.Object
org.eclipse.draw2d.Figure
org.eclipse.draw2d.text.FlowFigure
All Implemented Interfaces:
IFigure
Direct Known Subclasses:
BlockFlow, FlowAdapter, InlineFlow

public abstract class FlowFigure extends Figure
The base implementation for text flow figures. A flow figure is used to render a document in which elements are laid out horizontally within a "line" until that line is filled. Layout continues on the next line.

WARNING: This class is not intended to be subclassed by clients. Future versions may contain additional abstract methods.

Since:
2.1
  • Field Details

    • selectionStart

      protected int selectionStart
      integer indicating whether selection should be displayed.
  • Constructor Details

    • FlowFigure

      public FlowFigure()
      Constructs a new FlowFigure.
  • Method Details

    • add

      public void add(IFigure child, Object constraint, int index)
      If the child is a FlowFigure, its FlowContext is passed to it.
      Specified by:
      add in interface IFigure
      Overrides:
      add in class Figure
      Parameters:
      child - The IFigure to add
      constraint - The newly added IFigure's constraint
      index - The index where the IFigure should be added
      See Also:
    • addLeadingWordRequirements

      public boolean addLeadingWordRequirements(int[] width)
      Calculates the width of text before the next line-break is encountered.

      Default implementation treats each FlowFigure as a line-break. It adds no width and returns true. Sub-classes should override as needed.

      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
      Since:
      3.1
    • contributeBidi

      protected void contributeBidi(BidiProcessor proc)
      FlowFigures can contribute text for their block to the given BidiProcessor, which will process the contributions to determine Bidi levels and shaping requirements.

      This method is invoked as part of validating Bidi.

      Sub-classes that cache the BidiInfo and/or the bidi level in ContentBoxes should clear the cached values when this method is invoked.

      Parameters:
      proc - the BidiProcessor to which contributions should be made
      Since:
      3.1
      See Also:
    • createDefaultFlowLayout

      protected abstract FlowFigureLayout createDefaultFlowLayout()
      Creates the default layout manager
      Returns:
      The default layout
    • postValidate

      public abstract void postValidate()
      Called after validate has occurred. This is used to update the bounds of the FlowFigure to encompass its new flow boxed created during validate.
    • remove

      public void remove(IFigure figure)
      Overridden to revalidateBidi when fragments are removed.
      Specified by:
      remove in interface IFigure
      Overrides:
      remove in class Figure
      Parameters:
      figure - The Figure to remove
      See Also:
    • revalidateBidi

      protected void revalidateBidi(IFigure origin)
      This method should be invoked whenever a change that can potentially affect the Bidi evaluation is made (eg., adding or removing children, changing text, etc.).

      The default implementation delegates the revalidation task to the parent. Only blocks perform the actual revalidation.

      The given IFigure is the one that triggered the revalidation. This can be used to optimize bidi evaluation.

      Parameters:
      origin - the figure that was revalidated
      Since:
      3.1
    • setBidiInfo

      public void setBidiInfo(BidiInfo info)
      Sets the bidi information for this figure. A flow figure contributes bidi text in 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.
      Parameters:
      info - the BidiInfo for this figure
      Since:
      3.1
    • setBounds

      public void setBounds(Rectangle r)
      FlowFigures override setBounds() to prevent translation of children. "bounds" is a derived property for FlowFigures, calculated from the fragments that make up the FlowFigure.
      Specified by:
      setBounds in interface IFigure
      Overrides:
      setBounds in class Figure
      Parameters:
      r - The new bounds
      See Also:
    • setFlowContext

      public void setFlowContext(FlowContext flowContext)
      Sets the flow context.
      Parameters:
      flowContext - the flow context for this flow figure
    • setSelection

      public void setSelection(int start, int end)
      Sets the selection or a range of selection. A start value of -1 is used to indicate no selection. A start value >=0 indicates show selection. A start and end value can be used to represent a range of offsets which should render selection.
      Parameters:
      start - the start offset
      end - the end offset
      Since:
      3.1