vmote 2003/08/21 11:17:49 Modified: src/java/org/apache/fop/extensions Outline.java src/java/org/apache/fop/layoutmgr LayoutManagerLS.java src/java/org/apache/fop/render/pdf PDFRenderer.java Added: src/java/org/apache/fop/area/extensions BookmarkData.java Removed: src/java/org/apache/fop/extensions BookmarkData.java Log: move extensions/BookmarkData to area/extensions/BookmarkData Revision Changes Path 1.1 xml-fop/src/java/org/apache/fop/area/extensions/BookmarkData.java Index: BookmarkData.java =================================================================== /* * $Id: BookmarkData.java,v 1.1 2003/08/21 18:17:49 vmote Exp $ * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ * * Copyright (C) 1999-2003 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 * [EMAIL PROTECTED] * * 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 <[EMAIL PROTECTED]>. For more information on the Apache * Software Foundation, please see <http://www.apache.org/>. */ package org.apache.fop.area.extensions; import org.apache.fop.area.PageViewport; import org.apache.fop.area.Resolveable; import org.apache.fop.area.TreeExt; import org.apache.fop.area.AreaTree; import java.util.ArrayList; import java.util.List; import java.util.HashMap; /** * This class holds the PDF bookmark extension data. * This implements Resolveable and TreeExt so that it can be * added to the area tree as a resolveable tree extension. */ public class BookmarkData implements Resolveable, TreeExt { private ArrayList subData = new ArrayList(); private HashMap idRefs = new HashMap(); // area tree for the top level object to notify when resolved private AreaTree areaTree = null; private String idRef; private PageViewport pageRef = null; private String label = null; /** * Create a new bookmark data object. * This should only be call by the top level element as the * id reference will be null. */ public BookmarkData() { idRef = null; } /** * Create a new pdf bookmark data object. * This is used by the outlines to create a data object * with a id reference. The id reference is to be resolved. * * @param id the id reference */ public BookmarkData(String id) { idRef = id; idRefs.put(idRef, this); } /** * Set the area tree. * This should only be called for the top level element. * The area tree is used once resolving is complete. * * @param at the area tree for the current document */ public void setAreaTree(AreaTree at) { areaTree = at; } /** * Get the id reference for this data. * * @return the id reference */ public String getID() { return idRef; } /** * Add the child bookmark data object. * This adds a child bookmark in the bookmark hierarchy. * * @param sub the child bookmark data */ public void addSubData(BookmarkData sub) { subData.add(sub); idRefs.put(sub.getID(), sub); String[] ids = sub.getIDs(); for (int count = 0; count < ids.length; count++) { idRefs.put(ids[count], sub); } } /** * Set the label for this bookmark. * * @param l the string label */ public void setLabel(String l) { label = l; } /** * Get the label for this bookmark object. * * @return the label string */ public String getLabel() { return label; } /** * Get the size of child data objects. * * @return the number of child bookmark data */ public int getCount() { return subData.size(); } /** * Get the child data object. * * @param count the index to get * @return the child bookmark data */ public BookmarkData getSubData(int count) { return (BookmarkData)subData.get(count); } /** * Get the page that this resolves to. * * @return the PageViewport that this extension resolves to */ public PageViewport getPage() { return pageRef; } /** * Check if this tree extension is resolveable. * * @return true since this also implements Resolveable */ public boolean isResolveable() { return true; } /** * Get the mime type of this area tree extension. * * @return this tree extension applies to pdf */ public String getMimeType() { return "application/pdf"; } /** * Get the name of this area tree extension. * * @return the name of the PDF bookmark extension is "Bookmark" */ public String getName() { return "Bookmark"; } /** * Check if this resolveable object has been resolved. * Once the id reference is null then it has been resolved. * * @return true if this has been resolved */ public boolean isResolved() { return idRefs == null; } /** * Get the id references held by this object. * Also includes all id references of all children. * * @return the array of id references */ public String[] getIDs() { return (String[])idRefs.keySet().toArray(new String[] {}); } /** * Resolve this resolveable object. * This resolves the id reference and if possible also * resolves id references of child elements that have the same * id reference. * * @param id the id reference being resolved * @param pages the list of pages the the id reference resolves to */ public void resolve(String id, List pages) { // this method is buggy if (!id.equals(idRef)) { BookmarkData bd = (BookmarkData)idRefs.get(id); idRefs.remove(id); if (bd != null) { bd.resolve(id, pages); if (bd.isResolved()) { checkFinish(); } } else if (idRef == null) { checkFinish(); } } else { if (pages != null) { pageRef = (PageViewport)pages.get(0); } // TODO // get rect area of id on page idRefs.remove(idRef); checkFinish(); } } private void checkFinish() { if (idRefs.size() == 0) { idRefs = null; if (areaTree != null) { areaTree.handleTreeExtension(this, TreeExt.AFTER_PAGE); } } } } 1.3 +1 -0 xml-fop/src/java/org/apache/fop/extensions/Outline.java Index: Outline.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/extensions/Outline.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Outline.java 19 Aug 2003 00:53:52 -0000 1.2 +++ Outline.java 21 Aug 2003 18:17:49 -0000 1.3 @@ -57,6 +57,7 @@ import java.util.ArrayList; import org.xml.sax.Attributes; +import org.apache.fop.area.extensions.BookmarkData; /** * The outline object for the pdf bookmark extension. 1.6 +2 -2 xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerLS.java Index: LayoutManagerLS.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerLS.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- LayoutManagerLS.java 20 Aug 2003 19:46:47 -0000 1.5 +++ LayoutManagerLS.java 21 Aug 2003 18:17:49 -0000 1.6 @@ -50,7 +50,7 @@ */ package org.apache.fop.layoutmgr; -import org.apache.fop.extensions.BookmarkData; +import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.extensions.Outline; import org.apache.fop.apps.Document; import org.apache.fop.apps.FOPException; 1.11 +1 -1 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.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- PDFRenderer.java 20 Aug 2003 18:09:45 -0000 1.10 +++ PDFRenderer.java 21 Aug 2003 18:17:49 -0000 1.11 @@ -94,7 +94,7 @@ import org.apache.fop.pdf.PDFOutline; import org.apache.fop.pdf.PDFAnnotList; import org.apache.fop.pdf.PDFColor; -import org.apache.fop.extensions.BookmarkData; +import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.area.Trait; import org.apache.fop.area.TreeExt;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]