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]