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]