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 gm...@apache.org on 2005/05/01 00:57:08 UTC

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

gmazza      2005/04/30 15:57:08

  Modified:    src/java/org/apache/fop/layoutmgr Tag:
                        Temp_KnuthStylePageBreaking
                        PageSequenceLayoutManager.java
                        LayoutManagerMapping.java LayoutManagerMaker.java
               src/java/org/apache/fop/area Tag:
                        Temp_KnuthStylePageBreaking AreaTreeHandler.java
  Log:
  -- Modified the PSLM constructor and mapping Maker to take an
  AreaTreeHandler object.  The Maker also returns a PSLM object to allow
  for future detachment of PSLM from increasingly ill-fitting
  AbstractLayoutManager and/or LayoutManager.
  
  -- Removed areaTreeModel instance variable from PSLM hopefully
  to increase code comprehension (better clarifies that the
  ATM is owned by the ATH.)
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.50.2.21 +40 -36    xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
  
  Index: PageSequenceLayoutManager.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java,v
  retrieving revision 1.50.2.20
  retrieving revision 1.50.2.21
  diff -u -r1.50.2.20 -r1.50.2.21
  --- PageSequenceLayoutManager.java	30 Apr 2005 05:14:08 -0000	1.50.2.20
  +++ PageSequenceLayoutManager.java	30 Apr 2005 22:57:08 -0000	1.50.2.21
  @@ -43,11 +43,37 @@
   import java.util.List;
   
   /**
  - * LayoutManager for a PageSequence.
  + * LayoutManager for a PageSequence.  This class is instantiated by
  + * area.AreaTreeHandler for each fo:page-sequence found in the
  + * input document.
    */
   public class PageSequenceLayoutManager extends AbstractLayoutManager {
  +
  +    /** 
  +     * AreaTreeHandler which activates the PSLM and controls
  +     * the rendering of its pages.
  +     */
  +    private AreaTreeHandler areaTreeHandler;
  +
  +    /** 
  +     * fo:page-sequence formatting object being
  +     * processed by this class
  +     */
       private PageSequence pageSeq;
   
  +    /** 
  +     * Current page-viewport-area being filled by
  +     * the PSLM.
  +     */
  +    private PageViewport curPV = null;
  +
  +    /**
  +     * Zero-based index of column (Normal Flow) in span (of the PV) 
  +     * being filled.  See XSL Rec description of fo:region-body 
  +     * and fop.Area package classes for more information. 
  +     */
  +    private int curFlowIdx = -1;
  +
       /*
       private static class BlockBreakPosition extends LeafPosition {
           protected BreakPoss breakps;
  @@ -61,22 +87,6 @@
       private int startPageNum = 0;
       private int currentPageNum = 0;
   
  -    /** Current page-viewport-area being filled. */
  -    private PageViewport curPV = null;
  -
  -    /** Zero-based index of column (Normal Flow) in span being filled. */
  -    private int curFlowIdx = -1;
  -
  -    /** 
  -     * AreaTreeHandler which activates this PSLM.
  -     */
  -    private AreaTreeHandler areaTreeHandler;
  -
  -    /** 
  -     * AreaTreeModel that this PSLM sends pages to.
  -     */
  -    private AreaTreeModel areaTreeModel;
  -
       /**
        * The single FlowLayoutManager object, which processes
        * the single fo:flow of the fo:page-sequence
  @@ -90,23 +100,15 @@
       //private HashMap staticContentLMs = new HashMap(4);
   
       /**
  -     * Constructor - activated by AreaTreeHandler for each
  -     * fo:page-sequence in the input FO stream
  +     * Constructor
        *
  -     * @param pageSeq the page-sequence formatting object
  -     */
  -    public PageSequenceLayoutManager(PageSequence pageSeq) {
  -        super(pageSeq);
  -        this.pageSeq = pageSeq;
  -    }
  -
  -    /**
  -     * Set the AreaTreeHandler
  -     * @param areaTreeHandler the area tree handler object
  +     * @param ath the area tree handler object
  +     * @param pseq fo:page-sequence to process
        */
  -    public void setAreaTreeHandler(AreaTreeHandler areaTreeHandler) {
  -        this.areaTreeHandler = areaTreeHandler;
  -        areaTreeModel = areaTreeHandler.getAreaTreeModel();
  +    public PageSequenceLayoutManager(AreaTreeHandler ath, PageSequence pseq) {
  +        super(pseq);
  +        this.areaTreeHandler = ath;
  +        this.pageSeq = pseq;
       }
   
       /**
  @@ -134,7 +136,7 @@
               title = (LineArea) clm.getParentArea(null); // can improve
           }
   
  -        areaTreeModel.startPageSequence(title);
  +        areaTreeHandler.getAreaTreeModel().startPageSequence(title);
           log.debug("Starting layout");
   
           curPV = makeNewPage(false, true, false);
  @@ -342,6 +344,8 @@
        * @return the layout manager for the marker contents
        */
       public Marker retrieveMarker(String name, int pos, int boundary) {
  +        AreaTreeModel areaTreeModel = areaTreeHandler.getAreaTreeModel();
  +        
           // get marker from the current markers on area tree
           Marker mark = (Marker)curPV.getMarker(name, pos);
           if (mark == null && boundary != EN_PAGE) {
  @@ -424,7 +428,7 @@
           if (sc == null) {
               return;
           }
  -        
  +
           RegionViewport rv = curPV.getPage().getRegionViewport(regionID);
           StaticContentLayoutManager lm;
           lm = (StaticContentLayoutManager)
  @@ -462,7 +466,7 @@
           layoutSideRegion(FO_REGION_START);
           layoutSideRegion(FO_REGION_END);
           // Queue for ID resolution and rendering
  -        areaTreeModel.addPage(curPV);
  +        areaTreeHandler.getAreaTreeModel().addPage(curPV);
           log.debug("page finished: " + curPV.getPageNumberString() + ", current num: " + currentPageNum);
           curPV = null;
           curFlowIdx = -1;
  
  
  
  1.7.2.3   +7 -8      xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
  
  Index: LayoutManagerMapping.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java,v
  retrieving revision 1.7.2.2
  retrieving revision 1.7.2.3
  diff -u -r1.7.2.2 -r1.7.2.3
  --- LayoutManagerMapping.java	24 Apr 2005 23:54:34 -0000	1.7.2.2
  +++ LayoutManagerMapping.java	30 Apr 2005 22:57:08 -0000	1.7.2.3
  @@ -58,6 +58,7 @@
   import org.apache.fop.fo.pagination.PageSequence;
   import org.apache.fop.fo.pagination.StaticContent;
   import org.apache.fop.fo.pagination.Title;
  +import org.apache.fop.area.AreaTreeHandler;
   
   import org.apache.fop.layoutmgr.list.ListBlockLayoutManager;
   import org.apache.fop.layoutmgr.list.ListItemLayoutManager;
  @@ -109,7 +110,6 @@
           makers.put(PageNumber.class, new PageNumberLayoutManagerMaker());
           makers.put(PageNumberCitation.class,
                      new PageNumberCitationLayoutManagerMaker());
  -        makers.put(PageSequence.class, new PageSequenceLayoutManagerMaker());
           makers.put(Table.class, new TableLayoutManagerMaker());
           makers.put(TableBody.class, new /*TableBodyLayoutManager*/Maker());
           makers.put(TableColumn.class, new /*TableColumnLayoutManager*/Maker());
  @@ -153,6 +153,11 @@
           return (LayoutManager) lms.get(0);
       }
   
  +    public PageSequenceLayoutManager makePageSequenceLayoutManager(
  +        AreaTreeHandler ath, PageSequence ps) {
  +        return new PageSequenceLayoutManager(ath, ps);
  +    }
  +
       public static class Maker {
           public void make(FONode node, List lms) {
               // no layout manager
  @@ -301,12 +306,6 @@
            }
       }
   
  -    public static class PageSequenceLayoutManagerMaker extends Maker {
  -         public void make(FONode node, List lms) {
  -             lms.add(new PageSequenceLayoutManager((PageSequence) node));
  -         }
  -    }
  -
       public static class TableLayoutManagerMaker extends Maker {
           
           /*
  
  
  
  1.2.2.2   +12 -1     xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMaker.java
  
  Index: LayoutManagerMaker.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMaker.java,v
  retrieving revision 1.2.2.1
  retrieving revision 1.2.2.2
  diff -u -r1.2.2.1 -r1.2.2.2
  --- LayoutManagerMaker.java	24 Apr 2005 23:54:34 -0000	1.2.2.1
  +++ LayoutManagerMaker.java	30 Apr 2005 22:57:08 -0000	1.2.2.2
  @@ -19,6 +19,8 @@
   
   import java.util.List;
   import org.apache.fop.fo.FONode;
  +import org.apache.fop.fo.pagination.PageSequence;
  +import org.apache.fop.area.AreaTreeHandler;
   
   
   /**
  @@ -44,5 +46,14 @@
        */
       public LayoutManager makeLayoutManager(FONode node);
   
  +    /**
  +     * Make a PageSequenceLayoutManager object.
  +     * @param ath the AreaTreeHandler object the PSLM interacts with
  +     * @param ps the fo:page-sequence object this PSLM will process
  +     * @return The created PageSequenceLayoutManager object
  +     */
  +    public PageSequenceLayoutManager makePageSequenceLayoutManager(
  +        AreaTreeHandler ath, PageSequence ps);
  +
   }
   
  
  
  
  No                   revision
  No                   revision
  1.34.2.2  +4 -4      xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java
  
  Index: AreaTreeHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java,v
  retrieving revision 1.34.2.1
  retrieving revision 1.34.2.2
  diff -u -r1.34.2.1 -r1.34.2.2
  --- AreaTreeHandler.java	24 Apr 2005 23:54:34 -0000	1.34.2.1
  +++ AreaTreeHandler.java	30 Apr 2005 22:57:08 -0000	1.34.2.2
  @@ -230,9 +230,9 @@
           // If no main flow, nothing to layout!
           if (pageSequence.getMainFlow() != null) {
               PageSequenceLayoutManager pageSLM;
  -            pageSLM = (PageSequenceLayoutManager)
  -                getLayoutManagerMaker().makeLayoutManager(pageSequence);
  -            pageSLM.setAreaTreeHandler(this);
  +            pageSLM =
  +                getLayoutManagerMaker().makePageSequenceLayoutManager(this,
  +                    pageSequence);
               pageSLM.activateLayout();
           }
       }
  
  
  

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