Author: vhennebert
Date: Mon Apr 28 19:25:12 2014
New Revision: 1590760
URL: http://svn.apache.org/r1590760
Log:
Made WhitespaceManagement.getKnuthElements more robust by iterating over
childLM.getNextKnuthElements
Modified:
xmlgraphics/fop/branches/Temp_WhitespaceManagement/src/java/org/apache/fop/layoutmgr/MultiSwitchLayoutManager.java
Modified:
xmlgraphics/fop/branches/Temp_WhitespaceManagement/src/java/org/apache/fop/layoutmgr/MultiSwitchLayoutManager.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_WhitespaceManagement/src/java/org/apache/fop/layoutmgr/MultiSwitchLayoutManager.java?rev=1590760&r1=1590759&r2=1590760&view=diff
==============================================================================
---
xmlgraphics/fop/branches/Temp_WhitespaceManagement/src/java/org/apache/fop/layoutmgr/MultiSwitchLayoutManager.java
(original)
+++
xmlgraphics/fop/branches/Temp_WhitespaceManagement/src/java/org/apache/fop/layoutmgr/MultiSwitchLayoutManager.java
Mon Apr 28 19:25:12 2014
@@ -59,12 +59,12 @@ public class MultiSwitchLayoutManager ex
}
private interface KnuthElementsGenerator {
- List<ListElement> getKnuthElement(LayoutContext context, int
alignment);
+ List<ListElement> getKnuthElements(LayoutContext context, int
alignment);
}
private class DefaultKnuthListGenerator implements KnuthElementsGenerator {
- public List<ListElement> getKnuthElement(LayoutContext context, int
alignment) {
+ public List<ListElement> getKnuthElements(LayoutContext context, int
alignment) {
List<ListElement> knuthList = new LinkedList<ListElement>();
LayoutManager childLM = getChildLM();
while (!childLM.isFinished()) {
@@ -83,7 +83,8 @@ public class MultiSwitchLayoutManager ex
private class WhitespaceManagement implements KnuthElementsGenerator {
- public List<ListElement> getKnuthElement(LayoutContext context, int
alignment) {
+ @SuppressWarnings("unchecked")
+ public List<ListElement> getKnuthElements(LayoutContext context, int
alignment) {
MultiSwitchLayoutManager mslm = MultiSwitchLayoutManager.this;
List<ListElement> knuthList = new LinkedList<ListElement>();
@@ -91,18 +92,17 @@ public class MultiSwitchLayoutManager ex
new WhitespaceManagementPosition(mslm));
LayoutManager childLM;
while ((childLM = getChildLM()) != null) {
- if (!childLM.isFinished()) {
- LayoutContext childLC = makeChildLayoutContext(context);
- List childElements = childLM.getNextKnuthElements(childLC,
alignment);
- if (childElements != null) {
- List<ListElement> newList = new
LinkedList<ListElement>();
- wrapPositionElements(childElements, newList);
- // TODO Doing space resolution here is wrong.
- SpaceResolver.resolveElementList(newList);
- int contentLength =
ElementListUtils.calcContentLength(newList);
- penalty.addVariant(penalty.new Variant(newList,
contentLength));
- }
+ LayoutContext childLC = makeChildLayoutContext(context);
+ List<ListElement> childElements = new
LinkedList<ListElement>();
+ while (!childLM.isFinished()) {
+ childElements.addAll(childLM.getNextKnuthElements(childLC,
alignment));
}
+ List<ListElement> wrappedElements = new
LinkedList<ListElement>();
+ wrapPositionElements(childElements, wrappedElements);
+ // TODO Doing space resolution here is wrong.
+ SpaceResolver.resolveElementList(wrappedElements);
+ int contentLength =
ElementListUtils.calcContentLength(wrappedElements);
+ penalty.addVariant(penalty.new Variant(wrappedElements,
contentLength));
}
// Prevent the penalty from being ignored if it is at the
beginning of the content
knuthList.add(new KnuthBox(0, new Position(mslm), false));
@@ -129,7 +129,7 @@ public class MultiSwitchLayoutManager ex
@Override
public List<ListElement> getNextKnuthElements(LayoutContext context, int
alignment) {
referenceIPD = context.getRefIPD();
- List<ListElement> knuthList = knuthGen.getKnuthElement(context,
alignment);
+ List<ListElement> knuthList = knuthGen.getKnuthElements(context,
alignment);
setFinished(true);
return knuthList;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]