Class LineBreakContext

java.lang.Object
com.openhtmltopdf.layout.LineBreakContext

public class LineBreakContext extends Object
A bean which serves as a way for the layout code to pass information to the line breaking code and for the line breaking code to pass instructions back to the layout code.
  • Field Details

    • _master

      private String _master
    • _start

      private int _start
    • _end

      private int _end
    • _savedEnd

      private int _savedEnd
    • _unbreakable

      private boolean _unbreakable
    • _needsNewLine

      private boolean _needsNewLine
    • _width

      private int _width
    • _endsOnNL

      private boolean _endsOnNL
    • _endsOnSoftHyphen

      private boolean _endsOnSoftHyphen
    • _nextWidth

      private int _nextWidth
    • _endsOnWordBreak

      private boolean _endsOnWordBreak
    • _finishedInCharBreakingMode

      private boolean _finishedInCharBreakingMode
    • _isFirstChar

      private boolean _isFirstChar
    • _lastNewLineStartPosition

      private int _lastNewLineStartPosition
    • _newlineAttemptsForLastStartPosition

      private int _newlineAttemptsForLastStartPosition
  • Constructor Details

    • LineBreakContext

      public LineBreakContext()
  • Method Details

    • reset

      public void reset()
    • newLine

      public void newLine()
      Record a newline attempt. This should be called at each newline and then possibleEndlessLoop method can be called to check if excessive attempts have been made to output the same character on newlines.
    • possibleEndlessLoop

      public boolean possibleEndlessLoop()
    • getLast

      public int getLast()
    • getEnd

      public int getEnd()
    • setEnd

      public void setEnd(int end)
    • getMaster

      public String getMaster()
    • setMaster

      public void setMaster(String master)
    • getStart

      public int getStart()
    • setStart

      public void setStart(int start)
    • getStartSubstring

      public String getStartSubstring()
    • getCalculatedSubstring

      public String getCalculatedSubstring()
    • isUnbreakable

      public boolean isUnbreakable()
    • setUnbreakable

      public void setUnbreakable(boolean unbreakable)
    • isNeedsNewLine

      public boolean isNeedsNewLine()
    • setNeedsNewLine

      public void setNeedsNewLine(boolean needsLineBreak)
    • getWidth

      public int getWidth()
    • setWidth

      public void setWidth(int width)
    • isFinished

      public boolean isFinished()
    • resetEnd

      public void resetEnd()
    • saveEnd

      public void saveEnd()
    • isEndsOnNL

      public boolean isEndsOnNL()
    • setEndsOnNL

      public void setEndsOnNL(boolean b)
    • isEndsOnSoftHyphen

      public boolean isEndsOnSoftHyphen()
    • setEndsOnSoftHyphen

      public void setEndsOnSoftHyphen(boolean b)
    • getNextWidth

      public int getNextWidth()
      If needs newline, returns the graphics width of the next unbreakable sequence. We use this to test if we should actually put in a newline before a long word when break-word is on. If getNextWidth would fit on an empty line we put in the new line else we split in the long word immediately.
    • setNextWidth

      public void setNextWidth(int nextWidth)
    • isEndsOnWordBreak

      public boolean isEndsOnWordBreak()
    • setEndsOnWordBreak

      public void setEndsOnWordBreak(boolean _endsOnWordBreak)
    • setFinishedInCharBreakingMode

      public void setFinishedInCharBreakingMode(boolean mode)
    • isFinishedInCharBreakingMode

      public boolean isFinishedInCharBreakingMode()
      If this is true, it means we finished in char breaking mode because a word was too large. The next line should begin in char breaking mode.
    • isFirstCharInLine

      public boolean isFirstCharInLine()
      Returns:
      true if this is the first non-trimmed character in a line.
    • setFirstCharInLine

      public void setFirstCharInLine(boolean isFirstChar)
      Parameters:
      isFirstChar - set to true if this is the first non-trimmable character in a line.
    • checkConsistency

      public void checkConsistency(Breaker.BreakTextResult breakResult)
      Given the result of text breaking, makes some sanity preserving asserts to check the state of this object.