vmote       2003/08/20 12:46:48

  Modified:    src/java/org/apache/fop/apps Document.java Driver.java
               src/java/org/apache/fop/extensions Bookmarks.java
               src/java/org/apache/fop/fo FOTreeControl.java FObj.java
               src/java/org/apache/fop/layout LayoutStrategy.java
               src/java/org/apache/fop/layoutmgr LayoutManagerLS.java
  Log:
  move logic for creating bookmarks/outlines in the area tree from 
extensions/Bookmarks to layoutmgr/LayoutManagerLS
  
  Revision  Changes    Path
  1.2       +12 -2     xml-fop/src/java/org/apache/fop/apps/Document.java
  
  Index: Document.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Document.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Document.java     20 Aug 2003 18:09:45 -0000      1.1
  +++ Document.java     20 Aug 2003 19:46:47 -0000      1.2
  @@ -58,7 +58,7 @@
   import org.apache.fop.area.AreaTree;
   import org.apache.fop.area.AreaTreeModel;
   
  -
  +import org.apache.fop.extensions.Bookmarks;
   import org.apache.fop.fo.FOTreeControl;
   import org.apache.fop.fo.FOTreeEvent;
   import org.apache.fop.fo.FOTreeListener;
  @@ -101,6 +101,8 @@
       public AreaTree areaTree;
       public AreaTreeModel atModel;
   
  +    private Bookmarks bookmarks;
  +
       /**
        * Main constructor
        * @param driver the Driver object that is the "parent" of this Document
  @@ -346,6 +348,14 @@
        */
       public AreaTree getAreaTree() {
           return areaTree;
  +    }
  +
  +    public void setBookmarks(Bookmarks bookmarks) {
  +        this.bookmarks = bookmarks;
  +    }
  +
  +    public Bookmarks getBookmarks() {
  +        return bookmarks;
       }
   
   }
  
  
  
  1.33      +1 -1      xml-fop/src/java/org/apache/fop/apps/Driver.java
  
  Index: Driver.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/apps/Driver.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- Driver.java       20 Aug 2003 18:09:45 -0000      1.32
  +++ Driver.java       20 Aug 2003 19:46:47 -0000      1.33
  @@ -579,7 +579,7 @@
           /** LayoutStrategy is hard-wired for now, but needs to be made
           accessible through the API and/or configuration */
           if (foInputHandler instanceof FOTreeHandler) {
  -            currentDocument.setLayoutStrategy(new LayoutManagerLS());
  +            currentDocument.setLayoutStrategy(new LayoutManagerLS(currentDocument));
           }
           treeBuilder.foTreeControl = currentDocument;
           try {
  
  
  
  1.11      +5 -28     xml-fop/src/java/org/apache/fop/extensions/Bookmarks.java
  
  Index: Bookmarks.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/extensions/Bookmarks.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- Bookmarks.java    20 Aug 2003 18:09:45 -0000      1.10
  +++ Bookmarks.java    20 Aug 2003 19:46:47 -0000      1.11
  @@ -50,11 +50,8 @@
    */
   package org.apache.fop.extensions;
   
  -import org.apache.fop.fo.FOTreeHandler;
   import org.apache.fop.fo.FONode;
   import org.apache.fop.fo.FOTreeVisitor;
  -import org.apache.fop.area.AreaTree;
  -import org.apache.fop.apps.Document;
   
   import java.util.ArrayList;
   
  @@ -65,7 +62,6 @@
    */
   public class Bookmarks extends ExtensionObj {
       private ArrayList outlines = new ArrayList();
  -    private BookmarkData data;
   
       /**
        * Create a new Bookmarks object.
  @@ -89,39 +85,20 @@
       }
   
       /**
  -     * Get the data created for this bookmark.
  -     *
  -     * @return the bookmark data
  -     */
  -    public BookmarkData getData() {
  -        return data;
  -    }
  -
  -    /**
        * When this element is finished then it can create
        * the bookmark data from the child elements and add
        * the extension to the area tree.
        */
       public void end() {
  -        getLogger().debug("adding bookmarks to area tree");
  -        data = new BookmarkData();
  -        for (int count = 0; count < outlines.size(); count++) {
  -            Outline out = (Outline)outlines.get(count);
  -            data.addSubData(out.getData());
  -        }
  -        // add data to area tree for resolving and handling
  -        if (foInputHandler instanceof FOTreeHandler) {
  -            FOTreeHandler foth = (FOTreeHandler)foInputHandler;
  -            Document doc = (Document)foth.foTreeControl;
  -            AreaTree at = doc.getAreaTree();
  -            at.addTreeExtension(data);
  -            data.setAreaTree(at);
  -        }
  +        getFOTreeControl().setBookmarks(this);
       }
   
       public void acceptVisitor(FOTreeVisitor fotv) {
           fotv.serveVisitor(this);
       }
   
  -}
  +    public ArrayList getOutlines() {
  +        return outlines;
  +    }
   
  +}
  
  
  
  1.3       +6 -1      xml-fop/src/java/org/apache/fop/fo/FOTreeControl.java
  
  Index: FOTreeControl.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOTreeControl.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- FOTreeControl.java        19 Aug 2003 06:54:31 -0000      1.2
  +++ FOTreeControl.java        20 Aug 2003 19:46:47 -0000      1.3
  @@ -55,6 +55,7 @@
   import java.util.Map;
   
   // FOP
  +import org.apache.fop.extensions.Bookmarks;
   import org.apache.fop.fonts.FontMetrics;
   
   /**
  @@ -76,5 +77,9 @@
       public boolean isSetupValid();
   
       public Map getFonts();
  +
  +    public void setBookmarks(Bookmarks bookmarks);
  +
  +    public Bookmarks getBookmarks();
   
   }
  
  
  
  1.13      +4 -0      xml-fop/src/java/org/apache/fop/fo/FObj.java
  
  Index: FObj.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FObj.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- FObj.java 19 Aug 2003 00:53:52 -0000      1.12
  +++ FObj.java 20 Aug 2003 19:46:47 -0000      1.13
  @@ -260,6 +260,10 @@
           foInputHandler = foih;
       }
   
  +    public FOInputHandler getFOInputHandler() {
  +        return foInputHandler;
  +    }
  +
       /**
        * lets outside sources access the property list
        * first used by PageNumberCitation to find the "id" property
  
  
  
  1.5       +7 -1      xml-fop/src/java/org/apache/fop/layout/LayoutStrategy.java
  
  Index: LayoutStrategy.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layout/LayoutStrategy.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LayoutStrategy.java       20 Aug 2003 17:56:24 -0000      1.4
  +++ LayoutStrategy.java       20 Aug 2003 19:46:47 -0000      1.5
  @@ -51,6 +51,7 @@
   
   package org.apache.fop.layout;
   
  +import org.apache.fop.apps.Document;
   import org.apache.fop.apps.FOPException;
   import org.apache.fop.area.AreaTree;
   import org.apache.fop.fo.pagination.PageSequence;
  @@ -63,6 +64,11 @@
   public abstract class LayoutStrategy {
   
       private String name = "undefined";
  +    public Document document;
  +
  +    public LayoutStrategy(Document document) {
  +        this.document = document;
  +    }
   
       /**
        * Returns the name of this LayoutStrategy.
  
  
  
  1.5       +33 -1     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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LayoutManagerLS.java      20 Aug 2003 17:56:24 -0000      1.4
  +++ LayoutManagerLS.java      20 Aug 2003 19:46:47 -0000      1.5
  @@ -50,11 +50,15 @@
    */
   package org.apache.fop.layoutmgr;
   
  +import org.apache.fop.extensions.BookmarkData;
  +import org.apache.fop.extensions.Outline;
  +import org.apache.fop.apps.Document;
   import org.apache.fop.apps.FOPException;
   import org.apache.fop.layout.LayoutStrategy;
   import org.apache.fop.area.AreaTree;
   import org.apache.fop.area.Title;
   import org.apache.fop.fo.pagination.PageSequence;
  +import org.apache.fop.fo.FOTreeHandler;
   
   /**
    * The implementation of LayoutStrategy for the "redesign" or second generation
  @@ -64,6 +68,10 @@
   
       private static String name = "layoutmgr";
   
  +    public LayoutManagerLS(Document document) {
  +        super(document);
  +    }
  +
       /**
        * Runs the formatting of this page sequence into the given area tree
        *
  @@ -86,6 +94,8 @@
               return;
           }
   
  +        addBookmarksToAreaTree();
  +
           // Initialize if already used?
           //    this.layoutMasterSet.resetPageMasters();
           if (pageSeq.getPageSequenceMaster() != null) {
  @@ -119,6 +129,28 @@
           pageSeq.setCurrentPageNumber(pageLM.getPageCount());
           // Tell the root the last page number we created.
           
pageSeq.getRoot().setRunningPageNumberCounter(pageSeq.getCurrentPageNumber());
  +    }
  +
  +    /**
  +     * When this element is finished then it can create
  +     * the bookmark data from the child elements and add
  +     * the extension to the area tree.
  +     */
  +    public void addBookmarksToAreaTree() {
  +        document.getDriver().getLogger().debug("adding bookmarks to area tree");
  +        BookmarkData data = new BookmarkData();
  +        for (int count = 0; count < document.getBookmarks().getOutlines().size(); 
count++) {
  +            Outline out = 
(Outline)(document.getBookmarks().getOutlines()).get(count);
  +            data.addSubData(out.getData());
  +        }
  +        // add data to area tree for resolving and handling
  +        if (document.getBookmarks().getFOInputHandler() instanceof FOTreeHandler) {
  +            FOTreeHandler foth = 
(FOTreeHandler)document.getBookmarks().getFOInputHandler();
  +            Document doc = (Document)foth.foTreeControl;
  +            AreaTree at = doc.getAreaTree();
  +            at.addTreeExtension(data);
  +            data.setAreaTree(at);
  +        }
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to