aboutsummaryrefslogtreecommitdiffstats
path: root/src/java
diff options
context:
space:
mode:
authorGlen Mazza <gmazza@apache.org>2005-03-13 04:14:04 +0000
committerGlen Mazza <gmazza@apache.org>2005-03-13 04:14:04 +0000
commitfbc248fb1e89778ced77d78ed0c3ff4f24efaf45 (patch)
treeb12726716da74e4194c2d4e49d18806ecf0b3e01 /src/java
parent2b20d5f7c614ea26fa6b2bc86094ffdaf9ec6ab5 (diff)
downloadxmlgraphics-fop-fbc248fb1e89778ced77d78ed0c3ff4f24efaf45.tar.gz
xmlgraphics-fop-fbc248fb1e89778ced77d78ed0c3ff4f24efaf45.zip
More simplifications to PSLM.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198490 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java')
-rw-r--r--src/java/org/apache/fop/layoutmgr/ContentLayoutManager.java19
-rw-r--r--src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java60
2 files changed, 32 insertions, 47 deletions
diff --git a/src/java/org/apache/fop/layoutmgr/ContentLayoutManager.java b/src/java/org/apache/fop/layoutmgr/ContentLayoutManager.java
index e1dc46e89..d6d9bb963 100644
--- a/src/java/org/apache/fop/layoutmgr/ContentLayoutManager.java
+++ b/src/java/org/apache/fop/layoutmgr/ContentLayoutManager.java
@@ -21,9 +21,11 @@ package org.apache.fop.layoutmgr;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.fo.FObj;
import org.apache.fop.fo.Constants;
+import org.apache.fop.fo.pagination.Title;
import org.apache.fop.fo.flow.Marker;
import org.apache.fop.area.Area;
import org.apache.fop.area.AreaTreeHandler;
+import org.apache.fop.area.LineArea;
import org.apache.fop.area.inline.InlineArea;
import org.apache.fop.area.Resolvable;
import org.apache.fop.area.PageViewport;
@@ -66,6 +68,23 @@ public class ContentLayoutManager implements InlineLevelLayoutManager {
}
/**
+ * Constructor using a fo:title formatting object
+ */
+ public ContentLayoutManager(Title foTitle) {
+ // get breaks then add areas to title
+ holder = new LineArea();
+
+ setUserAgent(foTitle.getUserAgent());
+
+ // use special layout manager to add the inline areas
+ // to the Title.
+ InlineLayoutManager lm;
+ lm = new InlineLayoutManager(foTitle);
+ addChildLM(lm);
+ fillArea(lm);
+ }
+
+ /**
* Set the FO object for this layout manager
*
* @param fo the fo for this layout manager
diff --git a/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java b/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
index 1c5948e34..83da86b3e 100644
--- a/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
+++ b/src/java/org/apache/fop/layoutmgr/PageSequenceLayoutManager.java
@@ -48,7 +48,6 @@ import org.apache.fop.fo.pagination.Region;
import org.apache.fop.fo.pagination.RegionBody;
import org.apache.fop.fo.pagination.SimplePageMaster;
import org.apache.fop.fo.pagination.StaticContent;
-import org.apache.fop.fo.pagination.Title;
import org.apache.fop.fo.properties.CommonMarginBlock;
import java.util.List;
@@ -143,29 +142,6 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
}
/**
- * Each fo:page-sequence may have an fo:title object.
- * @return the Title area
- */
- private LineArea getTitleArea(Title foTitle) {
- // get breaks then add areas to title
- LineArea title = new LineArea();
-
- ContentLayoutManager clm = new ContentLayoutManager(title);
- clm.setUserAgent(foTitle.getUserAgent());
- clm.setAreaTreeHandler(areaTreeHandler);
-
- // use special layout manager to add the inline areas
- // to the Title.
- InlineLayoutManager lm;
- lm = new InlineLayoutManager(foTitle);
- clm.addChildLM(lm);
-
- clm.fillArea(lm);
-
- return title;
- }
-
- /**
* Start the layout of this page sequence.
* This completes the layout of the page sequence
* which creates and adds all the pages to the area tree.
@@ -176,8 +152,12 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
pageNumberString = pageSeq.makeFormattedPageNumber(currentPageNum);
LineArea title = null;
+
if (pageSeq.getTitleFO() != null) {
- title = getTitleArea(pageSeq.getTitleFO());
+ ContentLayoutManager clm =
+ new ContentLayoutManager(pageSeq.getTitleFO());
+ clm.setAreaTreeHandler(areaTreeHandler);
+ title = (LineArea) clm.getParentArea(null); // can improve
}
areaTreeModel.startPageSequence(title);
@@ -201,9 +181,9 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
}
// TODO: Don't decrement currentPageNum when no pages are generated
currentPageNum--;
- log.debug("Ending layout");
finishPage();
pageSeq.getRoot().notifyPageSequenceFinished(currentPageNum, (currentPageNum - startPageNum) + 1);
+ log.debug("Ending layout");
}
/** @see org.apache.fop.layoutmgr.LayoutManager#isBogus() */
@@ -316,9 +296,9 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
* @param res the resolvable object that needs resolving
*/
public void addUnresolvedArea(String id, Resolvable res) {
- // add unresolved to tree
- // adds to the page viewport so it can serialize
+ // add to the page viewport so it can serialize
curPage.addUnresolvedIDRef(id, res);
+ // add unresolved to tree
areaTreeHandler.addUnresolvedIDRef(id, curPage);
}
@@ -512,19 +492,20 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
if (region == null) {
return;
}
- StaticContent flow = pageSeq.getStaticContent(region.getRegionName());
- if (flow == null) {
+ StaticContent sc = pageSeq.getStaticContent(region.getRegionName());
+ if (sc == null) {
return;
}
RegionViewport reg = curPage.getPage().getRegionViewport(region.getNameId());
StaticContentLayoutManager lm;
try {
- lm = getStaticContentLayoutManager(flow);
+ lm = (StaticContentLayoutManager)
+ areaTreeHandler.getLayoutManagerMaker().makeLayoutManager(sc);
} catch (FOPException e) {
log.error
("Failed to create a StaticContentLayoutManager for flow "
- + flow.getFlowName()
+ + sc.getFlowName()
+ "; no static content will be laid out:");
log.error(e.getMessage());
return;
@@ -842,19 +823,4 @@ public class PageSequenceLayoutManager extends AbstractLayoutManager {
rr.setIPD(reldims.ipd);
rr.setBPD(reldims.bpd);
}
-
- /**
- * @return a StaticContent layout manager
- */
- private StaticContentLayoutManager getStaticContentLayoutManager(StaticContent sc)
- throws FOPException {
- StaticContentLayoutManager lm;
- //lm = (StaticContentLayoutManager) staticContentLMs.get(sc.getFlowName());
- //if (lm == null) {
- lm = (StaticContentLayoutManager)
- getAreaTreeHandler().getLayoutManagerMaker().makeLayoutManager(sc);
- //staticContentLMs.put(sc.getFlowName(), lm);
- //}
- return lm;
- }
}