gmazza 2005/01/03 16:21:47 Modified: examples/fo/advanced cid-fonts.fo examples/fo/basic pdfoutline.fo src/java/org/apache/fop/area BookmarkData.java src/java/org/apache/fop/fo Constants.java FOElementMapping.java PropertySets.java src/java/org/apache/fop/fo/extensions ExtensionElementMapping.java src/java/org/apache/fop/fo/pagination/bookmarks BookmarkTree.java src/java/org/apache/fop/render/pdf PDFRenderer.java Added: src/java/org/apache/fop/fo/pagination/bookmarks Bookmark.java Removed: src/java/org/apache/fop/fo/extensions Outline.java Log: Converted fox:outline to fo:bookmark. fox:label/fo:bookmark-title still to be done. Revision Changes Path 1.5 +30 -30 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- cid-fonts.fo 2 Jan 2005 20:42:50 -0000 1.4 +++ cid-fonts.fo 4 Jan 2005 00:21:46 -0000 1.5 @@ -17,63 +17,63 @@ </fo:layout-master-set> <fo:bookmark-tree> - <fox:outline internal-destination="sec0"> + <fo:bookmark internal-destination="sec0"> <fox:label>Adding Fonts to FOP</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec1"> + <fo:bookmark internal-destination="sec1"> <fox:label>Adding additional Type 1 fonts</fox:label> - <fox:outline internal-destination="sec1-1"> + <fo:bookmark internal-destination="sec1-1"> <fox:label>Generating a font metrics file</fox:label> - </fox:outline> - <fox:outline internal-destination="sec1-2"> + </fo:bookmark> + <fo:bookmark internal-destination="sec1-2"> <fox:label>Register the fonts within FOP</fox:label> - </fox:outline> - </fox:outline> + </fo:bookmark> + </fo:bookmark> - <fox:outline internal-destination="sec2"> + <fo:bookmark internal-destination="sec2"> <fox:label>Adding additional TrueType fonts</fox:label> - <fox:outline internal-destination="sec2-1"> + <fo:bookmark internal-destination="sec2-1"> <fox:label>Generating a font metrics file</fox:label> - </fox:outline> - <fox:outline internal-destination="sec2-2"> + </fo:bookmark> + <fo:bookmark internal-destination="sec2-2"> <fox:label>TrueType collections</fox:label> - </fox:outline> - <fox:outline internal-destination="sec2-3"> + </fo:bookmark> + <fo:bookmark internal-destination="sec2-3"> <fox:label>Register the fonts within FOP</fox:label> - </fox:outline> + </fo:bookmark> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec3"> + <fo:bookmark internal-destination="sec3"> <fox:label>Embedding fonts in the PDF</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec4"> + <fo:bookmark internal-destination="sec4"> <fox:label>Example embedding MSGothic</fox:label> - <fox:outline internal-destination="sec4-1"> + <fo:bookmark internal-destination="sec4-1"> <fox:label>Setup CLASSPATH</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec4-2"> + <fo:bookmark internal-destination="sec4-2"> <fox:label>Create the metrics file</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec4-3"> + <fo:bookmark internal-destination="sec4-3"> <fox:label>Edit msgothic.xml</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec4-4"> + <fo:bookmark internal-destination="sec4-4"> <fox:label>Register the font with FOP</fox:label> - </fox:outline> - </fox:outline> + </fo:bookmark> + </fo:bookmark> - <fox:outline internal-destination="sec5"> + <fo:bookmark internal-destination="sec5"> <fox:label>Japanese Examples</fox:label> - </fox:outline> + </fo:bookmark> </fo:bookmark-tree> <fo:page-sequence master-reference="A4"> 1.6 +32 -32 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- pdfoutline.fo 2 Jan 2005 20:42:50 -0000 1.5 +++ pdfoutline.fo 4 Jan 2005 00:21:46 -0000 1.6 @@ -60,65 +60,65 @@ <!-- bookmark section --> <fo:bookmark-tree> - <fox:outline internal-destination="sec1"> + <fo:bookmark internal-destination="sec1"> <fox:label>What is FOP?</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec2"> + <fo:bookmark internal-destination="sec2"> <fox:label>Downloading FOP</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec3"> + <fo:bookmark internal-destination="sec3"> <fox:label>Running FOP</fox:label> - <fox:outline internal-destination="sec3-1"> + <fo:bookmark internal-destination="sec3-1"> <fox:label>Prerequisites</fox:label> - <fox:outline internal-destination="sec3-1-1"> + <fo:bookmark internal-destination="sec3-1-1"> <fox:label>Java 1.1</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec3-1-2"> + <fo:bookmark internal-destination="sec3-1-2"> <fox:label>XML Parser</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec3-1-3"> + <fo:bookmark internal-destination="sec3-1-3"> <fox:label>XSLT Processor</fox:label> - </fox:outline> + </fo:bookmark> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec3-2"> + <fo:bookmark internal-destination="sec3-2"> <fox:label>Starting FOP</fox:label> - </fox:outline> + </fo:bookmark> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec4"> + <fo:bookmark internal-destination="sec4"> <fox:label>Embedding FOP</fox:label> - </fox:outline> + </fo:bookmark> - <fox:outline internal-destination="sec5"> + <fo:bookmark internal-destination="sec5"> <fox:label>What's Implemented?</fox:label> - </fox:outline> - <fox:outline internal-destination="sec6"> + </fo:bookmark> + <fo:bookmark internal-destination="sec6"> <fox:label>Limitations</fox:label> - </fox:outline> - <fox:outline internal-destination="sec7"> + </fo:bookmark> + <fo:bookmark internal-destination="sec7"> <fox:label>Bugs</fox:label> - </fox:outline> - <fox:outline internal-destination="sec8"> + </fo:bookmark> + <fo:bookmark internal-destination="sec8"> <fox:label>Compiling FOP</fox:label> - </fox:outline> - <fox:outline internal-destination="sec9"> + </fo:bookmark> + <fo:bookmark internal-destination="sec9"> <fox:label>Getting Involved</fox:label> - </fox:outline> - <fox:outline internal-destination="sec10"> + </fo:bookmark> + <fo:bookmark internal-destination="sec10"> <fox:label>FOP Relevant Specifications</fox:label> - </fox:outline> - <fox:outline internal-destination="sec11"> + </fo:bookmark> + <fo:bookmark internal-destination="sec11"> <fox:label>License</fox:label> - </fox:outline> + </fo:bookmark> </fo:bookmark-tree> <!-- actual layout --> 1.10 +23 -23 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.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- BookmarkData.java 2 Jan 2005 20:42:50 -0000 1.9 +++ BookmarkData.java 4 Jan 2005 00:21:46 -0000 1.10 @@ -23,7 +23,7 @@ import java.util.HashMap; import org.apache.fop.fo.pagination.bookmarks.BookmarkTree; -import org.apache.fop.fo.extensions.Outline; +import org.apache.fop.fo.pagination.bookmarks.Bookmark; /** * An instance of this class is either a PDF bookmark-tree and @@ -33,8 +33,8 @@ public class BookmarkData extends OffDocumentItem implements Resolvable { private ArrayList subData = new ArrayList(); - // bookmark label - private String label = null; + // bookmark-title for this bookmark + private String bookmarkTitle = null; // ID Reference for this bookmark private String idRef; @@ -57,8 +57,8 @@ whenToProcess = END_OF_DOC; for (int count = 0; count < bookmarkTree.getBookmarks().size(); count++) { - Outline out = (Outline)(bookmarkTree.getBookmarks()).get(count); - addSubData(createBookmarkData(out)); + Bookmark bkmk = (Bookmark)(bookmarkTree.getBookmarks()).get(count); + addSubData(createBookmarkData(bkmk)); } } @@ -100,21 +100,21 @@ } /** - * Set the label for this bookmark. + * Set the title for this bookmark. * - * @param l the string label + * @param title the bookmark title */ - public void setLabel(String l) { - label = l; + public void setBookmarkTitle(String title) { + bookmarkTitle = title; } /** - * Get the label for this bookmark object. + * Get the title for this bookmark object. * - * @return the label string + * @return the bookmark title */ - public String getLabel() { - return label; + public String getBookmarkTitle() { + return bookmarkTitle; } /** @@ -195,20 +195,20 @@ } /** - * Create and return the bookmark data for this outline. + * Create and return the bookmark data for this bookmark * This creates a bookmark data with the destination - * and adds all the data from child outlines. + * and adds all the data from child bookmarks * - * @param outline the Outline object for which a bookmark entry should be + * @param bookmark the Bookmark object for which a bookmark entry should be * created * @return the new bookmark data */ - private BookmarkData createBookmarkData(Outline outline) { - BookmarkData data = new BookmarkData(outline.getInternalDestination()); - data.setLabel(outline.getLabel()); - for (int count = 0; count < outline.getOutlines().size(); count++) { - Outline out = (Outline)(outline.getOutlines()).get(count); - data.addSubData(createBookmarkData(out)); + private BookmarkData createBookmarkData(Bookmark bookmark) { + BookmarkData data = new BookmarkData(bookmark.getInternalDestination()); + data.setBookmarkTitle(bookmark.getBookmarkTitle()); + for (int count = 0; count < bookmark.getChildBookmarks().size(); count++) { + Bookmark bkmk = (Bookmark)(bookmark.getChildBookmarks()).get(count); + data.addSubData(createBookmarkData(bkmk)); } return data; } 1.22 +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.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- Constants.java 2 Jan 2005 20:42:50 -0000 1.21 +++ Constants.java 4 Jan 2005 00:21:46 -0000 1.22 @@ -114,7 +114,8 @@ int FO_TITLE = 55; int FO_WRAPPER = 56; int FO_BOOKMARK_TREE = 57; - int FRM_OBJ_COUNT = 57; + int FO_BOOKMARK = 58; + int FRM_OBJ_COUNT = 58; // Masks int COMPOUND_SHIFT = 9; 1.10 +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.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- FOElementMapping.java 2 Jan 2005 20:42:50 -0000 1.9 +++ FOElementMapping.java 4 Jan 2005 00:21:46 -0000 1.10 @@ -46,6 +46,7 @@ foObjs.put("declarations", new DeclarationsMaker()); foObjs.put("color-profile", new ColorProfileMaker()); foObjs.put("bookmark-tree", new BookmarkTreeMaker()); + foObjs.put("bookmark", new BookmarkMaker()); foObjs.put("page-sequence", new PageSequenceMaker()); foObjs.put("layout-master-set", new LayoutMasterSetMaker()); foObjs.put("page-sequence-master", @@ -149,6 +150,12 @@ static class BookmarkTreeMaker extends ElementMapping.Maker { public FONode make(FONode parent) { return new org.apache.fop.fo.pagination.bookmarks.BookmarkTree(parent); + } + } + + static class BookmarkMaker extends ElementMapping.Maker { + public FONode make(FONode parent) { + return new org.apache.fop.fo.pagination.bookmarks.Bookmark(parent); } } 1.14 +10 -2 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.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- PropertySets.java 2 Jan 2005 20:42:50 -0000 1.13 +++ PropertySets.java 4 Jan 2005 00:21:46 -0000 1.14 @@ -202,7 +202,15 @@ elem.addProperty(Constants.PR_RENDERING_INTENT); elem = elements[Constants.FO_BOOKMARK_TREE]; -// elem.addContent(Constants.FO_BOOKMARK); + elem.addContent(Constants.FO_BOOKMARK); + + elem = elements[Constants.FO_BOOKMARK]; +// elem.addContent(Constants.FO_BOOKMARK_TITLE); + elem.addContent(Constants.FO_BOOKMARK); + elem.addProperties(CommonAccessibilityProperties); + elem.addProperty(Constants.PR_EXTERNAL_DESTINATION); + elem.addProperty(Constants.PR_INTERNAL_DESTINATION); + elem.addProperty(Constants.PR_STARTING_STATE); elem = elements[Constants.FO_PAGE_SEQUENCE]; elem.addProperty(Constants.PR_COUNTRY); 1.6 +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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ExtensionElementMapping.java 2 Jan 2005 20:42:50 -0000 1.5 +++ ExtensionElementMapping.java 4 Jan 2005 00:21:46 -0000 1.6 @@ -44,14 +44,7 @@ protected void initialize() { if (foObjs == null) { foObjs = new HashMap(); - foObjs.put("outline", new O()); foObjs.put("label", new L()); - } - } - - static class O extends ElementMapping.Maker { - public FONode make(FONode parent) { - return new Outline(parent); } } 1.2 +5 -7 xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java Index: BookmarkTree.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BookmarkTree.java 2 Jan 2005 20:42:51 -0000 1.1 +++ BookmarkTree.java 4 Jan 2005 00:21:46 -0000 1.2 @@ -24,8 +24,6 @@ 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; @@ -52,7 +50,7 @@ * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ protected void addChildNode(FONode obj) { - if (obj instanceof Outline) { + if (obj instanceof Bookmark) { bookmarks.add(obj); } } @@ -62,7 +60,7 @@ */ protected void endOfNode() throws FOPException { if (bookmarks == null) { - missingChildElementError("(fox:outline+)"); + missingChildElementError("(fo:bookmark+)"); } ((Root) parent).setBookmarkTree(this); } @@ -73,8 +71,8 @@ */ protected void validateChildNode(Locator loc, String nsURI, String localName) throws ValidationException { - if (!(nsURI == ExtensionElementMapping.URI && - localName.equals("outline"))) { + if (!(nsURI == FO_URI && + localName.equals("bookmark"))) { invalidChildError(loc, nsURI, localName); } } 1.1 xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java Index: Bookmark.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 $ */ package org.apache.fop.fo.pagination.bookmarks; import java.util.ArrayList; import org.xml.sax.Attributes; 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.extensions.Label; /** * The fo:bookmark formatting object, first introduced in the * XSL 1.1 WD. Prototype version only, subject to change as * XSL 1.1 WD evolves. */ public class Bookmark extends FObj { private Label bookmarkTitle; private ArrayList childBookmarks = new ArrayList(); private String internalDestination; private String externalDestination; /** * Create a new bookmark object. * * @param parent the parent fo node */ public Bookmark(FONode parent) { super(parent); } /** * The attributes on the bookmark object are the internal and external * destination. One of these is required. * * @see org.apache.fop.fo.FObj#processNode * @todo to include all properties of fo:bookmark */ public void processNode(String elementName, Locator locator, Attributes attlist, PropertyList propertyList) throws FOPException { internalDestination = attlist.getValue("internal-destination"); externalDestination = attlist.getValue("external-destination"); if (externalDestination != null && !externalDestination.equals("")) { getLogger().warn("fo:bookmark external-destination not supported currently."); } if (internalDestination == null || internalDestination.equals("")) { getLogger().warn("fo:bookmark requires an internal-destination."); } } /** * @see org.apache.fop.fo.FONode#addChildNode(FONode) */ protected void addChildNode(FONode obj) { if (obj instanceof Label) { bookmarkTitle = (Label)obj; } else if (obj instanceof Bookmark) { childBookmarks.add(obj); } } /** * Get the bookmark title for this bookmark * * @return the bookmark title string or an empty string if not found */ public String getBookmarkTitle() { return bookmarkTitle == null ? "" : bookmarkTitle.toString(); } public String getInternalDestination() { return internalDestination; } public String getExternalDestination() { return externalDestination; } public ArrayList getChildBookmarks() { return childBookmarks; } /** * @see org.apache.fop.fo.FObj#getName() */ public String getName() { return "fo:bookmark"; } /** * @see org.apache.fop.fo.FObj#getNameId() */ public int getNameId() { return FO_BOOKMARK; } } 1.65 +2 -2 xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java Index: PDFRenderer.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- PDFRenderer.java 28 Dec 2004 13:54:30 -0000 1.64 +++ PDFRenderer.java 4 Jan 2005 00:21:47 -0000 1.65 @@ -311,10 +311,10 @@ if (parentBookmarkItem == null) { PDFOutline outlineRoot = pdfDoc.getOutlineRoot(); pdfOutline = pdfDoc.getFactory().makeOutline(outlineRoot, - bookmarkItem.getLabel(), intDest, yoffset); + bookmarkItem.getBookmarkTitle(), intDest, yoffset); } else { pdfOutline = pdfDoc.getFactory().makeOutline(parentBookmarkItem, - bookmarkItem.getLabel(), intDest, yoffset); + bookmarkItem.getBookmarkTitle(), intDest, yoffset); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]