jeremias 2005/01/24 06:03:14
Modified: src/java/org/apache/fop/layoutmgr
PageSequenceLayoutManager.java
Log:
is-reference-area and is-viewport-area traits
Revision Changes Path
1.23 +18 -4
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.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- PageSequenceLayoutManager.java 7 Jan 2005 07:55:47 -0000 1.22
+++ PageSequenceLayoutManager.java 24 Jan 2005 14:03:14 -0000 1.23
@@ -714,11 +714,14 @@
}
private void createBodyMainReferenceArea() {
- curBody.setMainReference(new MainReference());
+ MainReference mainRef = new MainReference();
+ mainRef.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
+ curBody.setMainReference(mainRef);
}
private Flow createFlow() {
curFlow = new Flow();
+ curFlow.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
curFlow.setIPD(curSpan.getIPD()); // adjust for columns
//curFlow.setBPD(100000);
// Set IPD and max BPD on the curFlow from curBody
@@ -739,6 +742,7 @@
//}
//else newpos = new MinOptMax();
curSpan = new Span(numCols);
+ curSpan.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
curSpanColumns = numCols;
// get Width or Height as IPD for span
@@ -831,9 +835,9 @@
for (Iterator regenum = spm.getRegions().values().iterator();
regenum.hasNext();) {
Region r = (Region)regenum.next();
- r.setLayoutDimension(PercentBase.BLOCK_IPD, pageWidth);
- r.setLayoutDimension(PercentBase.BLOCK_BPD, pageHeight);
RegionViewport rvp = makeRegionViewport(r, reldims, pageCTM);
+ r.setLayoutDimension(PercentBase.BLOCK_IPD, rvp.getIPD());
+ r.setLayoutDimension(PercentBase.BLOCK_BPD, rvp.getBPD());
if (r.getNameId() == FO_REGION_BODY) {
rvp.setRegion(makeRegionBodyReferenceArea((RegionBody) r,
rvp.getViewArea()));
} else {
@@ -857,6 +861,14 @@
// Get the region viewport rectangle in absolute coords by
// transforming it using the page CTM
RegionViewport rv = new RegionViewport(absRegionRect);
+ rv.addTrait(Trait.IS_VIEWPORT_AREA, Boolean.TRUE);
+ if
(r.getCommonBorderPaddingBackground().getBPPaddingAndBorder(false) != 0
+ ||
r.getCommonBorderPaddingBackground().getBPPaddingAndBorder(false) != 0) {
+ log.error("Border and padding for a region must be '0'.");
+ //See 6.4.13 in XSL 1.0
+ }
+ rv.setBPD((int)relRegionRect.getHeight());
+ rv.setIPD((int)relRegionRect.getWidth());
setRegionViewportTraits(r, rv);
return rv;
}
@@ -878,6 +890,7 @@
Rectangle2D absRegVPRect) {
// Should set some column stuff here I think, or put it elsewhere
BodyRegion body = new BodyRegion();
+ body.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
setRegionPosition(r, body, absRegVPRect);
int columnCount = r.getColumnCount();
if ((columnCount > 1) && (r.getOverflow() == EN_SCROLL)) {
@@ -904,6 +917,7 @@
private RegionReference makeRegionReferenceArea(Region r,
Rectangle2D absRegVPRect) {
RegionReference rr = new RegionReference(r.getNameId());
+ rr.addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
setRegionPosition(r, rr, absRegVPRect);
return rr;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]