]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
PSLM.getParentArea() consolidated into FLM's version; preLoadList()
authorGlen Mazza <gmazza@apache.org>
Sat, 14 May 2005 19:28:32 +0000 (19:28 +0000)
committerGlen Mazza <gmazza@apache.org>
Sat, 14 May 2005 19:28:32 +0000 (19:28 +0000)
preLoadNext() renamed to clearer createChildLMs()/createNextChildLMs().

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

src/java/org/apache/fop/layoutmgr/AbstractLayoutManager.java
src/java/org/apache/fop/layoutmgr/BlockLayoutManager.java
src/java/org/apache/fop/layoutmgr/ContentLayoutManager.java
src/java/org/apache/fop/layoutmgr/FlowLayoutManager.java
src/java/org/apache/fop/layoutmgr/LMiter.java
src/java/org/apache/fop/layoutmgr/LayoutManager.java
src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java

index 74b5bbfaf06e3d417df1b4117f201573ef0528b5..f1970446be76751578684066d1f863bb95ae4dee 100644 (file)
@@ -308,11 +308,12 @@ public abstract class AbstractLayoutManager implements LayoutManager, Constants
     }
 
     /**
-     * Convenience method: preload a number of child LMs
+     * Create the LM instances for the children of the
+     * formatting object being handled by this LM.
      * @param size the requested number of child LMs
      * @return the list with the preloaded child LMs
      */
-    protected List preLoadList(int size) {
+    protected List createChildLMs(int size) {
         if (fobjIter == null) {
             return null;
         }
@@ -349,10 +350,10 @@ public abstract class AbstractLayoutManager implements LayoutManager, Constants
     }  
     
     /**
-     * @see org.apache.fop.layoutmgr.LayoutManager#preLoadNext
+     * @see org.apache.fop.layoutmgr.LayoutManager#createNextChildLMs
      */
-    public boolean preLoadNext(int pos) {
-        List newLMs = preLoadList(pos + 1 - childLMs.size());
+    public boolean createNextChildLMs(int pos) {
+        List newLMs = createChildLMs(pos + 1 - childLMs.size());
         addChildLMs(newLMs);
         return pos < childLMs.size();
     }
index 5334bab97c876df818b517177bfce3078ff9ac84..4f194b924eb3663903701a73af2d4292fdc8cc6b 100644 (file)
@@ -114,7 +114,7 @@ public class BlockLayoutManager extends BlockStackingLayoutManager {
      * This iterator creates and holds the complete list
      * of child LMs.
      * It uses fobjIter as its base iterator.
-     * Block LM's preLoadNext uses this iterator
+     * Block LM's createNextChildLMs uses this iterator
      * as its base iterator.
      */
     protected class ProxyLMiter extends LMiter {
@@ -125,11 +125,11 @@ public class BlockLayoutManager extends BlockStackingLayoutManager {
         }
 
         public boolean hasNext() {
-            return (curPos < listLMs.size()) ? true : preLoadNext(curPos);
+            return (curPos < listLMs.size()) ? true : createNextChildLMs(curPos);
         }
 
-        protected boolean preLoadNext(int pos) {
-            List newLMs = preLoadList(pos + 1 - listLMs.size());
+        protected boolean createNextChildLMs(int pos) {
+            List newLMs = createChildLMs(pos + 1 - listLMs.size());
             if (newLMs != null) {
                 listLMs.addAll(newLMs);
             }
@@ -138,9 +138,9 @@ public class BlockLayoutManager extends BlockStackingLayoutManager {
     }
 
     /**
-     * @see org.apache.fop.layoutmgr.LayoutManager#preLoadNext
+     * @see org.apache.fop.layoutmgr.LayoutManager#createNextChildLMs
      */
-    public boolean preLoadNext(int pos) {
+    public boolean createNextChildLMs(int pos) {
 
         while (proxyLMiter.hasNext()) {
             LayoutManager lm = (LayoutManager) proxyLMiter.next();
index 626532fa44bf8af9a429cc505b6b9f0b7fb468f1..c1571f0713ecc903065d63dc6ebdf95ee8e2236c 100644 (file)
@@ -242,9 +242,9 @@ public class ContentLayoutManager implements InlineLevelLayoutManager {
             Position bp2) { }
 
     /**
-     * @see org.apache.fop.layoutmgr.LayoutManager#preLoadNext
+     * @see org.apache.fop.layoutmgr.LayoutManager#createNextChildLMs
      */
-    public boolean preLoadNext(int pos) {
+    public boolean createNextChildLMs(int pos) {
         return false;
     }
 
index 7a8386dd2800412dcdc513cfaea5aa399ac52faa..08b29e21181289623b3ac915cf6f6fb88e6819c8 100644 (file)
@@ -424,8 +424,20 @@ public class FlowLayoutManager extends BlockStackingLayoutManager
      * @see org.apache.fop.layoutmgr.LayoutManager#getParentArea(Area)
      */
     public Area getParentArea(Area childArea) {
-        // Get an area from the Page
-        BlockParent parentArea = (BlockParent)parentLM.getParentArea(childArea);
+        BlockParent parentArea = null;
+        int aclass = childArea.getAreaClass();
+        
+        if (aclass == Area.CLASS_NORMAL) {
+            parentArea = getCurrentPV().getCurrentFlow();
+        } else if (aclass == Area.CLASS_BEFORE_FLOAT) {
+            parentArea = getCurrentPV().getBodyRegion().getBeforeFloat();
+        } else if (aclass == Area.CLASS_FOOTNOTE) {
+            parentArea = getCurrentPV().getBodyRegion().getFootnote();
+        } else {
+            throw new IllegalStateException("(internal error) Invalid " +
+                    "area class (" + aclass + ") requested.");
+        }
+        
         this.currentAreas[parentArea.getAreaClass()] = parentArea;
         setCurrentArea(parentArea);
         return parentArea;
index 789e1dc50f279b93191e9c29e5d08209b52ab99b..776ff89bf9cb528045fb2b0f386e9322bf7cae3a 100644 (file)
@@ -36,7 +36,7 @@ public class LMiter implements ListIterator {
     }
 
     public boolean hasNext() {
-        return (curPos < listLMs.size()) ? true : lp.preLoadNext(curPos);
+        return (curPos < listLMs.size()) ? true : lp.createNextChildLMs(curPos);
     }
 
     public boolean hasPrevious() {
index 6c3187117b36c0d41aaa96452460f9dc319186ec..84a53cf64046266bc0e4f8af2ae4cb9d48bd09f9 100644 (file)
@@ -159,11 +159,11 @@ public interface LayoutManager {
     void addAreas(PositionIterator posIter, LayoutContext context);
 
     /**
-     * Load next child LMs, up to child LM index pos
+     * Create more child LMs of the parent, up to child LM index pos
      * @param pos index up to which child LMs are requested
-     * @return if requested index does exist
+     * @return true if requested index does exist
      */
-    boolean preLoadNext(int pos);
+    boolean createNextChildLMs(int pos);
 
     /**
      * @return the list of child LMs
index ad9ccab691ba6bf317fc686326c8a4bfe33d8c6c..7b1cd4e0103bc58cf1eb90a37b50856d263d12fc 100644 (file)
@@ -22,7 +22,6 @@ import org.apache.fop.apps.FOPException;
 
 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.LineArea;
 import org.apache.fop.area.RegionViewport;
@@ -430,7 +429,7 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         RegionViewport rv = curPV.getPage().getRegionViewport(regionID);
         StaticContentLayoutManager lm;
         lm = (StaticContentLayoutManager)
-            areaTreeHandler.getLayoutManagerMaker().makeLayoutManager(sc);
+            getLayoutManagerMaker().makeLayoutManager(sc);
         lm.setTargetRegion(rv.getRegionReference());
         lm.setParent(this);       
         lm.doLayout();
@@ -450,29 +449,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
         curPV = null;
     }
     
-    /**
-     * This is called from FlowLayoutManager when it needs to start
-     * a new flow container (while generating areas).
-     *
-     * @param childArea The area for which a container is needed. It must be
-     * some kind of block-level area. It must have area-class, break-before
-     * and span properties set.
-     * @return the parent area
-     */
-    public Area getParentArea(Area childArea) {
-        int aclass = childArea.getAreaClass();
-
-        if (aclass == Area.CLASS_NORMAL) {
-            return curPV.getCurrentFlow();
-        } else if (aclass == Area.CLASS_BEFORE_FLOAT) {
-            return curPV.getBodyRegion().getBeforeFloat();
-        } else if (aclass == Area.CLASS_FOOTNOTE) {
-            return curPV.getBodyRegion().getFootnote();
-        }
-        // todo!!! other area classes (side-float, absolute, fixed)
-        return null;
-    }
-
     /**
      * Depending on the kind of break condition, move to next column
      * or page. May need to make an empty page if next page would