vmote 2003/08/27 08:33:59 Modified: src/java/org/apache/fop/fo/pagination Region.java RegionBody.java src/java/org/apache/fop/layoutmgr PageLayoutManager.java Log: 1. move fo/pagination/Region.makeRegionReferenceArea() to layoutmgr/PageLayoutManager.makeRegionReferenceArea() 2. move fo/pagination/RegionBody.makeRegionReferenceArea() layoutmgr/PageLayoutManager.makeRegionBodyReferenceArea() Revision Changes Path 1.9 +2 -15 xml-fop/src/java/org/apache/fop/fo/pagination/Region.java Index: Region.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Region.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Region.java 27 Aug 2003 01:51:06 -0000 1.8 +++ Region.java 27 Aug 2003 15:33:59 -0000 1.9 @@ -88,7 +88,7 @@ private String regionName; /** Holds the overflow attribute */ - protected int overflow; + public int overflow; /** Holds the writing mode */ protected int wm; @@ -138,19 +138,6 @@ public abstract Rectangle getViewportRectangle(FODimension pageRefRect); /** - * Create the region reference area for this region master. - * @param absRegVPRect The region viewport rectangle is "absolute" coordinates - * where x=distance from left, y=distance from bottom, width=right-left - * height=top-bottom - * @return a new region reference area - */ - public RegionReference makeRegionReferenceArea(Rectangle2D absRegVPRect) { - RegionReference r = new RegionReference(getRegionAreaClass()); - setRegionPosition(r, absRegVPRect); - return r; - } - - /** * Set the region position inside the region viewport. * This sets the trasnform that is used to place the contents of * the region. @@ -158,7 +145,7 @@ * @param r the region reference area * @param absRegVPRect the rectangle to place the region contents */ - protected void setRegionPosition(RegionReference r, Rectangle2D absRegVPRect) { + public void setRegionPosition(RegionReference r, Rectangle2D absRegVPRect) { FODimension reldims = new FODimension(0, 0); r.setCTM(CTM.getCTMandRelDims(propMgr.getAbsRefOrient(), propMgr.getWritingMode(), absRegVPRect, reldims)); 1.6 +0 -26 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- RegionBody.java 27 Aug 2003 01:51:06 -0000 1.5 +++ RegionBody.java 27 Aug 2003 15:33:59 -0000 1.6 @@ -60,7 +60,6 @@ import org.apache.fop.fo.FOTreeVisitor; import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.Property; -import org.apache.fop.fo.properties.Overflow; import org.apache.fop.fo.properties.WritingMode; import org.apache.fop.datatypes.ColorType; import org.apache.fop.datatypes.FODimension; @@ -144,31 +143,6 @@ */ public int getRegionAreaClass() { return RegionReference.BODY; - } - - /** - * Override the inherited method. - * @see org.apache.fop.fo.pagination.Region#makeRegionReferenceArea(Rectangle2D) - */ - public RegionReference makeRegionReferenceArea(Rectangle2D absRegVPRect) { - // Should set some column stuff here I think, or put it elsewhere - BodyRegion body = new BodyRegion(); - setRegionPosition(body, absRegVPRect); - int columnCount = - this.properties.get("column-count").getNumber().intValue(); - if ((columnCount > 1) && (overflow == Overflow.SCROLL)) { - // recover by setting 'column-count' to 1. This is allowed but - // not required by the spec. - getLogger().error("Setting 'column-count' to 1 because " - + "'overflow' is set to 'scroll'"); - columnCount = 1; - } - body.setColumnCount(columnCount); - - int columnGap = - this.properties.get("column-gap").getLength().getValue(); - body.setColumnGap(columnGap); - return body; } /** 1.11 +46 -2 xml-fop/src/java/org/apache/fop/layoutmgr/PageLayoutManager.java Index: PageLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageLayoutManager.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- PageLayoutManager.java 27 Aug 2003 01:51:06 -0000 1.10 +++ PageLayoutManager.java 27 Aug 2003 15:33:59 -0000 1.11 @@ -83,6 +83,7 @@ import org.apache.fop.fo.properties.CommonBorderAndPadding; import org.apache.fop.fo.properties.CommonMarginBlock; import org.apache.fop.fo.properties.Constants; +import org.apache.fop.fo.properties.Overflow; import java.util.ArrayList; import java.util.List; @@ -785,7 +786,11 @@ regenum.hasNext();) { Region r = (Region)regenum.next(); RegionViewport rvp = makeRegionViewport(r, reldims, pageCTM); - rvp.setRegion(r.makeRegionReferenceArea(rvp.getViewArea())); + if (r.getRegionAreaClass() == RegionReference.BODY) { + rvp.setRegion(makeRegionBodyReferenceArea(r, rvp.getViewArea())); + } else { + rvp.setRegion(makeRegionReferenceArea(r, rvp.getViewArea())); + } page.setRegion(r.getRegionAreaClass(), rvp); if (r.getRegionAreaClass() == RegionReference.BODY) { bHasBody = true; @@ -831,5 +836,44 @@ TraitSetter.addBackground(rv, bProps); } -} + /** + * Override the inherited method. + * @see org.apache.fop.fo.pagination.Region#makeRegionReferenceArea(Rectangle2D) + */ + public RegionReference makeRegionBodyReferenceArea(Region r, + Rectangle2D absRegVPRect) { + // Should set some column stuff here I think, or put it elsewhere + BodyRegion body = new BodyRegion(); + r.setRegionPosition(body, absRegVPRect); + int columnCount = + r.properties.get("column-count").getNumber().intValue(); + if ((columnCount > 1) && (r.overflow == Overflow.SCROLL)) { + // recover by setting 'column-count' to 1. This is allowed but + // not required by the spec. + getLogger().error("Setting 'column-count' to 1 because " + + "'overflow' is set to 'scroll'"); + columnCount = 1; + } + body.setColumnCount(columnCount); + + int columnGap = + r.properties.get("column-gap").getLength().getValue(); + body.setColumnGap(columnGap); + return body; + } + /** + * Create the region reference area for this region master. + * @param absRegVPRect The region viewport rectangle is "absolute" coordinates + * where x=distance from left, y=distance from bottom, width=right-left + * height=top-bottom + * @return a new region reference area + */ + public RegionReference makeRegionReferenceArea(Region r, + Rectangle2D absRegVPRect) { + RegionReference rr = new RegionReference(r.getRegionAreaClass()); + r.setRegionPosition(rr, absRegVPRect); + return rr; + } + +}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]