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...@locus.apache.org on 2000/07/11 04:29:57 UTC
cvs commit: xml-fop/src/org/apache/fop/fo/pagination LayoutMasterSet.java
arved 00/07/10 19:29:57
Modified: src/org/apache/fop/fo/pagination LayoutMasterSet.java
Log:
Supports March 27 2000 spec
Revision Changes Path
1.6 +64 -8 xml-fop/src/org/apache/fop/fo/pagination/LayoutMasterSet.java
Index: LayoutMasterSet.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/pagination/LayoutMasterSet.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- LayoutMasterSet.java 1999/11/22 02:31:37 1.5
+++ LayoutMasterSet.java 2000/07/11 02:29:57 1.6
@@ -1,4 +1,4 @@
-/*-- $Id: LayoutMasterSet.java,v 1.5 1999/11/22 02:31:37 jtauber Exp $ --
+/*-- $Id: LayoutMasterSet.java,v 1.6 2000/07/11 02:29:57 arved Exp $ --
============================================================================
The Apache Software License, Version 1.1
@@ -54,6 +54,8 @@
import org.apache.fop.fo.*;
import org.apache.fop.fo.properties.*;
import org.apache.fop.apps.FOPException;
+import org.apache.fop.layout.PageMaster;
+import org.apache.fop.apps.FOPException;
// Java
import java.util.Hashtable;
@@ -71,15 +73,18 @@
return new LayoutMasterSet.Maker();
}
- private Hashtable layoutMasters;
- private Root root;
+ private Hashtable simplePageMasters;
+ private Hashtable pageSequenceMasters;
+ private Root root;
protected LayoutMasterSet(FObj parent, PropertyList propertyList)
throws FOPException {
super(parent, propertyList);
this.name = "fo:layout-master-set";
- this.layoutMasters = new Hashtable();
+ this.simplePageMasters = new Hashtable();
+ this.pageSequenceMasters = new Hashtable();
+
if (parent.getName().equals("fo:root")) {
this.root = (Root)parent;
root.setLayoutMasterSet(this);
@@ -89,12 +94,63 @@
+ parent.getName());
}
}
+
+ public PageMaster getNextPageMaster( String pageSequenceName,
+ int currentPageNumber, boolean thisIsFirstPage )
+ throws FOPException
+ {
+ PageMaster pm = null;
+
+ PageSequenceMaster psm = getPageSequenceMaster( pageSequenceName );
+ if (null != psm)
+ {
+ pm = psm.getNextPageMaster( currentPageNumber, thisIsFirstPage );
+ } else {
+ SimplePageMaster spm = getSimplePageMaster( pageSequenceName );
+ if (null == spm)
+ {
+ throw new FOPException( "'master-name' for 'fo:page-sequence'" +
+ "matches no 'simple-page-master' or 'page-sequence-master'" );
+ }
+ pm = spm.getNextPageMaster();
+ }
+ return pm;
+ }
+
+ protected void addSimplePageMaster(
+ String masterName, SimplePageMaster simplePageMaster)
+ throws FOPException {
+ // check against duplication of master-name
+ if (existsName(masterName))
+ throw new FOPException( "'master-name' must be unique" +
+ "across page-masters and page-sequence-masters" );
+ this.simplePageMasters.put(masterName, simplePageMaster);
+ }
- protected void addLayoutMaster(String masterName, SimplePageMaster layoutMaster) {
- this.layoutMasters.put(masterName, layoutMaster);
+ protected SimplePageMaster getSimplePageMaster(String masterName) {
+ return (SimplePageMaster)this.simplePageMasters.get(masterName);
}
- protected SimplePageMaster getLayoutMaster(String masterName) {
- return (SimplePageMaster)this.layoutMasters.get(masterName);
+ protected void addPageSequenceMaster(
+ String masterName, PageSequenceMaster pageSequenceMaster)
+ throws FOPException {
+ // check against duplication of master-name
+ if (existsName(masterName))
+ throw new FOPException( "'master-name' must be unique " +
+ "across page-masters and page-sequence-masters" );
+ this.pageSequenceMasters.put(masterName, pageSequenceMaster);
}
+
+ protected PageSequenceMaster getPageSequenceMaster(String masterName) {
+ return (PageSequenceMaster)this.pageSequenceMasters.get(masterName);
+ }
+
+ private boolean existsName( String masterName )
+ {
+ if (simplePageMasters.containsKey(masterName) ||
+ pageSequenceMasters.containsKey(masterName))
+ return true;
+ else
+ return false;
+ }
}