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