private String regionName;
/** Holds the overflow attribute */
- protected int overflow;
+ public int overflow;
/** Holds the writing mode */
protected int wm;
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
* @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));
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;
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;
- }
-
/**
* This is a hook for an FOTreeVisitor subclass to be able to access
* this object.
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;
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;
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;
+ }
+
+}