aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas L. Delmelle <adelmelle@apache.org>2008-05-04 11:37:31 +0000
committerAndreas L. Delmelle <adelmelle@apache.org>2008-05-04 11:37:31 +0000
commitc8cb0583fc806ea8f5ee56e670092f44066fbcd7 (patch)
tree08ccd4fa673c4309361b9dc92575cc41b4b4480b /src
parent3337d89c3ed0df06e69c0658c200c78c2ae88d77 (diff)
downloadxmlgraphics-fop-c8cb0583fc806ea8f5ee56e670092f44066fbcd7.tar.gz
xmlgraphics-fop-c8cb0583fc806ea8f5ee56e670092f44066fbcd7.zip
Change private element-generating methods to add the elements to a passed List (improves code-readability and reduces the amount of temporary LinkedList instances)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@653202 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java302
1 files changed, 147 insertions, 155 deletions
diff --git a/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java b/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
index 9af0ba90d..f87605b27 100644
--- a/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
+++ b/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java
@@ -88,7 +88,7 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
this.isSpace = isSpace;
this.breakOppAfter = breakOppAfter;
}
-
+
public String toString() {
return "[ lscnt=" + letterSpaceCount
+ ", wscnt=" + wordSpaceCount
@@ -190,15 +190,29 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
}
private KnuthPenalty makeInfinitePenalty() {
- return new KnuthPenalty(0, KnuthElement.INFINITE, false, getAuxiliaryPosition(), true);
+ return new KnuthPenalty(
+ 0,
+ KnuthElement.INFINITE,
+ false,
+ getAuxiliaryPosition(),
+ true);
}
private KnuthPenalty makeZeroPenalty() {
- return new KnuthPenalty(0, 0, false, getAuxiliaryPosition(), true);
+ return new KnuthPenalty(
+ 0,
+ 0,
+ false,
+ getAuxiliaryPosition(),
+ true);
}
private KnuthInlineBox makeZeroWidthBox() {
- return new KnuthInlineBox(0, null, notifyPos(getAuxiliaryPosition()), true);
+ return new KnuthInlineBox(
+ 0,
+ null,
+ notifyPos(getAuxiliaryPosition()),
+ true);
}
/** {@inheritDoc} */
@@ -519,7 +533,7 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
thisStart = nextStart;
boolean inWord = false;
boolean inWhitespace = false;
- char ch = 0;
+ char ch = 0;
while (nextStart < textArray.length) {
ch = textArray[nextStart];
boolean breakOpportunity = false;
@@ -564,12 +578,12 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
} else if (prevAi != null && !prevAi.isSpace && prevAi.breakIndex > 0) {
char previous = textArray[prevAi.breakIndex - 1];
kern = font.getKernValue(previous, c) * font.getFontSize() / 1000;
- }
+ }
if (kern != 0) {
//log.info("Kerning between " + previous + " and " + c + ": " + kern);
addToLetterAdjust(i, kern);
wordIPD.add(kern);
- }
+ }
}
}
if (kerning && breakOpportunity && !isSpace(ch) && lastIndex > 0 && textArray[lastIndex] == CharUtilities.SOFT_HYPHEN) {
@@ -596,8 +610,8 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
tempStart = nextStart;
//add the elements
- sequence.addAll(createElementsForAWordFragment(alignment, ai,
- vecAreaInfo.size() - 1, letterSpaceIPD));
+ addElementsForAWordFragment(sequence, alignment, ai,
+ vecAreaInfo.size() - 1, letterSpaceIPD);
ai = null;
thisStart = nextStart;
}
@@ -613,8 +627,7 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
prevAi = ai;
// create the elements
- sequence.addAll
- (createElementsForASpace(alignment, ai, vecAreaInfo.size() - 1));
+ addElementsForASpace(sequence, alignment, ai, vecAreaInfo.size() - 1);
ai = null;
thisStart = nextStart;
@@ -623,16 +636,15 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
if (ai != null) {
vecAreaInfo.add(ai);
prevAi = ai;
- ai.breakOppAfter = ch == CharUtilities.SPACE || breakOpportunity;
- sequence.addAll
- (createElementsForASpace(alignment, ai, vecAreaInfo.size() - 1));
+ ai.breakOppAfter = (ch == CharUtilities.SPACE) || breakOpportunity;
+ addElementsForASpace(sequence, alignment, ai, vecAreaInfo.size() - 1);
ai = null;
}
if (breakAction == LineBreakStatus.EXPLICIT_BREAK) {
if (lineEndBAP != 0) {
- sequence.add
- (new KnuthGlue(lineEndBAP, 0, 0,
- getAuxiliaryPosition(), true));
+ sequence.add(
+ new KnuthGlue(lineEndBAP, 0, 0,
+ getAuxiliaryPosition(), true));
}
sequence.endSequence();
sequence = new InlineKnuthSequence();
@@ -690,12 +702,12 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
} else if (prevAi != null && !prevAi.isSpace) {
char previous = textArray[prevAi.breakIndex - 1];
kern = font.getKernValue(previous, c) * font.getFontSize() / 1000;
- }
+ }
if (kern != 0) {
//log.info("Kerning between " + previous + " and " + c + ": " + kern);
addToLetterAdjust(i, kern);
wordIPD.add(kern);
- }
+ }
}
}
int iLetterSpaces = wordLength - 1;
@@ -709,8 +721,8 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
tempStart = nextStart;
// create the elements
- sequence.addAll(createElementsForAWordFragment(alignment, ai,
- vecAreaInfo.size() - 1, letterSpaceIPD));
+ addElementsForAWordFragment(sequence, alignment, ai,
+ vecAreaInfo.size() - 1, letterSpaceIPD);
ai = null;
} else if (inWhitespace) {
ai = new AreaInfo(thisStart, (short) (nextStart),
@@ -720,14 +732,12 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
vecAreaInfo.add(ai);
// create the elements
- sequence.addAll
- (createElementsForASpace(alignment, ai, vecAreaInfo.size() - 1));
+ addElementsForASpace(sequence, alignment, ai, vecAreaInfo.size() - 1);
ai = null;
} else if (ai != null) {
vecAreaInfo.add(ai);
ai.breakOppAfter = ch == CharUtilities.ZERO_WIDTH_SPACE;
- sequence.addAll
- (createElementsForASpace(alignment, ai, vecAreaInfo.size() - 1));
+ addElementsForASpace(sequence, alignment, ai, vecAreaInfo.size() - 1);
ai = null;
} else if (ch == NEWLINE) {
if (lineEndBAP != 0) {
@@ -945,12 +955,10 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
AreaInfo ai = (AreaInfo) vecAreaInfo.get(returnedIndex);
if (ai.wordSpaceCount == 0) {
// ai refers either to a word or a word fragment
- returnList.addAll
- (createElementsForAWordFragment(alignment, ai, returnedIndex, letterSpaceIPD));
+ addElementsForAWordFragment(returnList, alignment, ai, returnedIndex, letterSpaceIPD);
} else {
// ai refers to a space
- returnList.addAll
- (createElementsForASpace(alignment, ai, returnedIndex));
+ addElementsForASpace(returnList, alignment, ai, returnedIndex);
}
returnedIndex++;
} // end of while
@@ -969,9 +977,10 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
}
}
- private LinkedList createElementsForASpace(int alignment,
- AreaInfo ai, int leafValue) {
- LinkedList spaceElements = new LinkedList();
+ private void addElementsForASpace(List baseList,
+ int alignment,
+ AreaInfo ai,
+ int leafValue) {
LeafPosition mainPosition = new LeafPosition(this, leafValue);
if (!ai.breakOppAfter) {
@@ -979,14 +988,14 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
if (alignment == EN_JUSTIFY) {
// the space can stretch and shrink, and must be preserved
// when starting a line
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt, ai.areaIPD.max - ai.areaIPD.opt,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(ai.areaIPD.opt, ai.areaIPD.max - ai.areaIPD.opt,
ai.areaIPD.opt - ai.areaIPD.min, mainPosition, false));
} else {
// the space does not need to stretch or shrink, and must be
// preserved when starting a line
- spaceElements.add(new KnuthInlineBox(ai.areaIPD.opt, null,
+ baseList.add(new KnuthInlineBox(ai.areaIPD.opt, null,
mainPosition, true));
}
} else {
@@ -999,17 +1008,17 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// if the second element is chosen as a line break these elements
// add a constant amount of stretch at the end of a line and at the
// beginning of the next one, otherwise they don't add any stretch
- spaceElements.add(new KnuthGlue(lineEndBAP,
+ baseList.add(new KnuthGlue(lineEndBAP,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(
- (lineStartBAP + lineEndBAP), -6
* LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt + lineStartBAP,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(ai.areaIPD.opt + lineStartBAP,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
mainPosition, false));
break;
@@ -1020,49 +1029,49 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// if the second element is chosen as a line break these elements
// add a constant amount of stretch at the end of a line, otherwise
// they don't add any stretch
- spaceElements.add(new KnuthGlue(lineEndBAP,
+ baseList.add(new KnuthGlue(lineEndBAP,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(
- (lineStartBAP + lineEndBAP), -3
* LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt + lineStartBAP, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(ai.areaIPD.opt + lineStartBAP, 0, 0,
mainPosition, false));
break;
case EN_JUSTIFY:
// justified text:
// the stretch and shrink depends on the space width
- spaceElements.add(new KnuthGlue(lineEndBAP, 0, 0,
+ baseList.add(new KnuthGlue(lineEndBAP, 0, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(
- (lineStartBAP + lineEndBAP), ai.areaIPD.max
- ai.areaIPD.opt, ai.areaIPD.opt - ai.areaIPD.min,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(lineStartBAP + ai.areaIPD.opt, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP + ai.areaIPD.opt, 0, 0,
mainPosition, false));
break;
default:
// last line justified, the other lines unjustified:
// use only the space stretch
- spaceElements.add(new KnuthGlue(lineEndBAP, 0, 0,
+ baseList.add(new KnuthGlue(lineEndBAP, 0, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(
- (lineStartBAP + lineEndBAP), ai.areaIPD.max
- ai.areaIPD.opt, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(lineStartBAP + ai.areaIPD.opt, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP + ai.areaIPD.opt, 0, 0,
mainPosition, false));
}
} else {
@@ -1073,17 +1082,17 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// if the second element is chosen as a line break these elements
// add a constant amount of stretch at the end of a line and at the
// beginning of the next one, otherwise they don't add any stretch
- spaceElements.add(new KnuthGlue(lineEndBAP,
+ baseList.add(new KnuthGlue(lineEndBAP,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(ai.areaIPD.opt
- (lineStartBAP + lineEndBAP), -6
* LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
mainPosition, false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(lineStartBAP,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
break;
@@ -1095,24 +1104,24 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// add a constant amount of stretch at the end of a line, otherwise
// they don't add any stretch
if (lineStartBAP != 0 || lineEndBAP != 0) {
- spaceElements.add(new KnuthGlue(lineEndBAP,
+ baseList.add(new KnuthGlue(lineEndBAP,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(ai.areaIPD.opt
- (lineStartBAP + lineEndBAP), -3
* LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
mainPosition, false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(lineStartBAP, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP, 0, 0,
getAuxiliaryPosition(), false));
} else {
- spaceElements.add(new KnuthGlue(0,
+ baseList.add(new KnuthGlue(0,
3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt, -3
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(ai.areaIPD.opt, -3
* LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
mainPosition, false));
}
@@ -1122,20 +1131,20 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// justified text:
// the stretch and shrink depends on the space width
if (lineStartBAP != 0 || lineEndBAP != 0) {
- spaceElements.add(new KnuthGlue(lineEndBAP, 0, 0,
+ baseList.add(new KnuthGlue(lineEndBAP, 0, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(
ai.areaIPD.opt - (lineStartBAP + lineEndBAP),
ai.areaIPD.max - ai.areaIPD.opt,
ai.areaIPD.opt - ai.areaIPD.min,
mainPosition, false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(lineStartBAP, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP, 0, 0,
getAuxiliaryPosition(), false));
} else {
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt,
+ baseList.add(new KnuthGlue(ai.areaIPD.opt,
ai.areaIPD.max - ai.areaIPD.opt,
ai.areaIPD.opt - ai.areaIPD.min,
mainPosition, false));
@@ -1146,32 +1155,33 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// last line justified, the other lines unjustified:
// use only the space stretch
if (lineStartBAP != 0 || lineEndBAP != 0) {
- spaceElements.add(new KnuthGlue(lineEndBAP, 0, 0,
+ baseList.add(new KnuthGlue(lineEndBAP, 0, 0,
getAuxiliaryPosition(), false));
- spaceElements.add(makeZeroPenalty());
- spaceElements.add(new KnuthGlue(
+ baseList.add(makeZeroPenalty());
+ baseList.add(new KnuthGlue(
ai.areaIPD.opt - (lineStartBAP + lineEndBAP),
ai.areaIPD.max - ai.areaIPD.opt,
0, mainPosition, false));
- spaceElements.add(makeZeroWidthBox());
- spaceElements.add(makeInfinitePenalty());
- spaceElements.add(new KnuthGlue(lineStartBAP, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP, 0, 0,
getAuxiliaryPosition(), false));
} else {
- spaceElements.add(new KnuthGlue(ai.areaIPD.opt,
+ baseList.add(new KnuthGlue(ai.areaIPD.opt,
ai.areaIPD.max - ai.areaIPD.opt, 0,
mainPosition, false));
}
}
}
- }
-
- return spaceElements;
+ }
}
- private LinkedList createElementsForAWordFragment(int alignment,
- AreaInfo ai, int leafValue, MinOptMax letterSpaceWidth) {
- LinkedList wordElements = new LinkedList();
+ private void addElementsForAWordFragment(List baseList,
+ int alignment,
+ AreaInfo ai,
+ int leafValue,
+ MinOptMax letterSpaceWidth) {
+
LeafPosition mainPosition = new LeafPosition(this, leafValue);
// if the last character of the word fragment is '-' or '/',
@@ -1181,8 +1191,7 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
if (letterSpaceWidth.min == letterSpaceWidth.max) {
// constant letter spacing
- wordElements.add
- (new KnuthInlineBox(
+ baseList.add(new KnuthInlineBox(
suppressibleLetterSpace
? ai.areaIPD.opt - letterSpaceWidth.opt
: ai.areaIPD.opt,
@@ -1192,18 +1201,18 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// adjustable letter spacing
int unsuppressibleLetterSpaces
= suppressibleLetterSpace ? ai.letterSpaceCount - 1 : ai.letterSpaceCount;
- wordElements.add
+ baseList.add
(new KnuthInlineBox(ai.areaIPD.opt
- ai.letterSpaceCount * letterSpaceWidth.opt,
alignmentContext,
notifyPos(mainPosition), false));
- wordElements.add(makeInfinitePenalty());
- wordElements.add
+ baseList.add(makeInfinitePenalty());
+ baseList.add
(new KnuthGlue(unsuppressibleLetterSpaces * letterSpaceWidth.opt,
unsuppressibleLetterSpaces * (letterSpaceWidth.max - letterSpaceWidth.opt),
unsuppressibleLetterSpaces * (letterSpaceWidth.opt - letterSpaceWidth.min),
getAuxiliaryPosition(), true));
- wordElements.add(makeZeroWidthBox());
+ baseList.add(makeZeroWidthBox());
}
// extra-elements if the word fragment is the end of a syllable,
@@ -1219,44 +1228,42 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// the word fragment ends at the end of a syllable:
// if a break occurs the content width increases,
// otherwise nothing happens
- wordElements.addAll(createElementsForAHyphen(alignment, hyphIPD, widthIfNoBreakOccurs, ai.breakOppAfter && ai.isHyphenated));
+ addElementsForAHyphen(baseList, alignment, hyphIPD, widthIfNoBreakOccurs, ai.breakOppAfter && ai.isHyphenated);
} else if (suppressibleLetterSpace) {
// the word fragment ends with a character that acts as a hyphen
// if a break occurs the width does not increase,
// otherwise there is one more letter space
- wordElements.addAll(createElementsForAHyphen(alignment, 0, letterSpaceWidth, true));
+ addElementsForAHyphen(baseList, alignment, 0, letterSpaceWidth, true);
}
- return wordElements;
}
// static final int SOFT_HYPHEN_PENALTY = KnuthPenalty.FLAGGED_PENALTY / 10;
static final int SOFT_HYPHEN_PENALTY = 1;
- private LinkedList createElementsForAHyphen(int alignment,
- int widthIfBreakOccurs, MinOptMax widthIfNoBreakOccurs, boolean unflagged) {
+
+ private void addElementsForAHyphen(List baseList,
+ int alignment,
+ int widthIfBreakOccurs,
+ MinOptMax widthIfNoBreakOccurs,
+ boolean unflagged) {
if (widthIfNoBreakOccurs == null) {
widthIfNoBreakOccurs = ZERO_MINOPTMAX;
}
- LinkedList hyphenElements = new LinkedList();
-
+
switch (alignment) {
case EN_CENTER :
// centered text:
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(lineEndBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineEndBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), true));
- hyphenElements.add
- (new KnuthPenalty(hyphIPD,
+ baseList.add(new KnuthPenalty(hyphIPD,
unflagged ? SOFT_HYPHEN_PENALTY : KnuthPenalty.FLAGGED_PENALTY, !unflagged,
getAuxiliaryPosition(), false));
- hyphenElements.add
- (new KnuthGlue(-(lineEndBAP + lineStartBAP),
+ baseList.add(new KnuthGlue(-(lineEndBAP + lineStartBAP),
-6 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- hyphenElements.add(makeZeroWidthBox());
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(lineStartBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), true));
break;
@@ -1264,34 +1271,27 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
case EN_END :
// left- or right-aligned text:
if (lineStartBAP != 0 || lineEndBAP != 0) {
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(lineEndBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineEndBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- hyphenElements.add
- (new KnuthPenalty(widthIfBreakOccurs,
+ baseList.add(new KnuthPenalty(widthIfBreakOccurs,
unflagged ? SOFT_HYPHEN_PENALTY : KnuthPenalty.FLAGGED_PENALTY, !unflagged,
getAuxiliaryPosition(), false));
- hyphenElements.add
- (new KnuthGlue(widthIfNoBreakOccurs.opt - (lineStartBAP + lineEndBAP),
+ baseList.add(new KnuthGlue(widthIfNoBreakOccurs.opt - (lineStartBAP + lineEndBAP),
-3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- hyphenElements.add(makeZeroWidthBox());
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(lineStartBAP, 0, 0,
+ baseList.add(makeZeroWidthBox());
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP, 0, 0,
getAuxiliaryPosition(), false));
} else {
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(0, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(0, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
- hyphenElements.add
- (new KnuthPenalty(widthIfBreakOccurs,
+ baseList.add(new KnuthPenalty(widthIfBreakOccurs,
unflagged ? SOFT_HYPHEN_PENALTY : KnuthPenalty.FLAGGED_PENALTY, !unflagged,
getAuxiliaryPosition(), false));
- hyphenElements.add
- (new KnuthGlue(widthIfNoBreakOccurs.opt,
+ baseList.add(new KnuthGlue(widthIfNoBreakOccurs.opt,
-3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0,
getAuxiliaryPosition(), false));
}
@@ -1301,44 +1301,37 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
// justified text, or last line justified:
// just a flagged penalty
if (lineStartBAP != 0 || lineEndBAP != 0) {
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(lineEndBAP, 0, 0,
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineEndBAP, 0, 0,
getAuxiliaryPosition(), false));
- hyphenElements.add
- (new KnuthPenalty(widthIfBreakOccurs,
+ baseList.add(new KnuthPenalty(widthIfBreakOccurs,
unflagged ? SOFT_HYPHEN_PENALTY : KnuthPenalty.FLAGGED_PENALTY, !unflagged,
getAuxiliaryPosition(), false));
// extra elements representing a letter space that is suppressed
// if a break occurs
if (widthIfNoBreakOccurs.min != 0
|| widthIfNoBreakOccurs.max != 0) {
- hyphenElements.add
- (new KnuthGlue(widthIfNoBreakOccurs.opt - (lineStartBAP + lineEndBAP),
+ baseList.add(new KnuthGlue(widthIfNoBreakOccurs.opt - (lineStartBAP + lineEndBAP),
widthIfNoBreakOccurs.max - widthIfNoBreakOccurs.opt,
widthIfNoBreakOccurs.opt - widthIfNoBreakOccurs.min,
getAuxiliaryPosition(), false));
} else {
- hyphenElements.add
- (new KnuthGlue(-(lineStartBAP + lineEndBAP), 0, 0,
+ baseList.add(new KnuthGlue(-(lineStartBAP + lineEndBAP), 0, 0,
getAuxiliaryPosition(), false));
}
- hyphenElements.add(new KnuthInlineBox(0, null, notifyPos(getAuxiliaryPosition()), true));
- hyphenElements.add(makeInfinitePenalty());
- hyphenElements.add
- (new KnuthGlue(lineStartBAP, 0, 0,
+ baseList.add(new KnuthInlineBox(0, null, notifyPos(getAuxiliaryPosition()), true));
+ baseList.add(makeInfinitePenalty());
+ baseList.add(new KnuthGlue(lineStartBAP, 0, 0,
getAuxiliaryPosition(), false));
} else {
- hyphenElements.add
- (new KnuthPenalty(widthIfBreakOccurs,
+ baseList.add(new KnuthPenalty(widthIfBreakOccurs,
unflagged ? SOFT_HYPHEN_PENALTY : KnuthPenalty.FLAGGED_PENALTY, !unflagged,
getAuxiliaryPosition(), false));
// extra elements representing a letter space that is suppressed
// if a break occurs
if (widthIfNoBreakOccurs.min != 0
|| widthIfNoBreakOccurs.max != 0) {
- hyphenElements.add
- (new KnuthGlue(widthIfNoBreakOccurs.opt,
+ baseList.add(new KnuthGlue(widthIfNoBreakOccurs.opt,
widthIfNoBreakOccurs.max - widthIfNoBreakOccurs.opt,
widthIfNoBreakOccurs.opt - widthIfNoBreakOccurs.min,
getAuxiliaryPosition(), false));
@@ -1346,7 +1339,6 @@ public class TextLayoutManager extends LeafNodeLayoutManager {
}
}
- return hyphenElements;
}
} \ No newline at end of file