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);