gmazza      2005/02/12 14:32:36

  Modified:    src/java/org/apache/fop/fo/pagination PageSequence.java
               src/java/org/apache/fop/layoutmgr
                        PageSequenceLayoutManager.java
  Log:
  Some cleanup -- moved getSimplePageMasterToUse() to PageSequence (logic
  is useful with other implementations of PSLM.)
  
  Revision  Changes    Path
  1.55      +17 -15    
xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java
  
  Index: PageSequence.java
  ===================================================================
  RCS file: 
/home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/PageSequence.java,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- PageSequence.java 6 Feb 2005 20:48:48 -0000       1.54
  +++ PageSequence.java 12 Feb 2005 22:32:36 -0000      1.55
  @@ -176,6 +176,8 @@
                   throw new ValidationException("master-reference '" + 
masterReference
                                          + "' for fo:page-sequence matches no"
                                          + " simple-page-master or 
page-sequence-master", locator);
  +            } else {
  +                pageSequenceMaster.reset();
               }
           }
   
  @@ -658,23 +660,23 @@
       }
   
       /**
  -     * Public accessor for getting the PageSequenceMaster (if any) to which 
this
  -     * PageSequence is attached.
  -     * @return the PageSequenceMaster to which this PageSequence is 
attached, or
  -     * null if there is none.
  +     * Public accessor for determining the page master to use for any given
  +     * page within this page sequence
  +     * @param pageCount = the page number of the page to be created
  +     * @param bIsFirstPage = indicator whether this page is the first page 
of the
  +     *      page sequence
  +     * @param bIsBlank = indicator whether the page will be blank
  +     * @return the SimplePageMaster to use for this page
        */
  -    public PageSequenceMaster getPageSequenceMaster() {
  -        return pageSequenceMaster;
  -    }
  +    public SimplePageMaster getSimplePageMasterToUse(int pageCount, boolean 
bIsFirstPage, 
  +        boolean bIsBlank) throws FOPException {
   
  -    /**
  -     * Public accessor for getting the SimplePageMaster (if any) to which 
this
  -     * PageSequence is attached.
  -     * @return the SimplePageeMaster to which this PageSequence is attached 
or
  -     * null if there is none.
  -     */
  -    public SimplePageMaster getSimplePageMaster() {
  -        return simplePageMaster;
  +        if (pageSequenceMaster == null) {
  +            return simplePageMaster;
  +        }
  +        boolean isOddPage = ((pageCount % 2) == 1);
  +        return pageSequenceMaster.getNextSimplePageMaster(isOddPage, 
  +            bIsFirstPage, bIsBlank);
       }
   
       /**
  
  
  
  1.32      +15 -60    
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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- PageSequenceLayoutManager.java    12 Feb 2005 06:41:24 -0000      1.31
  +++ PageSequenceLayoutManager.java    12 Feb 2005 22:32:36 -0000      1.32
  @@ -81,6 +81,7 @@
   
       /** True if haven't yet laid out any pages.*/
       private boolean bFirstPage;
  +
       /** Current page being worked on. */
       private PageViewport curPage;
   
  @@ -129,9 +130,6 @@
       public PageSequenceLayoutManager(PageSequence pageSeq) {
           super(pageSeq);
           this.pageSeq = pageSeq;
  -        if (pageSeq.getPageSequenceMaster() != null) {
  -            pageSeq.getPageSequenceMaster().reset();
  -        }
       }
   
       /**
  @@ -152,17 +150,6 @@
       }
   
       /**
  -     * Get the page count.
  -     * Used to get the last page number for reference for
  -     * the next page sequence.
  -     *
  -     * @return the page number
  -     */
  -    public int getPageCount() {
  -        return pageCount;
  -    }
  -
  -    /**
        * @return the Title area
        */
       private LineArea getTitleArea(Title foTitle) {
  @@ -223,7 +210,7 @@
           pageCount--;
           log.debug("Ending layout");
           finishPage();
  -        pageSeq.setCurrentPageNumber(getPageCount());
  +        pageSeq.setCurrentPageNumber(pageCount);
       }
   
       /** @see org.apache.fop.layoutmgr.LayoutManager#isBogus() */
  @@ -473,12 +460,21 @@
   
       private PageViewport makeNewPage(boolean bIsBlank, boolean bIsLast) {
           finishPage();
  +
           try {
  -            curPage = createPage(bIsBlank, bIsLast);
  +            // create a new page
  +            currentSimplePageMaster = pageSeq.getSimplePageMasterToUse(
  +                pageCount, isFirstPage, bIsBlank);
  +            Region body = currentSimplePageMaster.getRegion(FO_REGION_BODY);
  +            if 
(!pageSeq.getMainFlow().getFlowName().equals(body.getRegionName())) {
  +              throw new FOPException("Flow '" + 
pageSeq.getMainFlow().getFlowName()
  +                 + "' does not map to the region-body in page-master '"
  +                 + currentSimplePageMaster.getMasterName() + "'");
  +            }
  +            curPage = createPageAreas(currentSimplePageMaster);
               isFirstPage = false;
           } catch (FOPException fopex) {
  -            //TODO this exception is fatal, isn't it?
  -            log.error("Cannot create page", fopex);
  +            throw new IllegalArgumentException("Cannot create page: " + 
fopex.getMessage());
           }
   
           curPage.setPageNumberString(getCurrentPageNumber());
  @@ -747,47 +743,6 @@
           createFlow();
       }
   
  -    /**
  -     * Called when a new page is needed.
  -     *
  -     * @param bIsBlank If true, use a master for a blank page.
  -     * @param bIsLast If true, use the master for the last page in the 
sequence.
  -     * @return the page viewport created for the page number
  -     * @throws FOPException if there is an error creating page
  -     */
  -    private PageViewport createPage(boolean bIsBlank, boolean bIsLast)
  -                                   throws FOPException {
  -        currentSimplePageMaster = getSimplePageMasterToUse(bIsBlank);
  -        Region body = currentSimplePageMaster.getRegion(FO_REGION_BODY);
  -        if 
(!pageSeq.getMainFlow().getFlowName().equals(body.getRegionName())) {
  -          throw new FOPException("Flow '" + 
pageSeq.getMainFlow().getFlowName()
  -                                 + "' does not map to the region-body in 
page-master '"
  -                                 + currentSimplePageMaster.getMasterName() + 
"'");
  -        }
  -        PageViewport p = createPageAreas(currentSimplePageMaster);
  -        return p;
  -        // The page will have a viewport/reference area pair defined
  -        // for each region in the master.
  -        // Set up the page itself
  -// SKIP ALL THIS FOR NOW!!!
  -//             
//pageSequence.root.setRunningPageNumberCounter(pageSequence.currentPageNumber);
  -
  -//             pageSequence.pageCount++;    // used for 'force-page-count' 
calculations
  -
  -        // handle the 'force-page-count'
  -        //forcePage(areaTree, firstAvailPageNumber);
  -    }
  -
  -    private SimplePageMaster getSimplePageMasterToUse(boolean bIsBlank)
  -            throws FOPException {
  -        if (pageSeq.getPageSequenceMaster() == null) {
  -            return pageSeq.getSimplePageMaster();
  -        }
  -        boolean isOddPage = ((pageCount % 2) == 1);
  -        return pageSeq.getPageSequenceMaster()
  -              .getNextSimplePageMaster(isOddPage, isFirstPage, bIsBlank);
  -    }
  -
       private PageViewport createPageAreas(SimplePageMaster spm) {
           int pageWidth = spm.getPageWidth().getValue();
           int pageHeight = spm.getPageHeight().getValue();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to