aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop/fo
diff options
context:
space:
mode:
authorSimon Pepping <spepping@apache.org>2008-05-19 19:02:18 +0000
committerSimon Pepping <spepping@apache.org>2008-05-19 19:02:18 +0000
commit00cfbeeb22039e7e37d123c318292e625eaddf79 (patch)
treed3eacf8520eff13d9a930fea1786c0ba174c5f9f /src/java/org/apache/fop/fo
parentc097c3ef1110611baf100d5b407fd12392125f29 (diff)
downloadxmlgraphics-fop-00cfbeeb22039e7e37d123c318292e625eaddf79.tar.gz
xmlgraphics-fop-00cfbeeb22039e7e37d123c318292e625eaddf79.zip
Added event TableEventProducer.forceNextColumnNumber when
TableFObj.ColumnNumberPropertyMaker forces a zero or negative column-number property to the next available column, because this is a FOP extension. Fixed TableFObj.ColumnNumberPropertyMaker.make to really report a cell overlap event. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@657921 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/fo')
-rw-r--r--src/java/org/apache/fop/fo/flow/table/TableEventProducer.java11
-rw-r--r--src/java/org/apache/fop/fo/flow/table/TableFObj.java9
2 files changed, 17 insertions, 3 deletions
diff --git a/src/java/org/apache/fop/fo/flow/table/TableEventProducer.java b/src/java/org/apache/fop/fo/flow/table/TableEventProducer.java
index 44ddcc038..9c4a82dd6 100644
--- a/src/java/org/apache/fop/fo/flow/table/TableEventProducer.java
+++ b/src/java/org/apache/fop/fo/flow/table/TableEventProducer.java
@@ -145,6 +145,17 @@ public interface TableEventProducer extends EventProducer {
Locator loc) throws PropertyException;
/**
+ * @param source the event source
+ * @param elementName the name of the context node
+ * @param propValue the user-specified value of the column-number property
+ * @param columnNumber the generated value for the column-number property
+ * @param loc the location of the error or null
+ * @event.severity WARN
+ */
+ void forceNextColumnNumber(Object source, String elementName, Number propValue,
+ int columnNumber, Locator loc);
+
+ /**
* Break ignored due to row spanning.
* @param source the event source
* @param elementName the name of the context node
diff --git a/src/java/org/apache/fop/fo/flow/table/TableFObj.java b/src/java/org/apache/fop/fo/flow/table/TableFObj.java
index 6bc113fd0..016046ae2 100644
--- a/src/java/org/apache/fop/fo/flow/table/TableFObj.java
+++ b/src/java/org/apache/fop/fo/flow/table/TableFObj.java
@@ -159,9 +159,8 @@ public abstract class TableFObj extends FObj {
int colSpan = propertyList.get(Constants.PR_NUMBER_COLUMNS_SPANNED)
.getNumeric().getValue();
- int i = columnIndex - 1;
- int lastIndex = (columnIndex + colSpan) - 1;
- while (++i < lastIndex) {
+ int lastIndex = columnIndex - 1 + colSpan;
+ for (int i = columnIndex; i <= lastIndex; ++i) {
if (columnIndexManager.isColumnNumberUsed(i)) {
/* if column-number is already in use by another
* cell/column => error!
@@ -195,6 +194,10 @@ public abstract class TableFObj extends FObj {
(ColumnNumberManagerHolder) propertyList.getParentFObj();
ColumnNumberManager columnIndexManager = parent.getColumnNumberManager();
i = columnIndexManager.getCurrentColumnNumber();
+ TableEventProducer eventProducer =
+ TableEventProducer.Provider.get(fo.getUserAgent().getEventBroadcaster());
+ eventProducer.forceNextColumnNumber(this, propertyList.getFObj().getName(),
+ val, i, fo.getLocator());
}
return NumberProperty.getInstance(i);
}