gmazza 2004/08/16 04:59:52 Modified: src/java/org/apache/fop/area AreaTreeHandler.java src/java/org/apache/fop/fo FObj.java src/java/org/apache/fop/fo/flow Wrapper.java src/java/org/apache/fop/fo/pagination Root.java src/java/org/apache/fop/layoutmgr LMiter.java RetrieveMarkerLayoutManager.java Removed: src/java/org/apache/fop/fo LMVisited.java src/java/org/apache/fop/layoutmgr AddLMVisitor.java Log: 1.) fo:wrapper layout initialization logic moved from AddLMVisitor to fo.flow.Wrapper. 2.) Temporary class LMVisited dropped. 3.) AddLMVisitor dropped, its LM list moved to its parent AreaTreeHandler object. Revision Changes Path 1.3 +22 -14 xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java Index: AreaTreeHandler.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/AreaTreeHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AreaTreeHandler.java 24 Jul 2004 22:56:30 -0000 1.2 +++ AreaTreeHandler.java 16 Aug 2004 11:59:51 -0000 1.3 @@ -35,11 +35,11 @@ import org.apache.fop.apps.FOUserAgent; import org.apache.fop.area.extensions.BookmarkData; import org.apache.fop.fo.FOInputHandler; +import org.apache.fop.fo.FObj; import org.apache.fop.fo.extensions.Outline; import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fo.pagination.PageSequence; import org.apache.fop.fonts.FontInfo; -import org.apache.fop.layoutmgr.AddLMVisitor; import org.apache.fop.layoutmgr.ContentLayoutManager; import org.apache.fop.layoutmgr.InlineStackingLayoutManager; import org.apache.fop.layoutmgr.LMiter; @@ -88,9 +88,8 @@ // count of number of pages rendered private int pageCount; - /** Useful only for allowing subclasses of AddLMVisitor to be set by those - extending FOP **/ - private AddLMVisitor addLMVisitor = null; + /** The List object to which FO's should add Layout Managers */ + protected List currentLMList; // AreaTreeModel in use private AreaTreeModel model; @@ -452,16 +451,25 @@ return title; } - + /** - * Public accessor to get the AddLMVisitor object that should be used. - * @return the AddLMVisitor object that should be used. + * Accessor for the currentLMList. + * @return the currentLMList. + * @todo see if should have initialization of LM list occur here */ - public AddLMVisitor getAddLMVisitor() { - if (this.addLMVisitor == null) { - this.addLMVisitor = new AddLMVisitor(); - } - return this.addLMVisitor; + public List getCurrentLMList() { + return currentLMList; + } + + /** + * + * @param fobj the FObj object for which a layout manager should be created + * @param lmList the list to which the newly created layout manager(s) + * should be added + */ + public void addLayoutManager(FObj fobj, List lmList) { + currentLMList = lmList; + fobj.addLayoutManager(currentLMList); } - } + 1.67 +0 -1 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.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- FObj.java 13 Aug 2004 12:29:51 -0000 1.66 +++ FObj.java 16 Aug 2004 11:59:51 -0000 1.67 @@ -29,7 +29,6 @@ import org.apache.fop.fo.flow.Marker; import org.apache.fop.fo.properties.Property; import org.apache.fop.fo.properties.PropertyMaker; -import org.apache.fop.layoutmgr.AddLMVisitor; import org.xml.sax.Attributes; import org.xml.sax.Locator; 1.12 +23 -6 xml-fop/src/java/org/apache/fop/fo/flow/Wrapper.java Index: Wrapper.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/Wrapper.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Wrapper.java 8 Aug 2004 19:04:49 -0000 1.11 +++ Wrapper.java 16 Aug 2004 11:59:51 -0000 1.12 @@ -18,11 +18,14 @@ package org.apache.fop.fo.flow; +// Java +import java.util.List; +import java.util.ListIterator; + // FOP import org.apache.fop.fo.FONode; +import org.apache.fop.fo.FObj; import org.apache.fop.fo.FObjMixed; -import org.apache.fop.layoutmgr.AddLMVisitor; -import org.apache.fop.fo.LMVisited; /** * Implementation for fo:wrapper formatting object. @@ -32,7 +35,7 @@ * Content: (#PCDATA|%inline;|%block;)* * Properties: id */ -public class Wrapper extends FObjMixed implements LMVisited { +public class Wrapper extends FObjMixed { /** * @param parent FONode that is the parent of this object @@ -41,10 +44,24 @@ super(parent); } - public void acceptVisitor(AddLMVisitor aLMV) { - aLMV.serveWrapper(this); + /** + * @see org.apache.fop.fo.FObj#addLayoutManager(List) + * @todo remove null check when vCN() & endOfNode() implemented + */ + public void addLayoutManager(List list) { + ListIterator baseIter = getChildNodes(); + if (baseIter == null) { + return; + } + while (baseIter.hasNext()) { + FObj child = (FObj) baseIter.next(); + child.addLayoutManager(list); + } } - + + /** + * @see org.apache.fop.fo.FObj#getName() + */ public String getName() { return "fo:wrapper"; } 1.23 +0 -1 xml-fop/src/java/org/apache/fop/fo/pagination/Root.java Index: Root.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Root.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- Root.java 8 Aug 2004 18:39:25 -0000 1.22 +++ Root.java 16 Aug 2004 11:59:52 -0000 1.23 @@ -31,7 +31,6 @@ import org.apache.fop.fo.extensions.ExtensionElementMapping; import org.apache.fop.fo.extensions.Bookmarks; import org.apache.fop.fo.FOInputHandler; -import org.apache.fop.layoutmgr.AddLMVisitor; /** * The fo:root formatting object. Contains page masters, page-sequences. 1.9 +3 -2 xml-fop/src/java/org/apache/fop/layoutmgr/LMiter.java Index: LMiter.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LMiter.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- LMiter.java 13 Jul 2004 00:16:22 -0000 1.8 +++ LMiter.java 16 Aug 2004 11:59:52 -0000 1.9 @@ -18,6 +18,7 @@ package org.apache.fop.layoutmgr; +import org.apache.fop.area.AreaTreeHandler; import org.apache.fop.fo.FObj; import java.util.ArrayList; @@ -46,14 +47,14 @@ } protected boolean preLoadNext() { - AddLMVisitor addLMVisitor = lp.getAreaTreeHandler().getAddLMVisitor(); + AreaTreeHandler areaTreeHandler = lp.getAreaTreeHandler(); // skip over child FObj's that don't add lms while (baseIter != null && baseIter.hasNext()) { Object theobj = baseIter.next(); if (theobj instanceof FObj) { FObj fobj = (FObj) theobj; //listLMs.add(fobj.getLayoutManager()); - addLMVisitor.addLayoutManager(fobj, listLMs); + areaTreeHandler.addLayoutManager(fobj, listLMs); if (curPos < listLMs.size()) { return true; } 1.9 +4 -2 xml-fop/src/java/org/apache/fop/layoutmgr/RetrieveMarkerLayoutManager.java Index: RetrieveMarkerLayoutManager.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/RetrieveMarkerLayoutManager.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- RetrieveMarkerLayoutManager.java 15 May 2004 21:52:00 -0000 1.8 +++ RetrieveMarkerLayoutManager.java 16 Aug 2004 11:59:52 -0000 1.9 @@ -35,7 +35,7 @@ private String name; private int position; private int boundary; - private AddLMVisitor addLMVisitor = new AddLMVisitor(); + private List markerLMList = new ArrayList(10); /** * Create a new block container layout manager. @@ -86,6 +86,8 @@ } } + /** @todo unsure how markerLMList will get tied to main currentLMList + of AreaTreeHandler */ protected void loadLM() { if (loaded) { return; @@ -95,7 +97,7 @@ List list = new ArrayList(); Marker marker = retrieveMarker(name, position, boundary); if (marker != null) { - addLMVisitor.addLayoutManager(marker, list); + marker.addLayoutManager(markerLMList); if (list.size() > 0) { replaceLM = (LayoutManager)list.get(0); replaceLM.setParent(this);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]