]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
More simplifications to PSLM.
authorGlen Mazza <gmazza@apache.org>
Sat, 12 Mar 2005 02:14:39 +0000 (02:14 +0000)
committerGlen Mazza <gmazza@apache.org>
Sat, 12 Mar 2005 02:14:39 +0000 (02:14 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198485 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/area/PageViewport.java
src/java/org/apache/fop/area/Span.java
src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java

index 78f478b0922ac51cecf68aa91f4cad946df39881..48c9dd732f285583aab4a036dc447083261fa183 100644 (file)
@@ -80,6 +80,15 @@ public class PageViewport implements Resolvable, Cloneable {
         viewArea = bounds;
     }
 
+    /**
+     * Convenience method to get BodyRegion of this PageViewport
+     * @return BodyRegion object
+     */
+    public BodyRegion getBodyRegion() {
+        return (BodyRegion)
+            getPage().getRegionViewport(Constants.FO_REGION_BODY).getRegion();
+    }    
+
     /**
      * Set if this viewport should clip.
      * @param c true if this viewport should clip
index 926e9d05b3e80cea0482e1e4c3688e10fc44a7ce..c2dc267c793491447f8744347a1b6b5fbf605fca 100644 (file)
@@ -45,15 +45,6 @@ public class Span extends Area {
         addTrait(Trait.IS_REFERENCE_AREA, Boolean.TRUE);
     }
 
-    /**
-     * Add a normal-flow-reference-area to this span-reference-area.
-     *
-     * @param flow the normal-flow-reference-area to add
-     */
-    public void addNormalFlow(NormalFlow flow) {
-        flowAreas.add(flow);
-    }
-
     /**
      * Create a new normal flow and add it to this span area
      *
index a54b0b15d7d3e940923c20540e23c309756c43d4..1c5948e342b96e3c250366d533e81410e6dfbc71 100644 (file)
@@ -81,9 +81,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
     /** Current page being worked on. */
     private PageViewport curPage;
 
-    /** Body region of the current page */
-    private BodyRegion curBody;
-
     /** Current span being filled */
     private Span curSpan;
 
@@ -480,14 +477,37 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         if (log.isDebugEnabled()) {
             log.debug("[" + curPage.getPageNumberString() + "]");
         }
-        RegionViewport rv = curPage.getPage().getRegionViewport(
-                    FO_REGION_BODY);
-        curBody = (BodyRegion) rv.getRegion();
-        flowBPD = (int) curBody.getBPD();
+
+        flowBPD = (int) curPage.getBodyRegion().getBPD();
         createSpan(1); // todo determine actual # of NormalFlows needed
         return curPage;
     }
 
+    private void createSpan(int numCols) {
+        // check number of columns (= all in Body or 1)
+        // If already have a span, get its size and position (as MinMaxOpt)
+        // This determines the position of the new span area
+        // Attention: space calculation between the span areas.
+
+        //MinOptMax newpos ;
+        //if (curSpan != null) {
+        //newpos = curSpan.getPosition(BPD);
+        //newpos.add(curSpan.getDimension(BPD));
+        //}
+        //else newpos = new MinOptMax();
+        curSpan = new Span(numCols);
+        // get Width or Height as IPD for span
+
+        RegionViewport rv = curPage.getPage().getRegionViewport(FO_REGION_BODY);
+        int ipdWidth = (int) rv.getRegion().getIPD() -
+            rv.getBorderAndPaddingWidthStart() - rv.getBorderAndPaddingWidthEnd();
+
+        curSpan.setIPD(ipdWidth);
+        //curSpan.setPosition(BPD, newpos);
+        curPage.getBodyRegion().getMainReference().addSpan(curSpan);
+        curFlow = curSpan.addNewNormalFlow();
+    }
+
     private void layoutStaticContent(Region region) {
         if (region == null) {
             return;
@@ -532,7 +552,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
 
     private void finishPage() {
         if (curPage == null) {
-            curBody = null;
             curSpan = null;
             curFlow = null;
             return;
@@ -546,7 +565,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         // Queue for ID resolution and rendering
         areaTreeModel.addPage(curPage);
         curPage = null;
-        curBody = null;
         curSpan = null;
         curFlow = null;
     }
@@ -583,7 +601,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
             int numCols = 1;
             if (span == Constants.EN_ALL) {
                 // Assume the number of columns is stored on the curBody object.
-                //numCols = curBody.getProperty(NUMBER_OF_COLUMNS);
+                //numCols = curPage.getBodyRegion().getProperty(NUMBER_OF_COLUMNS);
             }
             if (curSpan == null) {
                 bNeedSpan = true;
@@ -607,17 +625,17 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
             }
             // Now handle different kinds of areas
             if (aclass == Area.CLASS_BEFORE_FLOAT) {
-                BeforeFloat bf = curBody.getBeforeFloat();
+                BeforeFloat bf = curPage.getBodyRegion().getBeforeFloat();
                 if (bf == null) {
                     bf = new BeforeFloat();
-                    curBody.setBeforeFloat(bf);
+                    curPage.getBodyRegion().setBeforeFloat(bf);
                 }
                 return bf;
             } else if (aclass == Area.CLASS_FOOTNOTE) {
-                Footnote fn = curBody.getFootnote();
+                Footnote fn = curPage.getBodyRegion().getFootnote();
                 if (fn == null) {
                     fn = new Footnote();
-                    curBody.setFootnote(fn);
+                    curPage.getBodyRegion().setFootnote(fn);
                 }
                 return fn;
             }
@@ -699,31 +717,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         }
     }
 
-    private void createSpan(int numCols) {
-        // check number of columns (= all in Body or 1)
-        // If already have a span, get its size and position (as MinMaxOpt)
-        // This determines the position of the new span area
-        // Attention: space calculation between the span areas.
-
-        //MinOptMax newpos ;
-        //if (curSpan != null) {
-        //newpos = curSpan.getPosition(BPD);
-        //newpos.add(curSpan.getDimension(BPD));
-        //}
-        //else newpos = new MinOptMax();
-        curSpan = new Span(numCols);
-        // get Width or Height as IPD for span
-
-        RegionViewport rv = curPage.getPage().getRegionViewport(FO_REGION_BODY);
-        int ipdWidth = (int) rv.getRegion().getIPD() -
-            rv.getBorderAndPaddingWidthStart() - rv.getBorderAndPaddingWidthEnd();
-
-        curSpan.setIPD(ipdWidth);
-        //curSpan.setPosition(BPD, newpos);
-        curBody.getMainReference().addSpan(curSpan);
-        curFlow = curSpan.addNewNormalFlow();
-    }
-
     private PageViewport createPageAreas(SimplePageMaster spm) {
         int pageWidth = spm.getPageWidth().getValue();
         int pageHeight = spm.getPageHeight().getValue();