bckfnn 2004/10/20 04:55:33 Modified: src/java/org/apache/fop/fo PropertyList.java src/java/org/apache/fop/fo/flow Leader.java PageNumber.java src/java/org/apache/fop/fo/pagination RegionBody.java src/java/org/apache/fop/layoutmgr BlockLayoutManager.java CharacterLayoutManager.java PageNumberCitationLayoutManager.java PageSequenceLayoutManager.java TextLayoutManager.java TraitSetter.java Log: Third phase of performance improvement. - Use the new CommonXXX fields. PR: 31699 Revision Changes Path 1.38 +7 -7 xml-fop/src/java/org/apache/fop/fo/PropertyList.java Index: PropertyList.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertyList.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- PropertyList.java 19 Oct 2004 12:55:03 -0000 1.37 +++ PropertyList.java 20 Oct 2004 11:55:32 -0000 1.38 @@ -488,7 +488,7 @@ * @return a HyphenationProps object */ public CommonHyphenation getHyphenationProps() { - return new CommonHyphenation(); + return new CommonHyphenation(this); } /** @@ -496,7 +496,7 @@ * @return a MarginProps object */ public CommonMarginBlock getMarginBlockProps() { - return new CommonMarginBlock(); + return new CommonMarginBlock(this); } /** @@ -504,7 +504,7 @@ * @return a MarginInlineProps object */ public CommonMarginInline getMarginInlineProps() { - return new CommonMarginInline(); + return new CommonMarginInline(this); } /** @@ -512,7 +512,7 @@ * @return a AccessibilityProps object */ public CommonAccessibility getAccessibilityProps() { - return new CommonAccessibility(); + return new CommonAccessibility(this); } /** @@ -520,7 +520,7 @@ * @return a AuralProps object */ public CommonAural getAuralProps() { - CommonAural props = new CommonAural(); + CommonAural props = new CommonAural(this); return props; } @@ -529,7 +529,7 @@ * @return a RelativePositionProps object */ public CommonRelativePosition getRelativePositionProps() { - return new CommonRelativePosition(); + return new CommonRelativePosition(this); } /** @@ -537,7 +537,7 @@ * @return a AbsolutePositionProps object */ public CommonAbsolutePosition getAbsolutePositionProps() { - return new CommonAbsolutePosition(); + return new CommonAbsolutePosition(this); } 1.41 +1 -1 xml-fop/src/java/org/apache/fop/fo/flow/Leader.java Index: Leader.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Leader.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- Leader.java 19 Oct 2004 13:45:37 -0000 1.40 +++ Leader.java 20 Oct 2004 11:55:32 -0000 1.41 @@ -160,7 +160,7 @@ } public Font getFontState() { - return propMgr.getFontState(getFOEventHandler().getFontInfo()); + return commonFont.getFontState(getFOEventHandler().getFontInfo()); } public int getPatternWidth() { 1.42 +1 -1 xml-fop/src/java/org/apache/fop/fo/flow/PageNumber.java Index: PageNumber.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/PageNumber.java,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- PageNumber.java 19 Oct 2004 13:45:37 -0000 1.41 +++ PageNumber.java 20 Oct 2004 11:55:32 -0000 1.42 @@ -137,7 +137,7 @@ * @return the FontState object for this PageNumber */ public Font getFontState() { - return propMgr.getFontState(getFOEventHandler().getFontInfo()); + return commonFont.getFontState(getFOEventHandler().getFontInfo()); } 1.32 +7 -4 xml-fop/src/java/org/apache/fop/fo/pagination/RegionBody.java Index: RegionBody.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/RegionBody.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- RegionBody.java 19 Oct 2004 08:53:51 -0000 1.31 +++ RegionBody.java 20 Oct 2004 11:55:32 -0000 1.32 @@ -94,10 +94,13 @@ * writing-mode on the page (not on the region-body!). If that's not * set but indent is explicitly set, it will return that. */ - CommonMarginBlock mProps = propMgr.getMarginProps(); - return new Rectangle(mProps.startIndent, mProps.spaceBefore, - reldims.ipd - mProps.startIndent - mProps.endIndent, - reldims.bpd - mProps.spaceBefore - mProps.spaceAfter); + int start = commonMarginBlock.startIndent.getValue(); + int end = commonMarginBlock.endIndent.getValue(); + int before = commonMarginBlock.spaceBefore.getOptimum().getLength().getValue(); + int after = commonMarginBlock.spaceAfter.getOptimum().getLength().getValue(); + return new Rectangle(start, before, + reldims.ipd - start - end, + reldims.bpd - before - after); } /** 1.32 +9 -19 xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java Index: BlockLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- BlockLayoutManager.java 19 Oct 2004 21:47:15 -0000 1.31 +++ BlockLayoutManager.java 20 Oct 2004 11:55:32 -0000 1.32 @@ -23,14 +23,12 @@ import java.util.List; import org.apache.fop.datatypes.PercentBase; -import org.apache.fop.fo.PropertyManager; import org.apache.fop.fonts.Font; import org.apache.fop.area.Area; import org.apache.fop.area.Block; import org.apache.fop.area.BlockParent; import org.apache.fop.area.LineArea; -import org.apache.fop.traits.LayoutProps; -import org.apache.fop.fo.properties.CommonMarginBlock; +import org.apache.fop.traits.SpaceVal; import org.apache.fop.traits.MinOptMax; /** @@ -43,9 +41,6 @@ protected ListIterator proxyLMiter; - private LayoutProps layoutProps; - private CommonMarginBlock marginProps; - /* holds the (one-time use) fo:block space-before and -after properties. Large fo:blocks are split into multiple Area.Blocks to accomodate the subsequent @@ -85,10 +80,7 @@ * if defined for the block. */ protected void initProperties() { - PropertyManager pm = fobj.getPropertyManager(); - layoutProps = pm.getLayoutProps(); - marginProps = pm.getMarginProps(); - foBlockSpaceBefore = layoutProps.spaceBefore.getSpace(); + foBlockSpaceBefore = new SpaceVal(fobj.getCommonMarginBlock().spaceBefore).getSpace(); prevFoBlockSpaceAfter = foBlockSpaceAfter; } @@ -170,7 +162,7 @@ LayoutManager curLM; // currently active LM int ipd = context.getRefIPD(); - int iIndents = marginProps.startIndent + marginProps.endIndent; + int iIndents = fobj.getCommonMarginBlock().startIndent.getValue() + fobj.getCommonMarginBlock().endIndent.getValue(); int bIndents = fobj.getCommonBorderPaddingBackground().getBPPaddingAndBorder(false); ipd -= iIndents; @@ -249,7 +241,7 @@ if (getChildLM() == null || over) { if (getChildLM() == null) { setFinished(true); - stackSize.add(layoutProps.spaceAfter.getSpace()); + stackSize.add(new SpaceVal(fobj.getCommonMarginBlock().spaceAfter).getSpace()); } BreakPoss breakPoss = new BreakPoss( new LeafPosition(this, childBreaks.size() - 1)); @@ -275,7 +267,7 @@ addBlockSpacing(adjust, foBlockSpaceBefore); foBlockSpaceBefore = null; - addID(); + addID(fobj.getId()); addMarkers(true, true); LayoutManager childLM; @@ -297,14 +289,12 @@ } } - int bIndents = fobj.getCommonBorderPaddingBackground().getBPPaddingAndBorder(false); - addMarkers(false, true); flush(); // if adjusted space after - foBlockSpaceAfter = layoutProps.spaceAfter.getSpace(); + foBlockSpaceAfter = new SpaceVal(fobj.getCommonMarginBlock().spaceAfter).getSpace(); addBlockSpacing(adjust, foBlockSpaceAfter); curBlockArea = null; @@ -327,8 +317,8 @@ // set traits TraitSetter.addBorders(curBlockArea, fobj.getCommonBorderPaddingBackground()); TraitSetter.addBackground(curBlockArea, fobj.getCommonBorderPaddingBackground()); - TraitSetter.addMargins(curBlockArea, fobj.getCommonBorderPaddingBackground(), marginProps); - TraitSetter.addBreaks(curBlockArea, layoutProps); + TraitSetter.addMargins(curBlockArea, fobj.getCommonBorderPaddingBackground(), fobj.getCommonMarginBlock()); + TraitSetter.addBreaks(curBlockArea, fobj.getBreakBefore(), fobj.getBreakAfter()); // Set up dimensions // Must get dimensions from parent area @@ -347,7 +337,7 @@ if (parentwidth == 0) { parentwidth = referenceIPD; } - parentwidth -= marginProps.startIndent + marginProps.endIndent; + parentwidth -= fobj.getCommonMarginBlock().startIndent.getValue() + fobj.getCommonMarginBlock().endIndent.getValue(); curBlockArea.setIPD(parentwidth); setCurrentArea(curBlockArea); // ??? for generic operations } 1.6 +2 -2 xml-fop/src/java/org/apache/fop/layoutmgr/CharacterLayoutManager.java Index: CharacterLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/CharacterLayoutManager.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CharacterLayoutManager.java 19 Oct 2004 20:12:21 -0000 1.5 +++ CharacterLayoutManager.java 20 Oct 2004 11:55:32 -0000 1.6 @@ -52,7 +52,7 @@ SpaceVal ls = SpaceVal.makeLetterSpacing(fobj.getLetterSpacing()); letterSpaceIPD = ls.getSpace(); - hyphIPD = fs.getCharWidth(fobj.getCommonHyphenation().hyphenationChar); + hyphIPD = fs.getCharWidth(fobj.getCommonHyphenation().hyphenationCharacter); } private InlineArea getCharacterInlineArea(Character node) { 1.7 +7 -8 xml-fop/src/java/org/apache/fop/layoutmgr/PageNumberCitationLayoutManager.java Index: PageNumberCitationLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageNumberCitationLayoutManager.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- PageNumberCitationLayoutManager.java 22 Sep 2004 08:24:32 -0000 1.6 +++ PageNumberCitationLayoutManager.java 20 Oct 2004 11:55:32 -0000 1.7 @@ -32,7 +32,7 @@ */ public class PageNumberCitationLayoutManager extends LeafNodeLayoutManager { - PageNumberCitation pncNode; + PageNumberCitation fobj; Font font = null; // whether the page referred to by the citation has been resolved yet @@ -46,8 +46,8 @@ */ public PageNumberCitationLayoutManager(PageNumberCitation node) { super(node); - font = node.getPropertyManager().getFontState(node.getFOEventHandler().getFontInfo()); - pncNode = node; + fobj = node; + font = fobj.getCommonFont().getFontState(fobj.getFOEventHandler().getFontInfo()); } public InlineArea get(LayoutContext context) { @@ -58,8 +58,7 @@ public void addAreas(PositionIterator posIter, LayoutContext context) { super.addAreas(posIter, context); if (!resolved) { - parentLM.addUnresolvedArea(pncNode.getPropString(PR_REF_ID), - (Resolveable) curArea); + parentLM.addUnresolvedArea(fobj.getRefId(), (Resolveable) curArea); } } @@ -72,7 +71,7 @@ * return a resolveable area */ private InlineArea getPageNumberCitationInlineArea(LayoutManager parentLM) { - PageViewport page = parentLM.resolveRefID(pncNode.getPropString(PR_REF_ID)); + PageViewport page = parentLM.resolveRefID(fobj.getRefId()); InlineArea inline = null; if (page != null) { String str = page.getPageNumber(); @@ -91,7 +90,7 @@ resolved = true; } else { resolved = false; - inline = new UnresolvedPageNumber(pncNode.getPropString(PR_REF_ID)); + inline = new UnresolvedPageNumber(fobj.getRefId()); String str = "MMM"; // reserve three spaces for page number int width = getStringWidth(str); inline.setIPD(width); 1.7 +9 -9 xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java Index: PageSequenceLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- PageSequenceLayoutManager.java 19 Oct 2004 21:47:15 -0000 1.6 +++ PageSequenceLayoutManager.java 20 Oct 2004 11:55:32 -0000 1.7 @@ -781,7 +781,7 @@ ((FObj) fobj.getParent()).setLayoutDimension(PercentBase.BLOCK_BPD, pageHeight); // Get absolute margin properties (top, left, bottom, right) - CommonMarginBlock mProps = spm.getPropertyManager().getMarginProps(); + CommonMarginBlock mProps = spm.getCommonMarginBlock(); /* Create the page reference area rectangle (0,0 is at top left * of the "page media" and y increases @@ -789,17 +789,17 @@ * The media rectangle itself is (0,0,pageWidth,pageHeight). */ Rectangle pageRefRect = - new Rectangle(mProps.marginLeft, mProps.marginTop, - pageWidth - mProps.marginLeft - mProps.marginRight, - pageHeight - mProps.marginTop - mProps.marginBottom); + new Rectangle(mProps.marginLeft.getValue(), mProps.marginTop.getValue(), + pageWidth - mProps.marginLeft.getValue() - mProps.marginRight.getValue(), + pageHeight - mProps.marginTop.getValue() - mProps.marginBottom.getValue()); Page page = new Page(); // page reference area // Set up the CTM on the page reference area based on writing-mode // and reference-orientation FODimension reldims = new FODimension(0, 0); - CTM pageCTM = CTM.getCTMandRelDims(spm.getPropertyManager().getAbsRefOrient(), - spm.getPropertyManager().getWritingMode(), pageRefRect, reldims); + CTM pageCTM = CTM.getCTMandRelDims(spm.getReferenceOrientation(), + spm.getWritingMode(), pageRefRect, reldims); // Create a RegionViewport/ reference area pair for each page region for (Iterator regenum = spm.getRegions().values().iterator(); @@ -894,8 +894,8 @@ private void setRegionPosition(Region r, RegionReference rr, Rectangle2D absRegVPRect) { FODimension reldims = new FODimension(0, 0); - rr.setCTM(CTM.getCTMandRelDims(r.getPropertyManager().getAbsRefOrient(), - r.getPropertyManager().getWritingMode(), absRegVPRect, reldims)); + rr.setCTM(CTM.getCTMandRelDims(r.getReferenceOrientation(), + r.getWritingMode(), absRegVPRect, reldims)); rr.setIPD(reldims.ipd); rr.setBPD(reldims.bpd); } 1.24 +2 -2 xml-fop/src/java/org/apache/fop/layoutmgr/TextLayoutManager.java Index: TextLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/TextLayoutManager.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- TextLayoutManager.java 19 Oct 2004 20:12:21 -0000 1.23 +++ TextLayoutManager.java 20 Oct 2004 11:55:32 -0000 1.24 @@ -137,7 +137,7 @@ // With CID fonts, space isn't neccesary currentFontState.width(32) spaceCharIPD = fs.getCharWidth(' '); // Use hyphenationChar property - hyphIPD = fs.getCharWidth(foText.getCommonHyphenation().hyphenationChar); + hyphIPD = fs.getCharWidth(foText.getCommonHyphenation().hyphenationCharacter); // Make half-space: <space> on either side of a word-space) SpaceVal ls = SpaceVal.makeLetterSpacing(foText.getLetterSpacing()); SpaceVal ws = SpaceVal.makeWordSpacing(foText.getWordSpacing(), ls, fs); @@ -532,7 +532,7 @@ // add hyphenation character if the last word is hyphenated if (context.isLastArea() && ai.bHyphenated) { - str += foText.getCommonHyphenation().hyphenationChar; + str += foText.getCommonHyphenation().hyphenationCharacter; realWidth.add(new MinOptMax(hyphIPD)); } 1.10 +5 -6 xml-fop/src/java/org/apache/fop/layoutmgr/TraitSetter.java Index: TraitSetter.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/TraitSetter.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- TraitSetter.java 19 Oct 2004 21:47:15 -0000 1.9 +++ TraitSetter.java 20 Oct 2004 11:55:32 -0000 1.10 @@ -19,7 +19,6 @@ package org.apache.fop.layoutmgr; import org.apache.fop.traits.BorderProps; -import org.apache.fop.traits.LayoutProps; import org.apache.fop.area.Area; import org.apache.fop.area.Trait; import org.apache.fop.fo.properties.CommonMarginBlock; @@ -184,14 +183,14 @@ public static void addMargins(Area curBlock, CommonBorderPaddingBackground bpProps, CommonMarginBlock marginProps) { - int spaceStart = marginProps.startIndent + int spaceStart = marginProps.startIndent.getValue() - bpProps.getBorderStartWidth(false) - bpProps.getPaddingStart(false); if (spaceStart != 0) { curBlock.addTrait(Trait.SPACE_START, new Integer(spaceStart)); } - int spaceEnd = marginProps.endIndent + int spaceEnd = marginProps.endIndent.getValue() - bpProps.getBorderEndWidth(false) - bpProps.getPaddingEnd(false); if (spaceEnd != 0) { @@ -199,8 +198,8 @@ } } - public static void addBreaks(Area curArea, LayoutProps layoutProps) { - curArea.addTrait(Trait.BREAK_AFTER, new Integer(layoutProps.breakAfter)); - curArea.addTrait(Trait.BREAK_BEFORE, new Integer(layoutProps.breakBefore)); + public static void addBreaks(Area curArea, int breakBefore, int breakAfter) { + curArea.addTrait(Trait.BREAK_AFTER, new Integer(breakAfter)); + curArea.addTrait(Trait.BREAK_BEFORE, new Integer(breakBefore)); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]