]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
1.) More commenting, some simplifications in the Area classes and PSLM.
authorGlen Mazza <gmazza@apache.org>
Fri, 11 Mar 2005 07:23:43 +0000 (07:23 +0000)
committerGlen Mazza <gmazza@apache.org>
Fri, 11 Mar 2005 07:23:43 +0000 (07:23 +0000)
2.) Renamed Area.Flow to NormalFlow, uglier but more in conformance with the Recommendation (normal-flow-reference-area) and more specific/easier to understand.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198477 13f79535-47bb-0310-9956-ffa450edef68

13 files changed:
src/java/org/apache/fop/area/BeforeFloat.java
src/java/org/apache/fop/area/BodyRegion.java
src/java/org/apache/fop/area/Flow.java [deleted file]
src/java/org/apache/fop/area/Footnote.java
src/java/org/apache/fop/area/MainReference.java
src/java/org/apache/fop/area/NormalFlow.java [new file with mode: 0644]
src/java/org/apache/fop/area/Span.java
src/java/org/apache/fop/layoutmgr/LeaderLayoutManager.java
src/java/org/apache/fop/layoutmgr/LeafNodeLayoutManager.java
src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
src/java/org/apache/fop/layoutmgr/list/ListBlockLayoutManager.java
src/java/org/apache/fop/render/AbstractRenderer.java
src/java/org/apache/fop/render/xml/XMLRenderer.java

index d30b287e05d7dbe9cd2098162037a2a9abe0a9bf..7cd8ec617605d336414d79e05fd392f458136724 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,9 +19,9 @@
 package org.apache.fop.area;
 
 /**
- * The before float area.
- * This is used to place the before float areas.
+ * The before-float-reference-area optionally generated by an fo:region-body.
  * It has an optional separator and before float block children.
+ * See fo:region-body definition in the XSL Rec for more information.
  */
 public class BeforeFloat extends BlockParent {
     // this is an optional block area that will be rendered
index 785e25f5687b5b9cb81eaad4e43eda0ac9acc570..fbca171ce91f49b47144ff865e3e89f42f3c6fb8 100644 (file)
@@ -21,14 +21,15 @@ package org.apache.fop.area;
 import org.apache.fop.fo.Constants;
 
 /**
- * The body region area.
- * This area contains a main reference area and optionally a
- * before float and footnote area.
+ * This class is a container for all areas that may be generated by
+ * an fo:region-body.  It extends the RegionReference that is used
+ * directly by the other region classes.
+ * See fo:region-body definition in the XSL Rec for more information.
  */
 public class BodyRegion extends RegionReference {
-    private BeforeFloat beforeFloat;
-    private MainReference mainReference;
-    private Footnote footnote;
+    private BeforeFloat beforeFloat;  // optional
+    private MainReference mainReference; // mandatory
+    private Footnote footnote; // optional
     private int columnGap;
     private int columnCount;
 
diff --git a/src/java/org/apache/fop/area/Flow.java b/src/java/org/apache/fop/area/Flow.java
deleted file mode 100644 (file)
index e451292..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 1999-2004 The Apache Software Foundation.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-package org.apache.fop.area;
-
-/**
- * The normal flow reference area class.
- * This area contains a list of block areas from the flow.
- */
-public class Flow extends BlockParent {
-    // the list of blocks created from the flow
-    private int stacking = TB;
-
-    /**
-     * Constructor.
-     */
-    public Flow() {
-        addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
-    }
-}
-
index 2497c31014cff59adcb17f3bf191cfbb7734e35a..e1b0c453e9935372540599466e8b7baab391500e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,8 +21,9 @@ package org.apache.fop.area;
 // may combine with before float into a conditional area
 
 /**
- * Footnote reference area.
+ * The footnote-reference-area optionally generated by an fo:region-body.
  * This areas holds footnote areas and an optional separator area.
+ * See fo:region-body definition in the XSL Rec for more information.
  */
 public class Footnote extends BlockParent {
     private Block separator = null;
index 8dac9777fd68716c184a5bb6dc856832bd7fd16f..5274d49558ba28d3cdbbbcdfca652313250953f0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,8 +22,10 @@ import java.util.List;
 import java.util.Iterator;
 
 /**
- * The main body reference area.
- * This area that contains the flow via the span areas.
+ * The main-reference-area generated by an fo:region-body
+ * This object holds one or more span-reference-areas (block-areas
+ * stacked in the block progression direction)
+ * See fo:region-body definition in the XSL Rec for more information.
  */
 public class MainReference extends Area {
     private List spanAreas = new java.util.ArrayList();
@@ -69,7 +71,7 @@ public class MainReference extends Area {
                 for (Iterator spaniter = spanAreas.iterator(); spaniter.hasNext(); ) {
                     Span spanArea = (Span) spaniter.next();
                     for (int i = 0; i < spanArea.getColumnCount(); i++) {
-                        Flow flow = spanArea.getFlow(i);
+                        NormalFlow flow = spanArea.getNormalFlow(i);
                         if (flow != null) {
                             if (flow.getChildAreas() != null) {
                                 areaCount += flow.getChildAreas().size();
@@ -87,7 +89,7 @@ public class MainReference extends Area {
     /**
      * Get the column gap in millipoints.
      *
-     * @return the column gap in millioints
+     * @return the column gap in millipoints
      */
     public int getColumnGap() {
         return columnGap;
diff --git a/src/java/org/apache/fop/area/NormalFlow.java b/src/java/org/apache/fop/area/NormalFlow.java
new file mode 100644 (file)
index 0000000..32dfbc7
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright 1999-2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+package org.apache.fop.area;
+
+/**
+ * The normal-flow-reference-area class.
+ * Each span-reference-area contains one or more of these objects
+ * See fo:region-body definition in the XSL Rec for more information.
+ */
+public class NormalFlow extends BlockParent {
+    /**
+     * Constructor.
+     */
+    public NormalFlow() {
+        addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
+    }
+}
+
index ddad76d48726baac016bc56774f79d382116c743..926e9d05b3e80cea0482e1e4c3688e10fc44a7ce 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,14 +21,18 @@ package org.apache.fop.area;
 import java.util.List;
 
 /**
- * The span reference area.
- * This is a reference area block area with 0 border and padding
- * The span reference areas are stacked inside the main reference area.
+ * The span-reference-area.
+ * This is a block-area with 0 border and padding that is stacked
+ * within the main-reference-area
+ * This object holds one or more normal-flow-reference-area children
+ * based on the column-count trait in effect for this span.
+ * See fo:region-body definition in the XSL Rec for more information. 
  */
 public class Span extends Area {
     // the list of flow reference areas in this span area
     private List flowAreas;
     private int height;
+    private int columnCount;
 
     /**
      * Create a span area with the number of columns for this span area.
@@ -37,25 +41,26 @@ public class Span extends Area {
      */
     public Span(int cols) {
         flowAreas = new java.util.ArrayList(cols);
+        columnCount = cols;
         addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
     }
 
     /**
-     * Add a flow area to this span area.
+     * Add a normal-flow-reference-area to this span-reference-area.
      *
-     * @param flow the flow area to add
+     * @param flow the normal-flow-reference-area to add
      */
-    public void addFlow(Flow flow) {
+    public void addNormalFlow(NormalFlow flow) {
         flowAreas.add(flow);
     }
 
     /**
-     * Create a new flow and add it to this span area
+     * Create a new normal flow and add it to this span area
      *
-     * @return the newly made Flow object
+     * @return the newly made NormalFlow object
      */
-    public Flow addNewFlow() {
-        Flow newFlow = new Flow();
+    public NormalFlow addNewNormalFlow() {
+        NormalFlow newFlow = new NormalFlow();
         newFlow.setIPD(getIPD());
         flowAreas.add(newFlow);
         return newFlow;
@@ -64,9 +69,18 @@ public class Span extends Area {
     /**
      * Get the column count for this span area.
      *
-     * @return the number of columns in this span area
+     * @return the number of columns defined for this span area
      */
     public int getColumnCount() {
+        return columnCount;
+    }
+
+    /**
+     * Get the count of normal flows for this span area.
+     *
+     * @return the number of normal flows attached to this span
+     */
+    public int getNormalFlowCount() {
         return flowAreas.size();
     }
 
@@ -80,13 +94,13 @@ public class Span extends Area {
     }
 
     /**
-     * Get the flow area for a particular column.
+     * Get the normal flow area for a particular column.
      *
      * @param count the column number for the flow
      * @return the flow area for the requested column
      */
-    public Flow getFlow(int count) {
-        return (Flow) flowAreas.get(count);
+    public NormalFlow getNormalFlow(int columnNumber) {
+        return (NormalFlow) flowAreas.get(columnNumber);
     }
 
 }
index d5b4f7df9ac6acdea54866a93a3306b19cd1f086..8fef3f18e61e0e0ef8fcae9d4daf24478b640a2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
index 30eee8927e7b0e2babf30e6b5dbe67d8b90849af..e0feca999cf60f9d097463d8001de1778e942872 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
index 097163f45b14933e81a6d9c8e96dd9a771bb4db7..8d120e4553d65c44501f25240c0f63d408a44844 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.fop.area.AreaTreeHandler;
 import org.apache.fop.area.AreaTreeModel;
 import org.apache.fop.area.Area;
 import org.apache.fop.area.PageViewport;
-import org.apache.fop.area.Flow;
+import org.apache.fop.area.NormalFlow;
 import org.apache.fop.area.LineArea;
 import org.apache.fop.area.Page;
 import org.apache.fop.area.RegionViewport;
@@ -89,11 +89,8 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
     /** Current span being filled */
     private Span curSpan;
 
-    /** Number of columns in current span area. */
-    private int curSpanColumns;
-
-    /** Current flow-reference-area (column) being filled. */
-    private Flow curFlow;
+    /** Current normal-flow-reference-area being filled. */
+    private NormalFlow curFlow;
 
     private int flowBPD = 0;
     private int flowIPD = 0;
@@ -400,14 +397,14 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
             return;
         }
         if (childArea.getAreaClass() == Area.CLASS_NORMAL) {
-            placeFlowRefArea(childArea);
+            placeNormalFlowRefArea(childArea);
         } else {
              // todo: all the others!
         }
     }
 
     /**
-     * Place a FlowReferenceArea into the current span. The FlowLM is
+     * Place a normal-flow-reference-area into the current span. The FlowLM is
      * responsible for making sure that it will actually fit in the
      * current span area. In fact the area has already been added to the
      * current span, so we are just checking to see if the span is "full",
@@ -415,7 +412,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
      *
      * @param area the area to place
      */
-    protected void placeFlowRefArea(Area area) {
+    protected void placeNormalFlowRefArea(Area area) {
         // assert (curSpan != null);
         // assert (area == curFlow);
         // assert (curFlow == curSpan.getFlow(curSpan.getColumnCount()-1));
@@ -434,7 +431,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         //                   ":" + curSpan.getMaxBPD().min);
         /*if (area.getAllocationBPD().max >= curSpan.getMaxBPD().min) {
             // Consider it filled
-            if (curSpan.getColumnCount() == curSpanColumns) {
+            if (curSpan.getColumnCount() == curSpan.getNormalFlowCount()) {
                 finishPage();
             } else
                 curFlow = null; // Create new flow on next getParentArea()
@@ -588,9 +585,9 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
             if (curSpan == null) {
                 createBodyMainReferenceArea();
                 bNeedSpan = true;
-            } else if (numCols != curSpanColumns) {
+            } else if (numCols != curSpan.getNormalFlowCount()) {
                 // todo: BALANCE EXISTING COLUMNS
-                if (curSpanColumns > 1) {
+                if (curSpan.getNormalFlowCount() > 1) {
                     // balanceColumns();
                 }
                 bNeedSpan = true;
@@ -599,7 +596,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
                 // Make a new span and the first flow
                 createSpan(numCols);
             } else if (curFlow == null) {
-                curFlow = curSpan.addNewFlow();
+                curFlow = curSpan.addNewNormalFlow();
             }
             return curFlow;
         } else {
@@ -636,10 +633,10 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
      */
     private void handleBreak(int breakVal) {
         if (breakVal == Constants.EN_COLUMN) {
-            if (curSpan != null
-                    && curSpan.getColumnCount() != curSpanColumns) {
+            if (curSpan != null // TODO: change below to < or <=
+                    && curSpan.getNormalFlowCount() != curSpan.getColumnCount()) {
                 // Move to next column
-                curFlow = curSpan.addNewFlow();
+                curFlow = curSpan.addNewNormalFlow();
                 return;
             }
             // else need new page
@@ -717,7 +714,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         //}
         //else newpos = new MinOptMax();
         curSpan = new Span(numCols);
-        curSpanColumns = numCols;
         // get Width or Height as IPD for span
 
         RegionViewport rv = curPage.getPage().getRegionViewport(FO_REGION_BODY);
@@ -727,7 +723,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         curSpan.setIPD(ipdWidth);
         //curSpan.setPosition(BPD, newpos);
         curBody.getMainReference().addSpan(curSpan);
-        curFlow = curSpan.addNewFlow();
+        curFlow = curSpan.addNewNormalFlow();
     }
 
     private PageViewport createPageAreas(SimplePageMaster spm) {
index f9cfe5104f2be92813b888455c2123ef3c011b48..350676208e8eeafbd5de033a2e8ed142db451a08 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
index ab017e0079ecaba1f409a4d62860d052e2aaac02..2492ab129b1c6e8b8b5fc3c863774af81bbda7fe 100644 (file)
@@ -37,7 +37,7 @@ import org.apache.fop.area.Block;
 import org.apache.fop.area.BlockViewport;
 import org.apache.fop.area.BodyRegion;
 import org.apache.fop.area.CTM;
-import org.apache.fop.area.Flow;
+import org.apache.fop.area.NormalFlow;
 import org.apache.fop.area.Footnote;
 import org.apache.fop.area.LineArea;
 import org.apache.fop.area.MainReference;
@@ -380,7 +380,7 @@ public abstract class AbstractRenderer
                     - (span.getColumnCount() - 1) * mr.getColumnGap())
                     / span.getColumnCount() + mr.getColumnGap();
             for (int c = 0; c < span.getColumnCount(); c++) {
-                Flow flow = (Flow) span.getFlow(c);
+                NormalFlow flow = (NormalFlow) span.getNormalFlow(c);
 
                 renderFlow(flow);
                 currentIPPosition += offset;
@@ -395,7 +395,7 @@ public abstract class AbstractRenderer
      *
      * @param flow  The flow reference area
      */
-    protected void renderFlow(Flow flow) {
+    protected void renderFlow(NormalFlow flow) {
         // the normal flow reference area contains stacked blocks
         List blocks = flow.getChildAreas();
         if (blocks != null) {
index 4a2e54cf1c2845c0afaf822435b75e8283d44305..8fccab4bd21921d84ec0863eef8d81c84bb46e6f 100644 (file)
@@ -47,7 +47,7 @@ import org.apache.fop.area.BeforeFloat;
 import org.apache.fop.area.Block;
 import org.apache.fop.area.BlockViewport;
 import org.apache.fop.area.BodyRegion;
-import org.apache.fop.area.Flow;
+import org.apache.fop.area.NormalFlow;
 import org.apache.fop.area.Footnote;
 import org.apache.fop.area.LineArea;
 import org.apache.fop.area.MainReference;
@@ -445,7 +445,7 @@ public class XMLRenderer extends AbstractRenderer {
             addTraitAttributes(span);
             startElement("span", atts);
             for (int c = 0; c < span.getColumnCount(); c++) {
-                Flow flow = (Flow) span.getFlow(c);
+                NormalFlow flow = (NormalFlow) span.getNormalFlow(c);
 
                 renderFlow(flow);
             }
@@ -457,7 +457,7 @@ public class XMLRenderer extends AbstractRenderer {
     /**
      * @see org.apache.fop.render.AbstractRenderer#renderFlow(Flow)
      */
-    protected void renderFlow(Flow flow) {
+    protected void renderFlow(NormalFlow flow) {
         // the normal flow reference area contains stacked blocks
         atts.clear();
         addAreaAttributes(flow);