Class 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
  • Constructor Details

    • TextFlow

      public TextFlow()
      Constructs a new TextFlow with the empty String.
      See Also:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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