From 2265f3fa72747539a63bc57826b3f344d31dd071 Mon Sep 17 00:00:00 2001 From: Glen Mazza Date: Mon, 31 Jan 2005 22:27:20 +0000 Subject: [PATCH] Addition of new fo:page-sequence-wrapper FO from XSL 1.1. Currently not "plugged in" (it is commented out in FOElementMapping) nor functionally implemented. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198353 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/fo/Constants.java | 13 +- .../org/apache/fop/fo/FOElementMapping.java | 9 +- src/java/org/apache/fop/fo/PropertySets.java | 5 + .../fo/pagination/PageSequenceWrapper.java | 115 ++++++++++++++++++ 4 files changed, 136 insertions(+), 6 deletions(-) create mode 100644 src/java/org/apache/fop/fo/pagination/PageSequenceWrapper.java diff --git a/src/java/org/apache/fop/fo/Constants.java b/src/java/org/apache/fop/fo/Constants.java index dd2fa4450..fb2dc7fe9 100644 --- a/src/java/org/apache/fop/fo/Constants.java +++ b/src/java/org/apache/fop/fo/Constants.java @@ -113,10 +113,11 @@ public interface Constants { int FO_TABLE_ROW = 54; int FO_TITLE = 55; int FO_WRAPPER = 56; - int FO_BOOKMARK_TREE = 57; - int FO_BOOKMARK = 58; - int FO_BOOKMARK_TITLE = 59; - int FRM_OBJ_COUNT = 59; + int FO_BOOKMARK_TREE = 57; // XSL 1.1 + int FO_BOOKMARK = 58; // XSL 1.1 + int FO_BOOKMARK_TITLE = 59; // XSL 1.1 + int FO_PAGE_SEQUENCE_WRAPPER = 60; // XSL 1.1 + int FRM_OBJ_COUNT = 60; // Masks int COMPOUND_SHIFT = 9; @@ -372,7 +373,9 @@ public interface Constants { int PR_XML_LANG = 245; int PR_Z_INDEX = 246; int PR_INTRUSION_DISPLACE = 247; - int PROPERTY_COUNT = 247; + int PR_INDEX_CLASS = 248; // XSL 1.1 + int PR_INDEX_KEY = 249; // XSL 1.1 + int PROPERTY_COUNT = 249; // compound property constants diff --git a/src/java/org/apache/fop/fo/FOElementMapping.java b/src/java/org/apache/fop/fo/FOElementMapping.java index d19d784a6..cca493cdc 100644 --- a/src/java/org/apache/fop/fo/FOElementMapping.java +++ b/src/java/org/apache/fop/fo/FOElementMapping.java @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,6 +48,7 @@ public class FOElementMapping extends ElementMapping { foObjs.put("bookmark-tree", new BookmarkTreeMaker()); foObjs.put("bookmark", new BookmarkMaker()); foObjs.put("bookmark-title", new BookmarkTitleMaker()); +// foObjs.put("page-sequence-wrapper", new PageSequenceWrapperMaker()); foObjs.put("page-sequence", new PageSequenceMaker()); foObjs.put("layout-master-set", new LayoutMasterSetMaker()); foObjs.put("page-sequence-master", @@ -166,6 +167,12 @@ public class FOElementMapping extends ElementMapping { } } + static class PageSequenceWrapperMaker extends ElementMapping.Maker { + public FONode make(FONode parent) { + return new org.apache.fop.fo.pagination.PageSequenceWrapper(parent); + } + } + static class PageSequenceMaker extends ElementMapping.Maker { public FONode make(FONode parent) { return new org.apache.fop.fo.pagination.PageSequence(parent); diff --git a/src/java/org/apache/fop/fo/PropertySets.java b/src/java/org/apache/fop/fo/PropertySets.java index b62738a33..c00b15782 100644 --- a/src/java/org/apache/fop/fo/PropertySets.java +++ b/src/java/org/apache/fop/fo/PropertySets.java @@ -216,6 +216,11 @@ public class PropertySets { elem.addProperty(Constants.PR_FONT_STYLE); elem.addProperty(Constants.PR_FONT_WEIGHT); + elem = elements[Constants.FO_PAGE_SEQUENCE_WRAPPER]; + elem.addProperty(Constants.PR_ID); + elem.addProperty(Constants.PR_INDEX_CLASS); + elem.addProperty(Constants.PR_INDEX_KEY); + elem = elements[Constants.FO_PAGE_SEQUENCE]; elem.addProperty(Constants.PR_COUNTRY); elem.addProperty(Constants.PR_FORMAT); diff --git a/src/java/org/apache/fop/fo/pagination/PageSequenceWrapper.java b/src/java/org/apache/fop/fo/pagination/PageSequenceWrapper.java new file mode 100644 index 000000000..2ffa6f63f --- /dev/null +++ b/src/java/org/apache/fop/fo/pagination/PageSequenceWrapper.java @@ -0,0 +1,115 @@ +/* + * Copyright 1999-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* $Id$ */ + +package org.apache.fop.fo.pagination; + +// Java +import java.util.List; +import java.util.ListIterator; + +import org.xml.sax.Locator; + +import org.apache.fop.apps.FOPException; +import org.apache.fop.fo.FObj; +import org.apache.fop.fo.FONode; +import org.apache.fop.fo.PropertyList; +import org.apache.fop.fo.ValidationException; + +/** + * The fo:page-sequence-wrapper formatting object, first introduced + * in the XSL 1.1 WD. Prototype version only, subject to change as + * XSL 1.1 WD evolves. + */ +public class PageSequenceWrapper extends FObj { + // The value of properties relevant for this FO + private String id; + private String indexClass; + private String indexKey; + // End of property values + + /** + * @param parent FONode that is the parent of this object + */ + public PageSequenceWrapper(FONode parent) { + super(parent); + } + + /** + * @see org.apache.fop.fo.FObj#bind(PropertyList) + */ + public void bind(PropertyList pList) throws FOPException { + id = pList.get(PR_ID).getString(); + indexClass = pList.get(PR_INDEX_CLASS).getString(); + indexKey = pList.get(PR_INDEX_KEY).getString(); + } + + /** + * @see org.apache.fop.fo.FONode#startOfNode + */ + protected void startOfNode() throws FOPException { + checkId(id); + } + + /** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + XSL/FOP: (bookmark+) + */ + protected void validateChildNode(Locator loc, String nsURI, String localName) + throws ValidationException { + if (!(nsURI == FO_URI && (localName.equals("page-sequence") || + localName.equals("page-sequence-wrapper")))) { + invalidChildError(loc, nsURI, localName); + } + } + + /** + * Return the "id" property. + */ + public String getId() { + return id; + } + + /** + * Return the "id" property. + */ + public String getIndexClass() { + return indexClass; + } + + /** + * Return the "id" property. + */ + public String getIndexKey() { + return indexKey; + } + + /** + * @see org.apache.fop.fo.FObj#getName() + */ + public String getName() { + return "fo:page-sequence-wrapper"; + } + + /** + * @see org.apache.fop.fo.FObj#getNameId() + */ + public int getNameId() { + return FO_PAGE_SEQUENCE_WRAPPER; + } +} + -- 2.39.5