klease      01/11/09 14:12:34

  Added:       src/org/apache/fop/fo/pagination RegionBA.java RegionSE.java
                        RegionBASE.java
  Log:
  Base classes for before/after, start/end Region
  
  Revision  Changes    Path
  1.1                  xml-fop/src/org/apache/fop/fo/pagination/RegionBA.java
  
  Index: RegionBA.java
  ===================================================================
  /*
   * $Id: RegionBA.java,v 1.1 2001/11/09 22:12:34 klease Exp $
   * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
   * For details on use and redistribution please refer to the
   * LICENSE file included with these sources.
   */
  
  package org.apache.fop.fo.pagination;
  
  // FOP
  import org.apache.fop.fo.*;
  import org.apache.fop.apps.FOPException;
  import org.apache.fop.fo.properties.Precedence;
  
  import java.awt.Rectangle;
  
  public abstract class RegionBA extends RegionBASE {
  
      private boolean bPrecedence;
  
      protected RegionBA(FONode parent) {
          super(parent);
      }
  
      boolean getPrecedence() {
          return bPrecedence;
      }
  
      public void end() {
          bPrecedence =
            (this.properties.get("precedence").getEnum()==Precedence.TRUE);
      }
  
      /**
       * Adjust the viewport reference rectangle for a region as a function
       * of precedence.
       * If precedence is false on a before or after region, its
       * inline-progression-dimension is limited by the extent of the start
       * and end regions if they are present.
       */
      protected void adjustIPD(Rectangle vpRect) {
        int xoff = 0;
        Region start = getSiblingRegion(Region.START);
        if (start != null) {
            xoff = start.getExtent();
            vpRect.translate(xoff, 0);
        }
        Region end =getSiblingRegion(Region.END);
        if (end != null) {
            xoff += end.getExtent();
        }
        if (xoff > 0) {
            vpRect.grow(-xoff,0);
        }
      }
  }
  
  
  
  1.1                  xml-fop/src/org/apache/fop/fo/pagination/RegionSE.java
  
  Index: RegionSE.java
  ===================================================================
  /*
   * $Id: RegionSE.java,v 1.1 2001/11/09 22:12:34 klease Exp $
   * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
   * For details on use and redistribution please refer to the
   * LICENSE file included with these sources.
   */
  
  package org.apache.fop.fo.pagination;
  
  
  import org.apache.fop.fo.*;
  import org.apache.fop.apps.FOPException;
  
  import java.awt.Rectangle;
  
  public abstract class RegionSE extends RegionBASE {
  
      protected RegionSE(FONode parent) {
          super(parent);
      }
  
      /**
       * Adjust the viewport reference rectangle for a region as a function
       * of precedence.
       * If  before and after have precedence = true, the start and end
       * regions only go to the limits of their extents, otherwise
       * they extend in the BPD to the page reference rectangle
       * diminish by extend of start and end if present.
       */
      protected void adjustIPD(Rectangle refRect) {
        int yoff = 0;
        Region before = getSiblingRegion(Region.BEFORE);
        if (before != null && before.getPrecedence()) {
            yoff = before.getExtent();
            refRect.translate(0, yoff);
        }
        Region after = getSiblingRegion(Region.AFTER);
        if (after != null && after.getPrecedence()) {
            yoff += after.getExtent();
        }
        if (yoff > 0) {
            refRect.grow(0,-yoff);
        }
      }
  }
  
  
  
  1.1                  xml-fop/src/org/apache/fop/fo/pagination/RegionBASE.java
  
  Index: RegionBASE.java
  ===================================================================
  /*
   * $Id: RegionBASE.java,v 1.1 2001/11/09 22:12:34 klease Exp $
   * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
   * For details on use and redistribution please refer to the
   * LICENSE file included with these sources.
   */
  
  package org.apache.fop.fo.pagination;
  
  // FOP
  import org.apache.fop.fo.FONode;
  import org.apache.fop.fo.PropertyList;
  import org.apache.fop.apps.FOPException;
  
  /**
   * Base class for Before, After, Start and End regions (BASE).
   */
  public abstract class RegionBASE extends Region {
  
      private int extent;
  
      protected RegionBASE(FONode parent) {
          super(parent);
      }
  
      public void end() {
        // The problem with this is that it might not be known yet....
        // Supposing extent is calculated in terms of percentage
          this.extent = this.properties.get("extent").getLength().mvalue();
      }
  
      int getExtent() {
        return this.extent;
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to