You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by pb...@apache.org on 2004/06/06 19:07:26 UTC

cvs commit: xml-fop/src/java/org/apache/fop/area Area.java

pbwest      2004/06/06 10:07:26

  Modified:    src/java/org/apache/fop/area Tag: FOP_0-20-0_Alt-Design
                        Area.java
  Log:
  Changed distances from float to double.
  Only content constructed directly;
  padding, borders and spaces recovered through content;
  changed types of these from Rectangle2D to specific instance types of AreaFrame or ContentRectangle;
  removed setters for these.
  Added translation AffineTransform with accessors.
  Only content constructed directly;
  padding, borders and spaces recovered through content;
  changed types of these from Rectangle2D to specific instance types of AreaFrame or ContentRectangle;
  removed setters for these.
  Added translation AffineTransform with accessors.
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.16  +67 -51    xml-fop/src/java/org/apache/fop/area/Area.java
  
  Index: Area.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/Area.java,v
  retrieving revision 1.1.2.15
  retrieving revision 1.1.2.16
  diff -u -r1.1.2.15 -r1.1.2.16
  --- Area.java	1 Jun 2004 06:27:05 -0000	1.1.2.15
  +++ Area.java	6 Jun 2004 17:07:26 -0000	1.1.2.16
  @@ -18,7 +18,7 @@
    */
   package org.apache.fop.area;
   
  -import java.awt.geom.Rectangle2D;
  +import java.awt.geom.AffineTransform;
   import java.util.ArrayList;
   
   import org.apache.fop.datastructs.Node;
  @@ -43,72 +43,88 @@
    */
   public class Area extends AreaNode implements Cloneable  {
   
  -    /** The total geometrical area covered by this <code>Area</code>, including
  -     * content rectangle, padding, borders and spaces.  The <code>width</code>
  -     * of this <code>Rectangle</code> is the <code>inline-progression-dimension
  -     * </code> of the area, and the <code>height</code> is the
  -     * <code>block-progression-dimension</code>.  */
  -    protected Rectangle2D space = new Rectangle2D.Float();
  -    protected Rectangle2D border = null;
  -    protected Rectangle2D padding = null;
  -    protected Rectangle2D content = new Rectangle2D.Float();
  -    /** True if the the <code>writing-mode</code> of the content area is
  -     * horizontal */
  -    protected boolean contentIsHorizontal = true;
  -    /** True if the the <code>writing-mode</code> of the content area is
  -     * left-to-right */
  -    protected boolean contentLeftToRight = true;
  -
       /**
  -     * @return the border
  -     */
  -    public Rectangle2D getBorder() {
  -        return border;
  -    }
  +     * The total geometrical area covered by this <code>Area</code>, including
  +     * content rectangle, padding, borders and spaces or margins.  The
  +     * <code>width</code> of this <code>Rectangle</code> is the
  +     * <code>inline-progression-dimension</code> of the area, and the
  +     * <code>height</code> is the <code>block-progression-dimension</code>.
  +     * <p>The spaces are always implicitly defined with respect to the borders.
  +     * The only way in which individual margins/spaces can be derived is with
  +     * respect to the padding rectangle, so this rectangle is always associated
  +     * with a point offset to the top left corner of the padding rectangle. 
  +     * Note that spaces/margins are dynamic, in that they are frequently
  +     * adjusted or eliminated in the course of layout.
  +     * */
  +    protected SpacesRectangle spaces = null;
       /**
  -     * @param border to set
  +     * @return the space
        */
  -    public void setBorder(Rectangle2D border) {
  -        this.border = border;
  +    protected SpacesRectangle getSpaces() {
  +        return spaces;
       }
  -    /**
  -     * @return the content
  +    /** Geometrical area embraced by the border rectangle of this area.  Note
  +     * that borders may be collapsed.
        */
  -    public Rectangle2D getContent() {
  -        return content;
  -    }
  +    protected BorderRectangle borders = null;
       /**
  -     * @param content to set
  +     * @return the border
        */
  -    public void setContent(Rectangle2D content) {
  -        this.content = content;
  +    protected BorderRectangle getBorders() {
  +        return borders;
       }
  +    /** Geometrical area embraced by the padding rectangle of this area.
  +     * N.B. The background (if any) is rendered in the padding rectangle. */
  +    protected PaddingRectangle padding = null;
       /**
        * @return the padding
        */
  -    public Rectangle2D getPadding() {
  +    protected PaddingRectangle getPadding() {
           return padding;
       }
  +    /** Geometrical area embraced by the content rectangle of this area */
  +    protected ContentRectangle content = null;
       /**
  -     * @param padding to set
  -     */
  -    public void setPadding(Rectangle2D padding) {
  -        this.padding = padding;
  -    }
  -    /**
  -     * @return the space
  -     */
  -    public Rectangle2D getSpace() {
  -        return space;
  -    }
  -    /**
  -     * @param space to set
  +     * @return the content
        */
  -    public void setSpace(Rectangle2D space) {
  -        this.space = space;
  +    protected ContentRectangle getContent() {
  +        return content;
       }
   
  +    protected void setMargins(
  +    		double before, double after, double start, double end) {
  +        spaces.setBefore(before);
  +        spaces.setAfter(after);
  +        spaces.setStart(start);
  +        spaces.setEnd(end);
  +    }
  +    /** Translates this area into position in its parent area */
  +    protected AffineTransform translation = null;
  +	/**
  +	 * @return the translation
  +	 */
  +	protected AffineTransform getTranslation() {
  +		return translation;
  +	}
  +	/**
  +	 * @param translation to set
  +	 */
  +	protected void setTranslation(AffineTransform translation) {
  +		this.translation = translation;
  +	}
  +    /** True if the <code>writing-mode</code> of the content area is
  +     * horizontal */
  +    protected boolean contentIsHorizontal = true;
  +    /** True if the the <code>writing-mode</code> of the content area is
  +     * left-to-right */
  +    protected boolean contentLeftToRight = true;
  +
  +
       private void setup() {
  +        content = new ContentRectangle();
  +        padding = content.getPadding();
  +        borders = padding.getBorders();
  +        spaces = borders.getSpaces();
           try {
               contentIsHorizontal =
                   WritingMode.isHorizontal(generatedBy.getWritingMode());
  @@ -138,7 +154,7 @@
       }
   
       /**
  -     * Construct an <code>Area</code> which is the root of a tree, and is
  +     * Constructs an <code>Area</code> which is the root of a tree, and is
        * synchronized on itself
        * @param pageSeq through which this area was generated
        * @param generatedBy the given <code>FONode</code> generated this
  @@ -210,7 +226,7 @@
        * N.B. The method is synchronized only on this object.
        * @param pts <code>block-progression-dimension</code> to set, in points
        */
  -    public void setBPDimPts(float pts) {
  +    public void setBPDimPts(double pts) {
           synchronized (this) {
               // TODO - check this
               if (contentIsHorizontal) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org