throw new IllegalStateException("No active breakstate, finish-line cannot continue.");
}
breakState.add(EndSequenceElement.INSTANCE, inlineRenderBox);
final ParagraphRenderBox paragraph = breakState.getParagraph();
final ElementAlignment textAlignment = paragraph.getTextAlignment();
final long textIndent = paragraph.getTextIndent();
final long firstLineIndent = paragraph.getFirstLineIndent();
// This aligns all direct childs. Once that is finished, we have to
// check, whether possibly existing inner-paragraphs are still valid
// or whether moving them violated any of the inner-pagebreak constraints.
final TextAlignmentProcessor processor = create(textAlignment);
final SequenceList sequence = breakState.getSequence();
final long x2;
final boolean overflowX = paragraph.getStaticBoxLayoutProperties().isOverflowX();
if (overflowX)
{
x2 = Integer.MAX_VALUE;
}
else
{
x2 = paragraph.getContentAreaX2();
}
final long x1 = paragraph.getContentAreaX1();
final long lineStart = Math.min(x2, x1 + firstLineIndent);
final long lineEnd = x2;
if (lineEnd - lineStart <= 0)
{
final long minimumChunkWidth = paragraph.getPool().getMinimumChunkWidth();
processor.initialize(metaData, sequence, lineStart, lineStart + minimumChunkWidth, pageGrid, overflowX);
InfiniteMinorAxisLayoutStep.logger.warn("Auto-Corrected zero-width first-line on paragraph " + paragraph.getName());
}
else
{
processor.initialize(metaData, sequence, lineStart, lineEnd, pageGrid, overflowX);
}
while (processor.hasNext())
{
final RenderNode linebox = processor.next();
if (linebox.getNodeType() != LayoutNodeTypes.TYPE_BOX_LINEBOX)
{
throw new IllegalStateException("Line must not be null");
}
paragraph.addGeneratedChild(linebox);
if (processor.hasNext())
{
final long innerLineStart = Math.min(x2, x1 + textIndent);
final long innerLineEnd = x2;
if (innerLineEnd - innerLineStart <= 0)
{
final long minimumChunkWidth = paragraph.getPool().getMinimumChunkWidth();
processor.updateLineSize(innerLineStart, innerLineStart + minimumChunkWidth);
InfiniteMinorAxisLayoutStep.logger.warn("Auto-Corrected zero-width text-line on paragraph " + paragraph.getName());
}
else
{
processor.updateLineSize(innerLineStart, innerLineEnd);
}