gmazza 2005/01/02 12:42:51 Modified: examples/fo/advanced cid-fonts.fo examples/fo/basic pdfoutline.fo src/java/org/apache/fop/area AreaTreeHandler.java BookmarkData.java src/java/org/apache/fop/fo Constants.java FOElementMapping.java FObj.java PropertySets.java src/java/org/apache/fop/fo/extensions ExtensionElementMapping.java src/java/org/apache/fop/fo/pagination Root.java Added: src/java/org/apache/fop/fo/pagination/bookmarks BookmarkTree.java Removed: src/java/org/apache/fop/fo/extensions Bookmarks.java Log: Switched from fox:bookmarks to fo:bookmark-tree (of XSL 1.1 2WD). Two more bookmark-related FO's (fox:outline and fox:label) need conversion and will be done next. Revision Changes Path 1.4 +2 -2 xml-fop/examples/fo/advanced/cid-fonts.fo Index: cid-fonts.fo =================================================================== RCS file: /home/cvs/xml-fop/examples/fo/advanced/cid-fonts.fo,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- cid-fonts.fo 22 Feb 2004 13:37:06 -0000 1.3 +++ cid-fonts.fo 2 Jan 2005 20:42:50 -0000 1.4 @@ -16,7 +16,7 @@ </fo:simple-page-master> </fo:layout-master-set> - +<fo:bookmark-tree> <fox:outline internal-destination="sec0"> <fox:label>Adding Fonts to FOP</fox:label> </fox:outline> @@ -74,7 +74,7 @@ <fox:outline internal-destination="sec5"> <fox:label>Japanese Examples</fox:label> </fox:outline> - +</fo:bookmark-tree> <fo:page-sequence master-reference="A4"> 1.5 +62 -65 xml-fop/examples/fo/basic/pdfoutline.fo Index: pdfoutline.fo =================================================================== RCS file: /home/cvs/xml-fop/examples/fo/basic/pdfoutline.fo,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- pdfoutline.fo 13 Dec 2004 22:59:02 -0000 1.4 +++ pdfoutline.fo 2 Jan 2005 20:42:50 -0000 1.5 @@ -58,71 +58,68 @@ <!-- end: defines page layout --> -<!-- beginning of the PDF outline extensions --> - <fox:bookmarks> - - <fox:outline internal-destination="sec1"> - <fox:label>What is FOP?</fox:label> - </fox:outline> - - <fox:outline internal-destination="sec2"> - <fox:label>Downloading FOP</fox:label> - </fox:outline> - - <fox:outline internal-destination="sec3"> - <fox:label>Running FOP</fox:label> - - <fox:outline internal-destination="sec3-1"> - <fox:label>Prerequisites</fox:label> - - <fox:outline internal-destination="sec3-1-1"> - <fox:label>Java 1.1</fox:label> - </fox:outline> - - <fox:outline internal-destination="sec3-1-2"> - <fox:label>XML Parser</fox:label> - </fox:outline> - - <fox:outline internal-destination="sec3-1-3"> - <fox:label>XSLT Processor</fox:label> - </fox:outline> - - </fox:outline> - - <fox:outline internal-destination="sec3-2"> - <fox:label>Starting FOP</fox:label> - </fox:outline> - - </fox:outline> - - <fox:outline internal-destination="sec4"> - <fox:label>Embedding FOP</fox:label> - </fox:outline> - - <fox:outline internal-destination="sec5"> - <fox:label>What's Implemented?</fox:label> - </fox:outline> - <fox:outline internal-destination="sec6"> - <fox:label>Limitations</fox:label> - </fox:outline> - <fox:outline internal-destination="sec7"> - <fox:label>Bugs</fox:label> - </fox:outline> - <fox:outline internal-destination="sec8"> - <fox:label>Compiling FOP</fox:label> - </fox:outline> - <fox:outline internal-destination="sec9"> - <fox:label>Getting Involved</fox:label> - </fox:outline> - <fox:outline internal-destination="sec10"> - <fox:label>FOP Relevant Specifications</fox:label> - </fox:outline> - <fox:outline internal-destination="sec11"> - <fox:label>License</fox:label> - </fox:outline> - </fox:bookmarks> - - +<!-- bookmark section --> + <fo:bookmark-tree> + <fox:outline internal-destination="sec1"> + <fox:label>What is FOP?</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec2"> + <fox:label>Downloading FOP</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec3"> + <fox:label>Running FOP</fox:label> + + <fox:outline internal-destination="sec3-1"> + <fox:label>Prerequisites</fox:label> + + <fox:outline internal-destination="sec3-1-1"> + <fox:label>Java 1.1</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec3-1-2"> + <fox:label>XML Parser</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec3-1-3"> + <fox:label>XSLT Processor</fox:label> + </fox:outline> + + </fox:outline> + + <fox:outline internal-destination="sec3-2"> + <fox:label>Starting FOP</fox:label> + </fox:outline> + + </fox:outline> + + <fox:outline internal-destination="sec4"> + <fox:label>Embedding FOP</fox:label> + </fox:outline> + + <fox:outline internal-destination="sec5"> + <fox:label>What's Implemented?</fox:label> + </fox:outline> + <fox:outline internal-destination="sec6"> + <fox:label>Limitations</fox:label> + </fox:outline> + <fox:outline internal-destination="sec7"> + <fox:label>Bugs</fox:label> + </fox:outline> + <fox:outline internal-destination="sec8"> + <fox:label>Compiling FOP</fox:label> + </fox:outline> + <fox:outline internal-destination="sec9"> + <fox:label>Getting Involved</fox:label> + </fox:outline> + <fox:outline internal-destination="sec10"> + <fox:label>FOP Relevant Specifications</fox:label> + </fox:outline> + <fox:outline internal-destination="sec11"> + <fox:label>License</fox:label> + </fox:outline> + </fo:bookmark-tree> <!-- actual layout --> <fo:page-sequence master-reference="basicPSM"> 1.30 +5 -5 xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java Index: AreaTreeHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- AreaTreeHandler.java 27 Dec 2004 10:13:05 -0000 1.29 +++ AreaTreeHandler.java 2 Jan 2005 20:42:50 -0000 1.30 @@ -36,9 +36,9 @@ import org.apache.fop.apps.FOPException; import org.apache.fop.apps.FOUserAgent; import org.apache.fop.fo.FOEventHandler; -import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fo.pagination.Root; +import org.apache.fop.fo.pagination.bookmarks.BookmarkTree; import org.apache.fop.layoutmgr.PageSequenceLayoutManager; import org.apache.fop.layoutmgr.LayoutManagerMaker; import org.apache.fop.layoutmgr.LayoutManagerMapping; @@ -251,9 +251,9 @@ public void endDocument() throws SAXException { // process fo:bookmark-tree - Bookmarks bookmarks = rootFObj.getBookmarks(); - if (bookmarks != null) { - BookmarkData data = new BookmarkData(bookmarks); + BookmarkTree bookmarkTree = rootFObj.getBookmarkTree(); + if (bookmarkTree != null) { + BookmarkData data = new BookmarkData(bookmarkTree); addOffDocumentItem(data); } 1.9 +5 -5 xml-fop/src/java/org/apache/fop/area/BookmarkData.java Index: BookmarkData.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/BookmarkData.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- BookmarkData.java 17 Dec 2004 00:19:11 -0000 1.8 +++ BookmarkData.java 2 Jan 2005 20:42:50 -0000 1.9 @@ -22,7 +22,7 @@ import java.util.List; import java.util.HashMap; -import org.apache.fop.fo.extensions.Bookmarks; +import org.apache.fop.fo.pagination.bookmarks.BookmarkTree; import org.apache.fop.fo.extensions.Outline; /** @@ -52,12 +52,12 @@ * * @param bookmarks fo:bookmark-tree for this document */ - public BookmarkData(Bookmarks bookmarks) { + public BookmarkData(BookmarkTree bookmarkTree) { idRef = null; whenToProcess = END_OF_DOC; - for (int count = 0; count < bookmarks.getOutlines().size(); count++) { - Outline out = (Outline)(bookmarks.getOutlines()).get(count); + for (int count = 0; count < bookmarkTree.getBookmarks().size(); count++) { + Outline out = (Outline)(bookmarkTree.getBookmarks()).get(count); addSubData(createBookmarkData(out)); } } 1.21 +3 -2 xml-fop/src/java/org/apache/fop/fo/Constants.java Index: Constants.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/Constants.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- Constants.java 25 Dec 2004 15:29:18 -0000 1.20 +++ Constants.java 2 Jan 2005 20:42:50 -0000 1.21 @@ -113,7 +113,8 @@ int FO_TABLE_ROW = 54; int FO_TITLE = 55; int FO_WRAPPER = 56; - int FRM_OBJ_COUNT = 56; + int FO_BOOKMARK_TREE = 57; + int FRM_OBJ_COUNT = 57; // Masks int COMPOUND_SHIFT = 9; 1.9 +7 -0 xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java Index: FOElementMapping.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- FOElementMapping.java 15 Jun 2004 00:30:43 -0000 1.8 +++ FOElementMapping.java 2 Jan 2005 20:42:50 -0000 1.9 @@ -45,6 +45,7 @@ foObjs.put("root", new RootMaker()); foObjs.put("declarations", new DeclarationsMaker()); foObjs.put("color-profile", new ColorProfileMaker()); + foObjs.put("bookmark-tree", new BookmarkTreeMaker()); foObjs.put("page-sequence", new PageSequenceMaker()); foObjs.put("layout-master-set", new LayoutMasterSetMaker()); foObjs.put("page-sequence-master", @@ -142,6 +143,12 @@ static class ColorProfileMaker extends ElementMapping.Maker { public FONode make(FONode parent) { return new org.apache.fop.fo.pagination.ColorProfile(parent); + } + } + + static class BookmarkTreeMaker extends ElementMapping.Maker { + public FONode make(FONode parent) { + return new org.apache.fop.fo.pagination.bookmarks.BookmarkTree(parent); } } 1.88 +2 -2 xml-fop/src/java/org/apache/fop/fo/FObj.java Index: FObj.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- FObj.java 21 Dec 2004 11:28:05 -0000 1.87 +++ FObj.java 2 Jan 2005 20:42:50 -0000 1.88 @@ -117,12 +117,12 @@ /** * Bind property values from the property list to the FO node. - * Must be overriden in all FObj subclasses. + * Must be overridden in all FObj subclasses that have properties + * applying to it. * @param pList the PropertyList where the properties can be found. * @throws FOPException */ public void bind(PropertyList pList) throws FOPException { -// throw new ValidationException("Unconverted element " + this, locator); } /** 1.13 +13 -10 xml-fop/src/java/org/apache/fop/fo/PropertySets.java Index: PropertySets.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertySets.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- PropertySets.java 25 Dec 2004 15:29:18 -0000 1.12 +++ PropertySets.java 2 Jan 2005 20:42:50 -0000 1.13 @@ -201,6 +201,9 @@ elem.addProperty(Constants.PR_COLOR_PROFILE_NAME); elem.addProperty(Constants.PR_RENDERING_INTENT); + elem = elements[Constants.FO_BOOKMARK_TREE]; +// elem.addContent(Constants.FO_BOOKMARK); + elem = elements[Constants.FO_PAGE_SEQUENCE]; elem.addProperty(Constants.PR_COUNTRY); elem.addProperty(Constants.PR_FORMAT); @@ -1117,7 +1120,7 @@ BitSet relevant = new BitSet(); BitSet valid = new BitSet(); int elementId; - ArrayList children; + ArrayList childFOs; Element(int elementId) { this.elementId = elementId; @@ -1143,14 +1146,14 @@ * Add a single fo element as a content child. */ public void addContent(int elementId) { - if (children == null) { - children = new ArrayList(); + if (childFOs == null) { + childFOs = new ArrayList(); } - children.add(elements[elementId]); + childFOs.add(elements[elementId]); } /** - * Add a set of fo elements as content children. + * Add a set of fo elements as content childFOs. */ public void addContent(BitSet elements) { for (int i = 0; i < elements.size(); i++) { @@ -1161,16 +1164,16 @@ } /** - * Merge the properties from the children into the set of valid + * Merge the properties from the child FO's into the set of valid * properties. Return true if at least one property could be added. */ public boolean merge() { - if (children == null) { + if (childFOs == null) { return false; } boolean dirty = false; - for (int i = 0; i < children.size(); i++) { - Element child = (Element) children.get(i); + for (int i = 0; i < childFOs.size(); i++) { + Element child = (Element) childFOs.get(i); BitSet childValid = child.valid; int n = childValid.length(); for (int j = 0; j < n; j++) { 1.5 +1 -8 xml-fop/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java Index: ExtensionElementMapping.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ExtensionElementMapping.java 15 Jun 2004 00:30:43 -0000 1.4 +++ ExtensionElementMapping.java 2 Jan 2005 20:42:50 -0000 1.5 @@ -44,15 +44,8 @@ protected void initialize() { if (foObjs == null) { foObjs = new HashMap(); - foObjs.put("bookmarks", new B()); foObjs.put("outline", new O()); foObjs.put("label", new L()); - } - } - - static class B extends ElementMapping.Maker { - public FONode make(FONode parent) { - return new Bookmarks(parent); } } 1.37 +21 -23 xml-fop/src/java/org/apache/fop/fo/pagination/Root.java Index: Root.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Root.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- Root.java 14 Nov 2004 20:20:43 -0000 1.36 +++ Root.java 2 Jan 2005 20:42:50 -0000 1.37 @@ -29,7 +29,7 @@ import org.apache.fop.fo.FObj; import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.ValidationException; -import org.apache.fop.fo.extensions.Bookmarks; +import org.apache.fop.fo.pagination.bookmarks.BookmarkTree; import org.apache.fop.fo.extensions.ExtensionElementMapping; /** @@ -42,7 +42,7 @@ private LayoutMasterSet layoutMasterSet; private Declarations declarations; - private Bookmarks bookmarks = null; + private BookmarkTree bookmarkTree = null; private List pageSequences; // temporary until above list populated @@ -82,7 +82,7 @@ protected void endOfNode() throws FOPException { if (!pageSequenceFound || layoutMasterSet == null) { missingChildElementError("(layout-master-set, declarations?, " + - "fox:bookmarks?, page-sequence+)"); + "bookmark-tree?, page-sequence+)"); } } @@ -103,11 +103,19 @@ nodesOutOfOrderError(loc, "fo:layout-master-set", "fo:declarations"); } else if (declarations != null) { tooManyNodesError(loc, "fo:declarations"); - } else if (bookmarks != null) { - nodesOutOfOrderError(loc, "fo:declarations", "fox:bookmarks"); + } else if (bookmarkTree != null) { + nodesOutOfOrderError(loc, "fo:declarations", "fo:bookmark-tree"); } else if (pageSequenceFound) { nodesOutOfOrderError(loc, "fo:declarations", "fo:page-sequence"); } + } else if (localName.equals("bookmark-tree")) { + if (layoutMasterSet == null) { + nodesOutOfOrderError(loc, "fo:layout-master-set", "fo:bookmark-tree"); + } else if (bookmarkTree != null) { + tooManyNodesError(loc, "fo:bookmark-tree"); + } else if (pageSequenceFound) { + nodesOutOfOrderError(loc, "fo:bookmark-tree", "fo:page-sequence"); + } } else if (localName.equals("page-sequence")) { if (layoutMasterSet == null) { nodesOutOfOrderError(loc, "fo:layout-master-set", "fo:page-sequence"); @@ -117,16 +125,6 @@ } else { invalidChildError(loc, nsURI, localName); } - } else if (nsURI.equals(ExtensionElementMapping.URI)) { - if (!localName.equals("bookmarks")) { - invalidChildError(loc, nsURI, localName); - } else if (layoutMasterSet == null) { - nodesOutOfOrderError(loc, "fo:layout-master-set", "fox:bookmarks"); - } else if (bookmarks != null) { - tooManyNodesError(loc, "fox:bookmarks"); - } else if (pageSequenceFound) { - nodesOutOfOrderError(loc, "fox:bookmarks", "fo:page-sequence"); - } } else { invalidChildError(loc, nsURI, localName); } @@ -226,19 +224,19 @@ } /** - * Set the Bookmarks object for this FO - * @param bookmarks the Bookmarks object + * Set the BookmarkTree object for this FO + * @param bookmarkTree the BookmarkTree object */ - public void setBookmarks(Bookmarks bookmarks) { - this.bookmarks = bookmarks; + public void setBookmarkTree(BookmarkTree bookmarkTree) { + this.bookmarkTree = bookmarkTree; } /** - * Public accessor for the Bookmarks for this FO - * @return the Bookmarks object + * Public accessor for the BookmarkTree object for this FO + * @return the BookmarkTree object */ - public Bookmarks getBookmarks() { - return bookmarks; + public BookmarkTree getBookmarkTree() { + return bookmarkTree; } /** 1.1 xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java Index: BookmarkTree.java =================================================================== /* * Copyright 1999-2004 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: BookmarkTree.java,v 1.1 2005/01/02 20:42:51 gmazza Exp $ */ package org.apache.fop.fo.pagination.bookmarks; // Java import java.util.ArrayList; import org.xml.sax.Locator; import org.apache.fop.apps.FOPException; import org.apache.fop.fo.extensions.ExtensionElementMapping; import org.apache.fop.fo.extensions.Outline; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObj; import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.ValidationException; import org.apache.fop.fo.pagination.Root; import org.apache.fop.fo.properties.Property; /** * The fo:bookmark-tree formatting object, first introduced in the * XSL 1.1 WD. Prototype version only, subject to change as XSL 1.1 WD * evolves. */ public class BookmarkTree extends FObj { private ArrayList bookmarks = new ArrayList(); /** * @see org.apache.fop.fo.FONode#FONode(FONode) */ public BookmarkTree(FONode parent) { super(parent); } /** * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ protected void addChildNode(FONode obj) { if (obj instanceof Outline) { bookmarks.add(obj); } } /** * @see org.apache.fop.fo.FONode#endOfNode */ protected void endOfNode() throws FOPException { if (bookmarks == null) { missingChildElementError("(fox:outline+)"); } ((Root) parent).setBookmarkTree(this); } /** * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) XSL/FOP: (conditional-page-master-reference+) */ protected void validateChildNode(Locator loc, String nsURI, String localName) throws ValidationException { if (!(nsURI == ExtensionElementMapping.URI && localName.equals("outline"))) { invalidChildError(loc, nsURI, localName); } } public ArrayList getBookmarks() { return bookmarks; } public String getName() { return "fo:bookmark-tree"; } /** * @see org.apache.fop.fo.FObj#getNameId() */ public int getNameId() { return FO_BOOKMARK_TREE; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]