Author: vhennebert
Date: Thu Feb 14 04:09:05 2008
New Revision: 627721
URL: http://svn.apache.org/viewvc?rev=627721&view=rev
Log:
break-after set on the last child of a row-spanning cell must apply to the last
row spanned by the cell
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EffRow.java
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-cell_row-span_breaks.xml
Modified:
xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EffRow.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EffRow.java?rev=627721&r1=627720&r2=627721&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EffRow.java
(original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/EffRow.java Thu
Feb 14 04:09:05 2008
@@ -197,7 +197,7 @@
int breakAfter = Constants.EN_AUTO;
for (Iterator iter = gridUnits.iterator(); iter.hasNext();) {
GridUnit gu = (GridUnit) iter.next();
- if (gu.isPrimary()) {
+ if (!gu.isEmpty() && gu.getColSpanIndex() == 0 &&
gu.isLastGridUnitRowSpan()) {
breakAfter = BreakUtil.compareBreakClasses(breakAfter,
gu.getPrimary().getBreakAfter());
}
Modified:
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-cell_row-span_breaks.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-cell_row-span_breaks.xml?rev=627721&r1=627720&r2=627721&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-cell_row-span_breaks.xml
(original)
+++
xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table-cell_row-span_breaks.xml
Thu Feb 14 04:09:05 2008
@@ -97,6 +97,49 @@
</fo:flow>
</fo:page-sequence>
+ <!-- table 3 -->
+ <!-- break-after set on a row-spanning cell must actually apply to the
last row
+ spanned by the cell. -->
+ <fo:page-sequence master-reference="page" font-size="8pt"
line-height="10pt">
+ <fo:flow flow-name="xsl-region-body">
+ <fo:block>Before the table</fo:block>
+ <fo:table width="100%" table-layout="fixed"
+ border-collapse="separate" border="2pt solid black">
+ <fo:table-column column-width="proportional-column-width(1)"
number-columns-repeated="2"/>
+ <fo:table-body border="2pt solid blue">
+ <fo:table-row border="inherit">
+ <fo:table-cell border="inherit" number-rows-spanned="2"
border-color="red">
+ <fo:block>Cell 1.1 Line 1</fo:block>
+ <fo:block>Cell 1.1 Line 2</fo:block>
+ <fo:block break-after="page">Cell 1.1 Line 3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="inherit">
+ <fo:block>Cell 1.2 Line 1</fo:block>
+ <fo:block>Cell 1.2 Line 2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row border="inherit">
+ <fo:table-cell border="inherit">
+ <fo:block>Cell 2.2 Line 1</fo:block>
+ <fo:block>Cell 2.2 Line 2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row border="2pt solid blue">
+ <fo:table-cell border="inherit">
+ <fo:block>Cell 3.1 Line 1</fo:block>
+ <fo:block>Cell 3.1 Line 2</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border="inherit">
+ <fo:block>Cell 3.2 Line 1</fo:block>
+ <fo:block>Cell 3.2 Line 2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ <fo:block>After the table</fo:block>
+ </fo:flow>
+ </fo:page-sequence>
+
</fo:root>
</fo>
<checks>
@@ -192,6 +235,54 @@
<eval expected="2" xpath="count(//[EMAIL
PROTECTED]'5']//flow/block[1]/block[2]/block)"/>
<eval expected="Cell 1.2 Line 3" xpath="//[EMAIL
PROTECTED]'5']//flow/block[1]/block[2]/block[1]"/>
<eval expected="Cell 1.2 Line 4" xpath="//[EMAIL
PROTECTED]'5']//flow/block[1]/block[2]/block[2]"/>
+
+ <!-- table 3 -->
+ <!-- page 1 -->
+ <eval expected="2"
xpath="count(//pageSequence[3]/pageViewport)"/>
+ <eval expected="48000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/@bpd"/>
+ <eval expected="50000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/@bpda"/>
+ <eval expected="(solid,#000000,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/@border-before"/>
+ <eval expected="" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/@border-after"/>
+ <!-- cell 1.2 -->
+ <eval expected="20000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/@bpd"/>
+ <eval expected="24000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/@bpda"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/@border-before"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/@border-after"/>
+ <eval expected="2" xpath="count(//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/block)"/>
+ <eval expected="Cell 1.2 Line 1" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/block[1]"/>
+ <eval expected="Cell 1.2 Line 2" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[1]/block[2]"/>
+ <!-- cell 1.1 -->
+ <eval expected="44000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/@bpd"/>
+ <eval expected="48000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/@bpda"/>
+ <eval expected="(solid,#ff0000,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/@border-before"/>
+ <eval expected="(solid,#ff0000,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/@border-after"/>
+ <eval expected="3" xpath="count(//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/block)"/>
+ <eval expected="Cell 1.1 Line 1" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/block[1]"/>
+ <eval expected="Cell 1.1 Line 2" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/block[2]"/>
+ <eval expected="Cell 1.1 Line 3" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[2]/block[3]"/>
+ <!-- cell 2.2 -->
+ <eval expected="20000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/@bpd"/>
+ <eval expected="24000" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/@bpda"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/@border-before"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/@border-after"/>
+ <eval expected="2" xpath="count(//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/block)"/>
+ <eval expected="Cell 2.2 Line 1" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/block[1]"/>
+ <eval expected="Cell 2.2 Line 2" xpath="//[EMAIL
PROTECTED]'6']//flow/block[2]/block[3]/block[2]"/>
+ <!-- page 2 -->
+ <eval expected="24000" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/@bpd"/>
+ <eval expected="26000" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/@bpda"/>
+ <eval expected="" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/@border-before"/>
+ <eval expected="(solid,#000000,2000)" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/@border-after"/>
+ <!-- cell 3.1 -->
+ <eval expected="20000" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[1]/@bpd"/>
+ <eval expected="24000" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[1]/@bpda"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[1]/@border-before"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[1]/@border-after"/>
+ <!-- cell 3.2 -->
+ <eval expected="20000" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[2]/@bpd"/>
+ <eval expected="24000" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[2]/@bpda"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[2]/@border-before"/>
+ <eval expected="(solid,#0000ff,2000)" xpath="//[EMAIL
PROTECTED]'7']//flow/block[1]/block[2]/@border-after"/>
</checks>
</testcase>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]