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 ar...@apache.org on 2001/03/05 00:09:44 UTC

cvs commit: xml-fop/src/org/apache/fop/fo/pagination SimplePageMaster.java

arved       01/03/04 15:09:44

  Modified:    src/org/apache/fop/fo/pagination SimplePageMaster.java
  Log:
  region-start, region-end support
  
  Revision  Changes    Path
  1.11      +55 -54    xml-fop/src/org/apache/fop/fo/pagination/SimplePageMaster.java
  
  Index: SimplePageMaster.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/pagination/SimplePageMaster.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SimplePageMaster.java	2000/12/18 04:56:14	1.10
  +++ SimplePageMaster.java	2001/03/04 23:09:44	1.11
  @@ -1,53 +1,10 @@
  -/*-- $Id: SimplePageMaster.java,v 1.10 2000/12/18 04:56:14 kellyc Exp $ -- 
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  - 
  -    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
  - 
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  - 
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  - 
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  - 
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  - 
  - 4. The names "Fop" and  "Apache Software Foundation"  must not be used to
  -    endorse  or promote  products derived  from this  software without  prior
  -    written permission. For written permission, please contact
  -    apache@apache.org.
  - 
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  - 
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  - 
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation and was  originally created by
  - James Tauber <jt...@jtauber.com>. For more  information on the Apache 
  - Software Foundation, please see <http://www.apache.org/>.
  - 
  +/*-- $Id: SimplePageMaster.java,v 1.11 2001/03/04 23:09:44 arved Exp $ --
  + *
  + * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
  + * For details on use and redistribution please refer to the 
  + * LICENSE file included with these sources."
    */
  +
   package org.apache.fop.fo.pagination;
   
   // FOP
  @@ -55,6 +12,7 @@
   import org.apache.fop.messaging.MessageHandler;
   import org.apache.fop.fo.properties.*;
   import org.apache.fop.layout.PageMaster;
  +import org.apache.fop.layout.RegionArea;
   import org.apache.fop.layout.BodyRegionArea;
   import org.apache.fop.apps.FOPException;				   
   
  @@ -80,7 +38,13 @@
       LayoutMasterSet layoutMasterSet;
       PageMaster pageMaster;
       String masterName;
  -    
  +
  +	// before and after data as required by start and end
  +	boolean beforePrecedence;
  +	int beforeHeight;
  +	boolean afterPrecedence;
  +	int afterHeight;
  +	
       protected SimplePageMaster(FObj parent, PropertyList propertyList)
   	throws FOPException {
   	super(parent, propertyList);
  @@ -120,20 +84,56 @@
   		
   	this.pageMaster = new PageMaster(pageWidth, pageHeight);
   	if (getRegion(RegionBody.REGION_CLASS) != null) {
  -	    this.pageMaster.addBody((BodyRegionArea)getRegion(RegionBody.REGION_CLASS).makeRegionArea(contentRectangleXPosition,contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight));
  +		BodyRegionArea body =
  +		(BodyRegionArea)getRegion(RegionBody.REGION_CLASS).makeRegionArea(contentRectangleXPosition,
  +			contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight);
  +	    this.pageMaster.addBody(body);
   	}
   	else {
   	    MessageHandler.errorln("ERROR: simple-page-master must have a region of class "+RegionBody.REGION_CLASS);
   	}
   	
   	if (getRegion(RegionBefore.REGION_CLASS) != null) {
  -	    this.pageMaster.addBefore(getRegion(RegionBefore.REGION_CLASS).makeRegionArea(contentRectangleXPosition,contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight));
  +		RegionArea before =
  +		getRegion(RegionBefore.REGION_CLASS).makeRegionArea(contentRectangleXPosition,
  +			contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight);
  +	    this.pageMaster.addBefore(before);
  +		beforePrecedence = ((RegionBefore)getRegion(RegionBefore.REGION_CLASS)).getPrecedence();
  +		beforeHeight = before.getHeight();
   	}
  +	else {
  +		beforePrecedence = false;
  +	}
   	
   	if (getRegion(RegionAfter.REGION_CLASS) != null) {
  -	    this.pageMaster.addAfter(getRegion(RegionAfter.REGION_CLASS).makeRegionArea(contentRectangleXPosition,contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight));
  +		RegionArea after =
  +		getRegion(RegionAfter.REGION_CLASS).makeRegionArea(contentRectangleXPosition,
  +			contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight);
  +	    this.pageMaster.addAfter(after);
  +		afterPrecedence = ((RegionAfter)getRegion(RegionAfter.REGION_CLASS)).getPrecedence();
  +		afterHeight = after.getHeight();
   	}
  +	else {
  +		afterPrecedence = false;
  +	}
   	
  +	if (getRegion(RegionStart.REGION_CLASS) != null) {
  +		RegionArea start =
  +		((RegionStart)getRegion(RegionStart.REGION_CLASS)).makeRegionArea(
  +			contentRectangleXPosition,
  +			contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight,
  +			beforePrecedence, afterPrecedence, beforeHeight, afterHeight);
  +	    this.pageMaster.addStart(start);
  +	}
  +	
  +	if (getRegion(RegionEnd.REGION_CLASS) != null) {
  +		RegionArea end =
  +		((RegionEnd)getRegion(RegionEnd.REGION_CLASS)).makeRegionArea(
  +			contentRectangleXPosition,
  +			contentRectangleYPosition,contentRectangleWidth,contentRectangleHeight,
  +			beforePrecedence, afterPrecedence, beforeHeight, afterHeight);
  +	    this.pageMaster.addEnd(end);
  +	}
       }
   
       public PageMaster getPageMaster() {
  @@ -154,7 +154,8 @@
   	throws FOPException
       {
   	if (_regions.containsKey(region.getRegionClass())) {
  -	    throw new FOPException("Only one region of class "+region.getRegionClass()+" allowed within a simple-page-master.");
  +	    throw new FOPException("Only one region of class "+region.getRegionClass()
  +		+" allowed within a simple-page-master.");
   	}
   	else {
   	    _regions.put(region.getRegionClass(), region);