aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Bryant <jbryant@apache.org>2007-04-02 14:53:03 +0000
committerJay Bryant <jbryant@apache.org>2007-04-02 14:53:03 +0000
commit3ce1aa3b1cbf562cf3e0e7481a7f54b821e356a8 (patch)
treea1515cba29dc343545ccf829700a42a9cbb95e51
parent63c20c75446c4d709210ac9d0d57f80306e6fd1e (diff)
downloadxmlgraphics-fop-3ce1aa3b1cbf562cf3e0e7481a7f54b821e356a8.tar.gz
xmlgraphics-fop-3ce1aa3b1cbf562cf3e0e7481a7f54b821e356a8.zip
New class to support named destinations
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@524800 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/fop/area/DestinationData.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/java/org/apache/fop/area/DestinationData.java b/src/java/org/apache/fop/area/DestinationData.java
new file mode 100644
index 000000000..920cd814a
--- /dev/null
+++ b/src/java/org/apache/fop/area/DestinationData.java
@@ -0,0 +1,112 @@
+package org.apache.fop.area;
+
+import java.util.List;
+
+import org.apache.fop.fo.extensions.destination.Destination;
+import org.apache.fop.area.PageViewport;
+/**
+ * An instance of this class is named destination from fox:destination
+ */
+public class DestinationData extends AbstractOffDocumentItem implements Resolvable {
+
+ // PDFReference (object reference) for this destination
+ private String goToReference;
+
+ // ID Reference for this bookmark
+ private String idRef;
+
+ // String Array to satisfy getIDRefs method
+ private String[] idRefs;
+
+ // PageViewport that the idRef item refers to
+ private PageViewport pageRef = null;
+
+ /**
+ * Create a new pdf destination data object.
+ * This is used by the destination to create a data object
+ * with a idref. During processing, this idref will be
+ * subsequently resolved to a particular PageViewport.
+ *
+ * @param destination the fo:bookmark object
+ */
+ public DestinationData(Destination destination) {
+ idRef = destination.getInternalDestination();
+ idRefs = new String[] {idRef};
+ }
+
+ /**
+ * Get the idref for this destination
+ *
+ * @return the idref for the destination
+ */
+ public String getIDRef() {
+ return idRef;
+ }
+
+ /**
+ * @see org.apache.fop.area.Resolvable#getIDRefs()
+ */
+ public String[] getIDRefs() {
+ return idRefs;
+ }
+
+ /**
+ * Get the PageViewport object that this destination refers to
+ *
+ * @return the PageViewport that this destination points to
+ */
+ public PageViewport getPageViewport() {
+ return pageRef;
+ }
+
+ /**
+ * Set the GoToReference for this destination
+ *
+ * @param goToReference the GoToReference to associate with this destination
+ */
+ public void setGoToReference(String goToReference) {
+ this.goToReference = goToReference;
+ }
+
+ /**
+ * Get the GoToReference for this destination
+ *
+ * @return the GoToReference associated with this destination
+ */
+ public String getGoToReference() {
+ return goToReference;
+ }
+
+ /**
+ * Check if this resolvable object has been resolved.
+ * For now, just return true.
+ * To do: Find a way to determine whether the destination has been resolved.
+ *
+ * @return true if this object has been resolved
+ */
+ public boolean isResolved() {
+ return true;
+ }
+
+ /**
+ * Resolves the idref of this object by getting the PageViewport
+ * object that corresponds to the IDRef
+ *
+ * @see org.apache.fop.area.Resolvable#resolveIDRef(String, List)
+ * @todo check to make sure it works if multiple bookmark-items
+ * have the same idref
+ */
+ public void resolveIDRef(String id, List pages) {
+ pageRef = (PageViewport) pages.get(0);
+ // TODO get rect area of id on page
+ }
+
+ /**
+ * @see org.apache.fop.area.OffDocumentItem#getName()
+ */
+ public String getName() {
+ return "Destination";
+ }
+
+}
+