diff options
Diffstat (limited to 'src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java')
-rw-r--r-- | src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java | 66 |
1 files changed, 21 insertions, 45 deletions
diff --git a/src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java b/src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java index 2611a8cd5..1decfeb14 100644 --- a/src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java +++ b/src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java @@ -875,7 +875,7 @@ public class LineLayoutManager extends InlineStackingLayoutManager */ private List postProcessLineBreaks(int alignment, LayoutContext context) { - List returnList = new LinkedList(); + List<ListElement> returnList = new LinkedList<ListElement>(); int endIndex = -1; for (int p = 0; p < knuthParagraphs.size(); p++) { @@ -893,7 +893,7 @@ public class LineLayoutManager extends InlineStackingLayoutManager KnuthSequence seq = (KnuthSequence) knuthParagraphs.get(p); if (!seq.isInlineSequence()) { - List targetList = new LinkedList(); + List<ListElement> targetList = new LinkedList<ListElement>(); ListIterator listIter = seq.listIterator(); while (listIter.hasNext()) { ListElement tempElement; @@ -933,10 +933,10 @@ public class LineLayoutManager extends InlineStackingLayoutManager endIndex = ((LineBreakPosition) llPoss.getChosenPosition(i)).getLeafPos(); // create a list of the FootnoteBodyLM handling footnotes // whose citations are in this line - List footnoteList = new LinkedList(); - ListIterator elementIterator = seq.listIterator(startIndex); + List<LayoutManager> footnoteList = new LinkedList<LayoutManager>(); + ListIterator<KnuthElement> elementIterator = seq.listIterator(startIndex); while (elementIterator.nextIndex() <= endIndex) { - KnuthElement element = (KnuthElement) elementIterator.next(); + KnuthElement element = elementIterator.next(); if (element instanceof KnuthInlineBox && ((KnuthInlineBox) element).isAnchor()) { footnoteList.add(((KnuthInlineBox) element).getFootnoteBodyLM()); @@ -949,15 +949,6 @@ public class LineLayoutManager extends InlineStackingLayoutManager returnList.add(new KnuthBlockBox (lbp.lineHeight + lbp.spaceBefore + lbp.spaceAfter, footnoteList, lbp, false)); - /* // add stretch and shrink to the returnlist - if (!seq.isInlineSequence() - && lbp.availableStretch != 0 || lbp.availableShrink != 0) { - returnList.add(new KnuthPenalty(0, -KnuthElement.INFINITE, - false, new Position(this), false)); - returnList.add(new KnuthGlue(0, lbp.availableStretch, lbp.availableShrink, - new Position(this), false)); - } - */ } } } @@ -965,7 +956,7 @@ public class LineLayoutManager extends InlineStackingLayoutManager return returnList; } - private void createElements(List list, LineLayoutPossibilities llPoss, + private void createElements(List<ListElement> list, LineLayoutPossibilities llPoss, Position elementPosition) { /* number of normal, inner lines */ int innerLines = 0; @@ -984,36 +975,27 @@ public class LineLayoutManager extends InlineStackingLayoutManager /* number of the last unbreakable lines */ int lastLines = fobj.getWidows(); /* sub-sequence used to separate the elements representing different lines */ - List breaker = new LinkedList(); + List<KnuthElement> breaker = new LinkedList<KnuthElement>(); /* comment out the next lines in order to test particular situations */ if (fobj.getOrphans() + fobj.getWidows() <= llPoss.getMinLineCount()) { - innerLines = llPoss.getMinLineCount() - - (fobj.getOrphans() + fobj.getWidows()); - optionalLines = llPoss.getMaxLineCount() - - llPoss.getOptLineCount(); - eliminableLines = llPoss.getOptLineCount() - - llPoss.getMinLineCount(); + innerLines = llPoss.getMinLineCount() - (fobj.getOrphans() + fobj.getWidows()); + optionalLines = llPoss.getMaxLineCount() - llPoss.getOptLineCount(); + eliminableLines = llPoss.getOptLineCount() - llPoss.getMinLineCount(); } else if (fobj.getOrphans() + fobj.getWidows() <= llPoss.getOptLineCount()) { - optionalLines = llPoss.getMaxLineCount() - - llPoss.getOptLineCount(); - eliminableLines = llPoss.getOptLineCount() - - (fobj.getOrphans() + fobj.getWidows()); - conditionalEliminableLines = (fobj.getOrphans() + fobj.getWidows()) - - llPoss.getMinLineCount(); + optionalLines = llPoss.getMaxLineCount() - llPoss.getOptLineCount(); + eliminableLines = llPoss.getOptLineCount() - (fobj.getOrphans() + fobj.getWidows()); + conditionalEliminableLines + = (fobj.getOrphans() + fobj.getWidows()) - llPoss.getMinLineCount(); } else if (fobj.getOrphans() + fobj.getWidows() <= llPoss.getMaxLineCount()) { - optionalLines = llPoss.getMaxLineCount() - - (fobj.getOrphans() + fobj.getWidows()); - conditionalOptionalLines = (fobj.getOrphans() + fobj.getWidows()) - - llPoss.getOptLineCount(); - conditionalEliminableLines = llPoss.getOptLineCount() - - llPoss.getMinLineCount(); + optionalLines = llPoss.getMaxLineCount() - (fobj.getOrphans() + fobj.getWidows()); + conditionalOptionalLines + = (fobj.getOrphans() + fobj.getWidows()) - llPoss.getOptLineCount(); + conditionalEliminableLines = llPoss.getOptLineCount() - llPoss.getMinLineCount(); firstLines -= conditionalOptionalLines; } else { - conditionalOptionalLines = llPoss.getMaxLineCount() - - llPoss.getOptLineCount(); - conditionalEliminableLines = llPoss.getOptLineCount() - - llPoss.getMinLineCount(); + conditionalOptionalLines = llPoss.getMaxLineCount() - llPoss.getOptLineCount(); + conditionalEliminableLines = llPoss.getOptLineCount() - llPoss.getMinLineCount(); firstLines = llPoss.getOptLineCount(); lastLines = 0; } @@ -1044,12 +1026,6 @@ public class LineLayoutManager extends InlineStackingLayoutManager breaker.add(new KnuthPenalty(0, 0, false, elementPosition, false)); } - //log.debug("first=" + firstLines + " inner=" + innerLines - // + " optional=" + optionalLines + " eliminable=" + eliminableLines - // + " last=" + lastLines - // + " (condOpt=" + conditionalOptionalLines - // + " condEl=" + conditionalEliminableLines + ")"); - // creation of the elements: // first group of lines list.add(new KnuthBox(firstLines * constantLineHeight, elementPosition, @@ -1562,7 +1538,7 @@ public class LineLayoutManager extends InlineStackingLayoutManager lc.setAlignmentContext(alignmentContext); setChildContext(lc); - PositionIterator childPosIter = new StackingIter(positionList.listIterator()); + PositionIterator childPosIter = new PositionIterator(positionList.listIterator()); LayoutContext blocklc = new LayoutContext(0); blocklc.setLeadingSpace(new SpaceSpecifier(true)); blocklc.setTrailingSpace(new SpaceSpecifier(false)); |