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
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ParagraphLineBreakStep
public ParagraphLineBreakStep()
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