]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
move extensions/BookmarkData to area/extensions/BookmarkData
authorWilliam Victor Mote <vmote@apache.org>
Thu, 21 Aug 2003 18:17:49 +0000 (18:17 +0000)
committerWilliam Victor Mote <vmote@apache.org>
Thu, 21 Aug 2003 18:17:49 +0000 (18:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196820 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/area/extensions/BookmarkData.java [new file with mode: 0644]
src/java/org/apache/fop/extensions/BookmarkData.java [deleted file]
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

diff --git a/src/java/org/apache/fop/area/extensions/BookmarkData.java b/src/java/org/apache/fop/area/extensions/BookmarkData.java
new file mode 100644 (file)
index 0000000..f8afe55
--- /dev/null
@@ -0,0 +1,271 @@
+/*
+ * $Id$
+ * ============================================================================
+ *                    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
+ *    apache@apache.org.
+ * 
+ * 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 <jtauber@jtauber.com>. 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);
+            }
+        }
+    }
+}
+
diff --git a/src/java/org/apache/fop/extensions/BookmarkData.java b/src/java/org/apache/fop/extensions/BookmarkData.java
deleted file mode 100644 (file)
index 1f5f04a..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * $Id: BookmarkData.java,v 1.5 2003/03/05 20:40:18 jeremias 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
- *    apache@apache.org.
- * 
- * 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 <jtauber@jtauber.com>. For more information on the Apache
- * Software Foundation, please see <http://www.apache.org/>.
- */ 
-package org.apache.fop.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);
-            }
-        }
-    }
-}
-
index ff3b840fbace0bfbae6596c80d229d0693d391b9..4b4a7830829cf1d946c36c76e63e3e86fe9e0fc7 100644 (file)
@@ -57,6 +57,7 @@ import org.apache.fop.apps.FOPException;
 import java.util.ArrayList;
 
 import org.xml.sax.Attributes;
+import org.apache.fop.area.extensions.BookmarkData;
 
 /**
  * The outline object for the pdf bookmark extension.
index 2757b798f40d4bde97f01d048adb285688c90b8e..0f6036c1c38372bd46733fe7344cea86c0175cd3 100644 (file)
@@ -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;
index 5ae4d098cabcac22c41b61dc94f54d33e20dadd3..43420e090d3eb178c40c2e23cf3113e5e0045b2f 100644 (file)
@@ -94,7 +94,7 @@ import org.apache.fop.pdf.PDFLink;
 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;