aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/layoutmgr/PageLayoutManager.java
diff options
context:
space:
mode:
authorKeiron Liddle <keiron@apache.org>2002-11-04 11:50:11 +0000
committerKeiron Liddle <keiron@apache.org>2002-11-04 11:50:11 +0000
commit18d95ced827abe67cec9f0ea0cb372eb83350c4c (patch)
tree6254a23b0d19e58caf4e7e58fffab2b46dc5f320 /src/org/apache/fop/layoutmgr/PageLayoutManager.java
parentc55b4c72556bd66076530f4a9bff83b9d4727aca (diff)
downloadxmlgraphics-fop-18d95ced827abe67cec9f0ea0cb372eb83350c4c.tar.gz
xmlgraphics-fop-18d95ced827abe67cec9f0ea0cb372eb83350c4c.zip
page numbering across sequences and number formatting
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@195407 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/layoutmgr/PageLayoutManager.java')
-rw-r--r--src/org/apache/fop/layoutmgr/PageLayoutManager.java25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/org/apache/fop/layoutmgr/PageLayoutManager.java b/src/org/apache/fop/layoutmgr/PageLayoutManager.java
index 2e3199915..d75c157a7 100644
--- a/src/org/apache/fop/layoutmgr/PageLayoutManager.java
+++ b/src/org/apache/fop/layoutmgr/PageLayoutManager.java
@@ -13,6 +13,7 @@ import org.apache.fop.fo.flow.StaticContent;
import org.apache.fop.fo.pagination.PageSequence;
import org.apache.fop.fo.pagination.Region;
import org.apache.fop.fo.pagination.SimplePageMaster;
+import org.apache.fop.fo.pagination.PageNumberGenerator;
import org.apache.fop.fo.properties.Constants;
import java.util.ArrayList;
@@ -33,6 +34,10 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
}
}
+ private PageNumberGenerator pageNumberGenerator;
+ private int pageCount = 1;
+ private String pageNumberString;
+
/** True if haven't yet laid out any pages.*/
private boolean bFirstPage;
/** Current page being worked on. */
@@ -60,8 +65,6 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
private AreaTree areaTree;
private PageSequence pageSequence;
- private int pageCount = 1;
-
/**
* This is the top level layout manager.
* It is created by the PageSequence FO.
@@ -72,6 +75,15 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
pageSequence = pageseq;
}
+ public void setPageCounting(int pc, PageNumberGenerator generator) {
+ pageCount = pc;
+ pageNumberGenerator = generator;
+ pageNumberString = pageNumberGenerator.makeFormattedPageNumber(pageCount);
+ }
+
+ public int getPageCount() {
+ return pageCount;
+ }
/**
* The layout process is designed to be able to be run in a thread.
@@ -104,10 +116,11 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
// finish page and add to area tree
finishPage();
+ pageCount++;
+ pageNumberString = pageNumberGenerator.makeFormattedPageNumber(pageCount);
}
- pageCount++;
}
-
+ pageCount--;
}
@@ -135,7 +148,7 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
}
public String getCurrentPageNumber() {
- return "" + pageCount;
+ return pageNumberString;
}
public PageViewport resolveRefID(String ref) {
@@ -251,7 +264,7 @@ public class PageLayoutManager extends AbstractLayoutManager implements Runnable
private PageViewport makeNewPage(boolean bIsBlank, boolean bIsLast) {
finishPage();
try {
- curPage = pageSequence.createPage(bIsBlank, bIsLast);
+ curPage = pageSequence.createPage(pageCount, bIsBlank, bIsLast);
} catch (FOPException fopex) { /* ???? */
fopex.printStackTrace();
}