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]

Reply via email to