Package org.jfree.layouting.renderer.process

## Class ParagraphLineBreakStep

- java.lang.Object
- - org.jfree.layouting.renderer.process.IterateStructuralProcessStep
  - - org.jfree.layouting.renderer.process.ParagraphLineBreakStep

-     public class ParagraphLineBreakStep
      extends IterateStructuralProcessStep

  This static computation step performs manual linebreaks on all paragraphs. This transforms the pool-collection into the lines-collection.

  For now, we follow a very simple path: A paragraph cannot be validated, if it is not yet closed. The linebreaking, be it the static one here or the dynamic one later, must be redone when the paragraph changes.

  Splitting for linebreaks happens only between inline-boxes. BlockBoxes that are contained in inline-boxes (like 'inline-block' elements or 'inline-tables') are considered unbreakable according to the CSS specs. Linebreaking can be suspended in these cases.

  As paragraphs itself are block elements, the linebreaks can be done iterative, using a simple stack to store the context of possibly nested paragraphs. The paragraph's pool contains the elements that should be processed, and the line-container will receive the pool's content (contained in an artificial inline element, as the linecontainer is a block-level element).

  Change-tracking should take place on the paragraph's pool element instead of the paragraph itself. This way, only structural changes are taken into account.
  Author:
    Thomas Morgner

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ParagraphLineBreakStep​()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `compute​(LogicalPageBox root)` |
    `protected void` | `finishBlockBox​(BlockRenderBox box)` |
    `protected void` | `finishInlineBox​(InlineRenderBox box)` |
    `protected void` | `finishOtherBox​(RenderBox box)` |
    `protected boolean` | `startBlockBox​(BlockRenderBox box)` |
    `protected boolean` | `startInlineBox​(InlineRenderBox box)` |
    `protected boolean` | `startOtherBox​(RenderBox box)` |
    `protected void` | `startOtherNode​(RenderNode node)` |

    - ### Methods inherited from class org.jfree.layouting.renderer.process.IterateStructuralProcessStep

      `finishNormalFlow, finishOtherNode, processBoxChilds, processParagraphChilds, startNormalFlow, startProcessing`

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

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

- - ### Constructor Detail

    - #### ParagraphLineBreakStep

          public ParagraphLineBreakStep​()

  - ### Method Detail

    - #### compute

          public void compute​(LogicalPageBox root)

    - #### startBlockBox

          protected boolean startBlockBox​(BlockRenderBox box)

      Overrides:
        `startBlockBox` in class `IterateStructuralProcessStep`

    - #### finishBlockBox

          protected void finishBlockBox​(BlockRenderBox box)

      Overrides:
        `finishBlockBox` in class `IterateStructuralProcessStep`

    - #### startInlineBox

          protected boolean startInlineBox​(InlineRenderBox box)

      Overrides:
        `startInlineBox` in class `IterateStructuralProcessStep`

    - #### finishInlineBox

          protected void finishInlineBox​(InlineRenderBox box)

      Overrides:
        `finishInlineBox` in class `IterateStructuralProcessStep`

    - #### startOtherNode

          protected void startOtherNode​(RenderNode node)

      Overrides:
        `startOtherNode` in class `IterateStructuralProcessStep`

    - #### startOtherBox

          protected boolean startOtherBox​(RenderBox box)

      Overrides:
        `startOtherBox` in class `IterateStructuralProcessStep`

    - #### finishOtherBox

          protected void finishOtherBox​(RenderBox box)

      Overrides:
        `finishOtherBox` in class `IterateStructuralProcessStep`