You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by bc...@apache.org on 2004/10/20 13:55:33 UTC

cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr BlockLayoutManager.java CharacterLayoutManager.java PageNumberCitationLayoutManager.java PageSequenceLayoutManager.java TextLayoutManager.java TraitSetter.java

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: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org