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]