adelmelle
Mon, 05 May 2008 12:34:16 -0700
Author: adelmelle Date: Mon May 5 12:27:10 2008 New Revision: 653564 URL: http://svn.apache.org/viewvc?rev=653564&view=rev Log: Correction of indentation Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java?rev=653564&r1=653563&r2=653564&view=diff ============================================================================== --- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java (original) +++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/inline/TextLayoutManager.java Mon May 5 12:27:10 2008 @@ -127,7 +127,7 @@ /** Used to reduce instantiation of MinOptMax with zero length. Do not modify! */ private static final MinOptMax ZERO_MINOPTMAX = new MinOptMax(0); - + private FOText foText; private char[] textArray; /** @@ -153,7 +153,7 @@ /** 1/2 of word-spacing value */ private SpaceVal halfWS; /** 1/2 of letter-spacing value */ - private SpaceVal halfLS; + private SpaceVal halfLS; private boolean hasChanged = false; private int returnedIndex = 0; @@ -165,10 +165,10 @@ private int lineStartBAP = 0; private int lineEndBAP = 0; - + private boolean keepTogether; - private final Position auxiliaryPosition; + private final Position auxiliaryPosition = new LeafPosition(this, -1); /** * Create a Text layout manager. @@ -178,15 +178,13 @@ public TextLayoutManager(FOText node) { super(); foText = node; - + textArray = new char[node.endIndex - node.startIndex]; System.arraycopy(node.ca, node.startIndex, textArray, 0, node.endIndex - node.startIndex); letterAdjustArray = new MinOptMax[textArray.length + 1]; vecAreaInfo = new java.util.ArrayList(); - - auxiliaryPosition = new LeafPosition(this, -1); } private KnuthPenalty makeZeroWidthPenalty(int penaltyValue) { @@ -211,16 +209,16 @@ FontInfo fi = foText.getFOEventHandler().getFontInfo(); FontTriplet[] fontkeys = foText.getCommonFont().getFontState(fi); font = fi.getFontInstance(fontkeys[0], foText.getCommonFont().fontSize.getValue(this)); - + // With CID fonts, space isn't neccesary currentFontState.width(32) spaceCharIPD = font.getCharWidth(' '); // Use hyphenationChar property hyphIPD = foText.getCommonHyphenation().getHyphIPD(font); - + SpaceVal ls = SpaceVal.makeLetterSpacing(foText.getLetterSpacing()); halfLS = new SpaceVal(MinOptMax.multiply(ls.getSpace(), 0.5), ls.isConditional(), ls.isForcing(), ls.getPrecedence()); - + ws = SpaceVal.makeWordSpacing(foText.getWordSpacing(), ls, font); // Make half-space: <space> on either side of a word-space) halfWS = new SpaceVal(MinOptMax.multiply(ws.getSpace(), 0.5), @@ -239,7 +237,7 @@ // in the SpaceVal.makeWordSpacing() method letterSpaceIPD = ls.getSpace(); wordSpaceIPD = MinOptMax.add(new MinOptMax(spaceCharIPD), ws.getSpace()); - + keepTogether = foText.getKeepTogether().getWithinLine().getEnum() == Constants.EN_ALWAYS; } @@ -294,9 +292,9 @@ realWidth.add(MinOptMax.multiply(letterSpaceIPD, -1)); letterSpaceCount--; } - + for (int i = ai.startIndex; i < ai.breakIndex; i++) { - MinOptMax ladj = letterAdjustArray[i + 1]; + MinOptMax ladj = letterAdjustArray[i + 1]; if (ladj != null && ladj.isElastic()) { letterSpaceCount++; } @@ -323,7 +321,7 @@ difference = (int) ((double) (realWidth.opt - realWidth.min) * ipdAdjust); } - + // set letter space adjustment if (ipdAdjust > 0.0) { letterSpaceDim @@ -337,7 +335,7 @@ totalAdjust += (letterSpaceDim - letterSpaceIPD.opt) * letterSpaceCount; // set word space adjustment - // + // if (wordSpaceCount > 0) { wordSpaceDim += (difference - totalAdjust) / wordSpaceCount; } else { @@ -366,7 +364,7 @@ // the last character of a word and to space characters: in order // to avoid this, we must subtract the letter space width twice; // the renderer will compute the space width as: - // space width = + // space width = // = "normal" space width + letterSpaceAdjust + wordSpaceAdjust // = spaceCharIPD + letterSpaceAdjust + // + (wordSpaceDim - spaceCharIPD - 2 * letterSpaceAdjust) @@ -391,7 +389,7 @@ * @param context the layout context * @param spaceDiff unused * @param firstIndex the index of the first AreaInfo used for the TextArea - * @param lastIndex the index of the last AreaInfo used for the TextArea + * @param lastIndex the index of the last AreaInfo used for the TextArea * @param isLastArea is this TextArea the last in a line? * @return the new text area */ @@ -446,7 +444,7 @@ // here ends a new word // add a word to the TextArea if (isLastArea - && i == lastIndex + && i == lastIndex && areaInfo.isHyphenated) { len++; } @@ -471,7 +469,7 @@ } // String wordChars = new String(textArray, wordStartIndex, len); if (isLastArea - && i == lastIndex + && i == lastIndex && areaInfo.isHyphenated) { // add the hyphenation character wordChars.append(foText.getCommonHyphenation().getHyphChar(font)); @@ -483,12 +481,12 @@ } TraitSetter.addFontTraits(textArea, font); textArea.addTrait(Trait.COLOR, foText.getColor()); - + TraitSetter.addTextDecoration(textArea, foText.getTextDecoration()); - + return textArea; } - + private void addToLetterAdjust(int index, int width) { if (letterAdjustArray[index] == null) { letterAdjustArray[index] = new MinOptMax(width); @@ -507,7 +505,7 @@ || CharUtilities.isNonBreakableSpace(ch) || CharUtilities.isFixedWidthSpace(ch); } - + /** [EMAIL PROTECTED] */ public LinkedList getNextKnuthElements(LayoutContext context, int alignment) { lineStartBAP = context.getLineStartBorderAndPaddingWidth(); @@ -569,12 +567,12 @@ } 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) { @@ -613,7 +611,7 @@ ai = new AreaInfo(thisStart, nextStart, (short) (nextStart - thisStart), (short) 0, MinOptMax.multiply(wordSpaceIPD, nextStart - thisStart), - false, true, breakOpportunity); + false, true, breakOpportunity); vecAreaInfo.add(ai); prevAi = ai; @@ -642,9 +640,9 @@ returnList.add(sequence); } } - - if ((ch == CharUtilities.SPACE - && foText.getWhitespaceTreatment() == Constants.EN_PRESERVE) + + if ((ch == CharUtilities.SPACE + && foText.getWhitespaceTreatment() == Constants.EN_PRESERVE) || ch == CharUtilities.NBSPACE) { // preserved space or non-breaking space: // create the AreaInfo object @@ -657,7 +655,7 @@ MinOptMax ipd = new MinOptMax(font.getCharWidth(ch)); ai = new AreaInfo(nextStart, (short) (nextStart + 1), (short) 0, (short) 0, - ipd, false, true, breakOpportunity); + ipd, false, true, breakOpportunity); thisStart = (short) (nextStart + 1); } else if (ch == NEWLINE) { // linefeed; this can happen when linefeed-treatment="preserve" @@ -667,7 +665,7 @@ inWhitespace = ch == CharUtilities.SPACE && foText.getWhitespaceTreatment() != Constants.EN_PRESERVE; nextStart++; } // end of while - + // Process any last elements if (inWord) { int lastIndex = nextStart; @@ -693,12 +691,12 @@ } 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; @@ -719,7 +717,7 @@ ai = new AreaInfo(thisStart, (short) (nextStart), (short) (nextStart - thisStart), (short) 0, MinOptMax.multiply(wordSpaceIPD, nextStart - thisStart), - false, true, true); + false, true, true); vecAreaInfo.add(ai); // create the elements @@ -896,20 +894,18 @@ } startIndex = stopIndex; } - if (!hasChanged && !nothingChanged) { - hasChanged = true; - } + hasChanged = !nothingChanged; } /** [EMAIL PROTECTED] */ public boolean applyChanges(List oldList) { setFinished(false); - if (changeList != null) { + if (changeList != null && !changeList.isEmpty()) { int areaInfosAdded = 0; int areaInfosRemoved = 0; - int oldIndex = -1; - PendingChange currChange = null; + int oldIndex = -1, changeIndex; + PendingChange currChange; ListIterator changeListIterator = changeList.listIterator(); while (changeListIterator.hasNext()) { currChange = (PendingChange) changeListIterator.next(); @@ -917,14 +913,13 @@ areaInfosRemoved++; areaInfosAdded++; oldIndex = currChange.index; - vecAreaInfo.remove(currChange.index + areaInfosAdded - areaInfosRemoved); - vecAreaInfo.add(currChange.index + areaInfosAdded - areaInfosRemoved, - currChange.ai); + changeIndex = currChange.index + areaInfosAdded - areaInfosRemoved; + vecAreaInfo.remove(changeIndex); } else { areaInfosAdded++; - vecAreaInfo.add(currChange.index + areaInfosAdded - areaInfosRemoved, - currChange.ai); + changeIndex = currChange.index + areaInfosAdded - areaInfosRemoved; } + vecAreaInfo.add(changeIndex, currChange.ai); } changeList.clear(); } @@ -963,8 +958,7 @@ int leafValue = ((LeafPosition) pos).getLeafPos(); if (leafValue != -1) { AreaInfo ai = (AreaInfo) vecAreaInfo.get(leafValue); - sbChars.append(new String(textArray, ai.startIndex, - ai.breakIndex - ai.startIndex)); + sbChars.append(textArray, ai.startIndex, ai.breakIndex - ai.startIndex); } } @@ -996,7 +990,7 @@ switch (alignment) { case EN_CENTER: // centered text: - // if the second element is chosen as a line break these elements + // 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 baseList.add(new KnuthGlue(lineEndBAP, @@ -1017,7 +1011,7 @@ case EN_START: // fall through case EN_END: // left- or right-aligned text: - // if the second element is chosen as a line break these elements + // 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 baseList.add(new KnuthGlue(lineEndBAP, @@ -1064,13 +1058,13 @@ baseList.add(makeZeroWidthPenalty(KnuthPenalty.INFINITE)); baseList.add(new KnuthGlue(lineStartBAP + ai.areaIPD.opt, 0, 0, mainPosition, false)); - } + } } else { // a (possible block) of breaking spaces switch (alignment) { case EN_CENTER: // centered text: - // if the second element is chosen as a line break these elements + // 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 baseList.add(new KnuthGlue(lineEndBAP, @@ -1091,7 +1085,7 @@ case EN_START: // fall through case EN_END: // left- or right-aligned text: - // if the second element is chosen as a line break these elements + // 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 if (lineStartBAP != 0 || lineEndBAP != 0) { @@ -1164,7 +1158,7 @@ } } } - } + } } private void addElementsForAWordFragment(List baseList, @@ -1190,7 +1184,7 @@ notifyPos(mainPosition), false)); } else { // adjustable letter spacing - int unsuppressibleLetterSpaces + int unsuppressibleLetterSpaces = suppressibleLetterSpace ? ai.letterSpaceCount - 1 : ai.letterSpaceCount; baseList.add (new KnuthInlineBox(ai.areaIPD.opt @@ -1205,7 +1199,7 @@ auxiliaryPosition, true)); baseList.add(makeAuxiliaryZeroWidthBox()); } - + // extra-elements if the word fragment is the end of a syllable, // or it ends with a character that can be used as a line break if (ai.isHyphenated) { @@ -1215,7 +1209,7 @@ widthIfNoBreakOccurs = letterAdjustArray[ai.breakIndex]; } //if (ai.breakIndex) - + // the word fragment ends at the end of a syllable: // if a break occurs the content width increases, // otherwise nothing happens @@ -1257,7 +1251,7 @@ baseList.add(new KnuthGlue(lineStartBAP, 3 * LineLayoutManager.DEFAULT_SPACE_WIDTH, 0, auxiliaryPosition, true)); break; - + case EN_START : // fall through case EN_END : // left- or right-aligned text: @@ -1287,7 +1281,7 @@ auxiliaryPosition, false)); } break; - + default: // justified text, or last line justified: // just a flagged penalty @@ -1329,7 +1323,7 @@ } } } - - } + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]