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 vh...@apache.org on 2008/02/13 21:10:07 UTC
svn commit: r627576 - in /xmlgraphics/fop/trunk: ./
src/java/org/apache/fop/fo/ src/java/org/apache/fop/fo/flow/table/
src/java/org/apache/fop/layoutmgr/table/
test/layoutengine/standard-testcases/
Author: vhennebert
Date: Wed Feb 13 12:10:01 2008
New Revision: 627576
URL: http://svn.apache.org/viewvc?rev=627576&view=rev
Log:
Moved to the FO tree stage the check for break-before/after on table-row while spanning in progress, and fixed bug #44321 as well
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/FixedColRowGroupBuilder.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/RowGroupBuilder.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/VariableColRowGroupBuilder.java
xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java
xmlgraphics/fop/trunk/status.xml
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-row_break-inside-span.xml
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/FONode.java Wed Feb 13 12:10:01 2008
@@ -360,7 +360,7 @@
* (e.g., currently unsupported properties)
* @param problem text to display that indicates the problem
*/
- protected void attributeWarning(String problem) {
+ public void attributeWarning(String problem) {
log.warn(warningText(locator) + getName() + ", " + problem);
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/FixedColRowGroupBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/FixedColRowGroupBuilder.java?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/FixedColRowGroupBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/FixedColRowGroupBuilder.java Wed Feb 13 12:10:01 2008
@@ -23,6 +23,7 @@
import java.util.List;
import java.util.ListIterator;
+import org.apache.fop.fo.Constants;
import org.apache.fop.fo.ValidationException;
@@ -115,7 +116,24 @@
}
/** {@inheritDoc} */
- void endRow(TableCellContainer container) {
+ void endRow(TableRow row) {
+ if (currentRowIndex > 0 && row.getBreakBefore() != Constants.EN_AUTO) {
+ row.attributeWarning("break-before ignored because of row spanning "
+ + "in progress (See XSL 1.1, 7.20.2)");
+ }
+ if (currentRowIndex < rows.size() - 1 && row.getBreakAfter() != Constants.EN_AUTO) {
+ row.attributeWarning("break-after ignored because of row spanning "
+ + "in progress (See XSL 1.1, 7.20.1)");
+ }
+ handleRowEnd(row);
+ }
+
+ /** {@inheritDoc} */
+ void endRow(TableBody body) {
+ handleRowEnd(body);
+ }
+
+ private void handleRowEnd(TableCellContainer container) {
List currentRow = (List) rows.get(currentRowIndex);
lastRow = currentRow;
// Fill gaps with empty grid units
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/RowGroupBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/RowGroupBuilder.java?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/RowGroupBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/RowGroupBuilder.java Wed Feb 13 12:10:01 2008
@@ -58,12 +58,23 @@
/**
* Receives notification of the end of the current row. If the current row finishes
* the row group, the {@link TableBody#addRowGroup(List)} method of the parent table
- * part (i.e., the given container itself or its parent if this is a table-row) will
- * be called
+ * part will be called.
*
- * @param container the parent element of the current row
+ * @param row the row being finished
*/
- abstract void endRow(TableCellContainer container);
+ abstract void endRow(TableRow row);
+
+ /**
+ * Receives notification of the end of the current row, when the source contains no
+ * fo:table-row element. If the current row finishes the row group, the
+ * {@link TableBody#addRowGroup(List)} method of the given table part will be called.
+ *
+ * <p>If the source does contain explicit fo:table-row elements, then the
+ * {@link #endRow(TableRow)} method will be called instead.</p>
+ *
+ * @param part the part containing the current row
+ */
+ abstract void endRow(TableBody part);
/**
* Receives notification of the start of a table-header/footer/body.
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/VariableColRowGroupBuilder.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/VariableColRowGroupBuilder.java?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/VariableColRowGroupBuilder.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/VariableColRowGroupBuilder.java Wed Feb 13 12:10:01 2008
@@ -73,10 +73,19 @@
}
/** {@inheritDoc} */
- void endRow(final TableCellContainer container) {
+ void endRow(final TableRow row) {
events.add(new Event() {
public void play(RowGroupBuilder rowGroupBuilder) {
- rowGroupBuilder.endRow(container);
+ rowGroupBuilder.endRow(row);
+ }
+ });
+ }
+
+ /** {@inheritDoc} */
+ void endRow(final TableBody part) {
+ events.add(new Event() {
+ public void play(RowGroupBuilder rowGroupBuilder) {
+ rowGroupBuilder.endRow(part);
}
});
}
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java Wed Feb 13 12:10:01 2008
@@ -26,11 +26,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.fop.fo.Constants;
-import org.apache.fop.fo.FONode;
import org.apache.fop.fo.flow.table.EffRow;
import org.apache.fop.fo.flow.table.GridUnit;
import org.apache.fop.fo.flow.table.PrimaryGridUnit;
-import org.apache.fop.fo.flow.table.TableRow;
import org.apache.fop.layoutmgr.BreakElement;
import org.apache.fop.layoutmgr.KnuthBox;
import org.apache.fop.layoutmgr.KnuthGlue;
@@ -456,20 +454,8 @@
*/
private void prepareNextRow() {
if (activeRowIndex < rowGroup.length - 1) {
- TableRow rowFO = rowGroup[activeRowIndex].getTableRow();
- if (rowFO != null && rowFO.getBreakAfter() != Constants.EN_AUTO) {
- log.warn(FONode.decorateWithContextInfo(
- "break-after ignored on table-row because of row spanning "
- + "in progress (See XSL 1.0, 7.19.1)", rowFO));
- }
previousRowsLength += rowGroup[activeRowIndex].getHeight().opt;
activateCells(nextActiveCells, activeRowIndex + 1);
- rowFO = rowGroup[activeRowIndex + 1].getTableRow();
- if (rowFO != null && rowFO.getBreakBefore() != Constants.EN_AUTO) {
- log.warn(FONode.decorateWithContextInfo(
- "break-before ignored on table-row because of row spanning "
- + "in progress (See XSL 1.0, 7.19.2)", rowFO));
- }
if (log.isTraceEnabled()) {
log.trace("Computing first step for row " + (activeRowIndex + 2));
}
Modified: xmlgraphics/fop/trunk/status.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Wed Feb 13 12:10:01 2008
@@ -28,6 +28,10 @@
<changes>
<release version="FOP Trunk">
+ <action context="Layout" dev="VH" type="fix" fixes-bug="44321">
+ Moved to the FO tree stage the check for break-before/after on table-row while spanning in
+ progress.
+ </action>
<action context="Layout" dev="VH" type="add">
Added full support for breaks before and after table cells (that is, break-before/after set
on the first/last child of a cell).
Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-row_break-inside-span.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-row_break-inside-span.xml?rev=627576&r1=627575&r2=627576&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-row_break-inside-span.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-row_break-inside-span.xml Wed Feb 13 12:10:01 2008
@@ -20,7 +20,7 @@
<info>
<p>
This test checks breaks on tables. Breaks on table-row during row spanning are ignored
- (XSL 1.0, 7.19.1 and 7.19.2).
+ (XSL 1.1, 7.20.1 and 7.20.2).
</p>
</info>
<fo>
@@ -33,10 +33,10 @@
<fo:page-sequence master-reference="normal" white-space-collapse="true">
<fo:flow flow-name="xsl-region-body">
<fo:table table-layout="fixed" width="100%">
- <fo:table-column/>
- <fo:table-column/>
+ <fo:table-column column-width="proportional-column-width(1)"
+ number-columns-repeated="2"/>
<fo:table-body>
- <fo:table-row>
+ <fo:table-row break-after="page">
<fo:table-cell number-rows-spanned="2" background-color="orange">
<fo:block>cell1 line 1</fo:block>
<fo:block>cell1 line 2</fo:block>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org