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]

Reply via email to