/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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.area; import java.util.List; import org.apache.fop.fo.extensions.destination.Destination; /** * An instance of this class is named destination from fox:destination */ public class DestinationData extends AbstractOffDocumentItem implements Resolvable { // 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; /** * 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) { this(destination.getInternalDestination()); } /** * Create a new named destination. * @param idRef the id reference of the destination */ public DestinationData(String idRef) { this.idRef = idRef; this.idRefs = new String[] {idRef}; } /** * Get the idref for this destination * * @return the idref for the destination */ public String getIDRef() { return idRef; } /** {@inheritDoc} */ 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; } /** * 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 * * {@inheritDoc} * TODO check to make sure it works if multiple bookmark-items * have the same idref */ public void resolveIDRef(String id, List<PageViewport> pages) { pageRef = pages.get(0); // TODO get rect area of id on page } /** {@inheritDoc} */ public String getName() { return "Destination"; } }