You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by gm...@apache.org on 2005/05/01 00:57:08 UTC
cvs commit: xml-fop/src/java/org/apache/fop/area AreaTreeHandler.java
gmazza 2005/04/30 15:57:08
Modified: src/java/org/apache/fop/layoutmgr Tag:
Temp_KnuthStylePageBreaking
PageSequenceLayoutManager.java
LayoutManagerMapping.java LayoutManagerMaker.java
src/java/org/apache/fop/area Tag:
Temp_KnuthStylePageBreaking AreaTreeHandler.java
Log:
-- Modified the PSLM constructor and mapping Maker to take an
AreaTreeHandler object. The Maker also returns a PSLM object to allow
for future detachment of PSLM from increasingly ill-fitting
AbstractLayoutManager and/or LayoutManager.
-- Removed areaTreeModel instance variable from PSLM hopefully
to increase code comprehension (better clarifies that the
ATM is owned by the ATH.)
Revision Changes Path
No revision
No revision
1.50.2.21 +40 -36 xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
Index: PageSequenceLayoutManager.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java,v
retrieving revision 1.50.2.20
retrieving revision 1.50.2.21
diff -u -r1.50.2.20 -r1.50.2.21
--- PageSequenceLayoutManager.java 30 Apr 2005 05:14:08 -0000 1.50.2.20
+++ PageSequenceLayoutManager.java 30 Apr 2005 22:57:08 -0000 1.50.2.21
@@ -43,11 +43,37 @@
import java.util.List;
/**
- * LayoutManager for a PageSequence.
+ * LayoutManager for a PageSequence. This class is instantiated by
+ * area.AreaTreeHandler for each fo:page-sequence found in the
+ * input document.
*/
public class PageSequenceLayoutManager extends AbstractLayoutManager {
+
+ /**
+ * AreaTreeHandler which activates the PSLM and controls
+ * the rendering of its pages.
+ */
+ private AreaTreeHandler areaTreeHandler;
+
+ /**
+ * fo:page-sequence formatting object being
+ * processed by this class
+ */
private PageSequence pageSeq;
+ /**
+ * Current page-viewport-area being filled by
+ * the PSLM.
+ */
+ private PageViewport curPV = null;
+
+ /**
+ * Zero-based index of column (Normal Flow) in span (of the PV)
+ * being filled. See XSL Rec description of fo:region-body
+ * and fop.Area package classes for more information.
+ */
+ private int curFlowIdx = -1;
+
/*
private static class BlockBreakPosition extends LeafPosition {
protected BreakPoss breakps;
@@ -61,22 +87,6 @@
private int startPageNum = 0;
private int currentPageNum = 0;
- /** Current page-viewport-area being filled. */
- private PageViewport curPV = null;
-
- /** Zero-based index of column (Normal Flow) in span being filled. */
- private int curFlowIdx = -1;
-
- /**
- * AreaTreeHandler which activates this PSLM.
- */
- private AreaTreeHandler areaTreeHandler;
-
- /**
- * AreaTreeModel that this PSLM sends pages to.
- */
- private AreaTreeModel areaTreeModel;
-
/**
* The single FlowLayoutManager object, which processes
* the single fo:flow of the fo:page-sequence
@@ -90,23 +100,15 @@
//private HashMap staticContentLMs = new HashMap(4);
/**
- * Constructor - activated by AreaTreeHandler for each
- * fo:page-sequence in the input FO stream
+ * Constructor
*
- * @param pageSeq the page-sequence formatting object
- */
- public PageSequenceLayoutManager(PageSequence pageSeq) {
- super(pageSeq);
- this.pageSeq = pageSeq;
- }
-
- /**
- * Set the AreaTreeHandler
- * @param areaTreeHandler the area tree handler object
+ * @param ath the area tree handler object
+ * @param pseq fo:page-sequence to process
*/
- public void setAreaTreeHandler(AreaTreeHandler areaTreeHandler) {
- this.areaTreeHandler = areaTreeHandler;
- areaTreeModel = areaTreeHandler.getAreaTreeModel();
+ public PageSequenceLayoutManager(AreaTreeHandler ath, PageSequence pseq) {
+ super(pseq);
+ this.areaTreeHandler = ath;
+ this.pageSeq = pseq;
}
/**
@@ -134,7 +136,7 @@
title = (LineArea) clm.getParentArea(null); // can improve
}
- areaTreeModel.startPageSequence(title);
+ areaTreeHandler.getAreaTreeModel().startPageSequence(title);
log.debug("Starting layout");
curPV = makeNewPage(false, true, false);
@@ -342,6 +344,8 @@
* @return the layout manager for the marker contents
*/
public Marker retrieveMarker(String name, int pos, int boundary) {
+ AreaTreeModel areaTreeModel = areaTreeHandler.getAreaTreeModel();
+
// get marker from the current markers on area tree
Marker mark = (Marker)curPV.getMarker(name, pos);
if (mark == null && boundary != EN_PAGE) {
@@ -424,7 +428,7 @@
if (sc == null) {
return;
}
-
+
RegionViewport rv = curPV.getPage().getRegionViewport(regionID);
StaticContentLayoutManager lm;
lm = (StaticContentLayoutManager)
@@ -462,7 +466,7 @@
layoutSideRegion(FO_REGION_START);
layoutSideRegion(FO_REGION_END);
// Queue for ID resolution and rendering
- areaTreeModel.addPage(curPV);
+ areaTreeHandler.getAreaTreeModel().addPage(curPV);
log.debug("page finished: " + curPV.getPageNumberString() + ", current num: " + currentPageNum);
curPV = null;
curFlowIdx = -1;
1.7.2.3 +7 -8 xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java
Index: LayoutManagerMapping.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMapping.java,v
retrieving revision 1.7.2.2
retrieving revision 1.7.2.3
diff -u -r1.7.2.2 -r1.7.2.3
--- LayoutManagerMapping.java 24 Apr 2005 23:54:34 -0000 1.7.2.2
+++ LayoutManagerMapping.java 30 Apr 2005 22:57:08 -0000 1.7.2.3
@@ -58,6 +58,7 @@
import org.apache.fop.fo.pagination.PageSequence;
import org.apache.fop.fo.pagination.StaticContent;
import org.apache.fop.fo.pagination.Title;
+import org.apache.fop.area.AreaTreeHandler;
import org.apache.fop.layoutmgr.list.ListBlockLayoutManager;
import org.apache.fop.layoutmgr.list.ListItemLayoutManager;
@@ -109,7 +110,6 @@
makers.put(PageNumber.class, new PageNumberLayoutManagerMaker());
makers.put(PageNumberCitation.class,
new PageNumberCitationLayoutManagerMaker());
- makers.put(PageSequence.class, new PageSequenceLayoutManagerMaker());
makers.put(Table.class, new TableLayoutManagerMaker());
makers.put(TableBody.class, new /*TableBodyLayoutManager*/Maker());
makers.put(TableColumn.class, new /*TableColumnLayoutManager*/Maker());
@@ -153,6 +153,11 @@
return (LayoutManager) lms.get(0);
}
+ public PageSequenceLayoutManager makePageSequenceLayoutManager(
+ AreaTreeHandler ath, PageSequence ps) {
+ return new PageSequenceLayoutManager(ath, ps);
+ }
+
public static class Maker {
public void make(FONode node, List lms) {
// no layout manager
@@ -301,12 +306,6 @@
}
}
- public static class PageSequenceLayoutManagerMaker extends Maker {
- public void make(FONode node, List lms) {
- lms.add(new PageSequenceLayoutManager((PageSequence) node));
- }
- }
-
public static class TableLayoutManagerMaker extends Maker {
/*
1.2.2.2 +12 -1 xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMaker.java
Index: LayoutManagerMaker.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/layoutmgr/LayoutManagerMaker.java,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -u -r1.2.2.1 -r1.2.2.2
--- LayoutManagerMaker.java 24 Apr 2005 23:54:34 -0000 1.2.2.1
+++ LayoutManagerMaker.java 30 Apr 2005 22:57:08 -0000 1.2.2.2
@@ -19,6 +19,8 @@
import java.util.List;
import org.apache.fop.fo.FONode;
+import org.apache.fop.fo.pagination.PageSequence;
+import org.apache.fop.area.AreaTreeHandler;
/**
@@ -44,5 +46,14 @@
*/
public LayoutManager makeLayoutManager(FONode node);
+ /**
+ * Make a PageSequenceLayoutManager object.
+ * @param ath the AreaTreeHandler object the PSLM interacts with
+ * @param ps the fo:page-sequence object this PSLM will process
+ * @return The created PageSequenceLayoutManager object
+ */
+ public PageSequenceLayoutManager makePageSequenceLayoutManager(
+ AreaTreeHandler ath, PageSequence ps);
+
}
No revision
No revision
1.34.2.2 +4 -4 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.34.2.1
retrieving revision 1.34.2.2
diff -u -r1.34.2.1 -r1.34.2.2
--- AreaTreeHandler.java 24 Apr 2005 23:54:34 -0000 1.34.2.1
+++ AreaTreeHandler.java 30 Apr 2005 22:57:08 -0000 1.34.2.2
@@ -230,9 +230,9 @@
// If no main flow, nothing to layout!
if (pageSequence.getMainFlow() != null) {
PageSequenceLayoutManager pageSLM;
- pageSLM = (PageSequenceLayoutManager)
- getLayoutManagerMaker().makeLayoutManager(pageSequence);
- pageSLM.setAreaTreeHandler(this);
+ pageSLM =
+ getLayoutManagerMaker().makePageSequenceLayoutManager(this,
+ pageSequence);
pageSLM.activateLayout();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org