Explorar el Código

break-after set on the last child of a row-spanning cell must apply to the last row spanned by the cell


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@627721 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-0_95beta
Vincent Hennebert hace 16 años
padre
commit
7594480319

+ 1
- 1
src/java/org/apache/fop/fo/flow/table/EffRow.java Ver fichero

@@ -197,7 +197,7 @@ public class EffRow {
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());
}

+ 91
- 0
test/layoutengine/standard-testcases/table-cell_row-span_breaks.xml Ver fichero

@@ -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>
@@ -193,5 +236,53 @@
<eval expected="Cell 1.2 Line 3" xpath="//pageViewport[@nr='5']//flow/block[1]/block[2]/block[1]"/>
<eval expected="Cell 1.2 Line 4" xpath="//pageViewport[@nr='5']//flow/block[1]/block[2]/block[2]"/>

<!-- table 3 -->
<!-- page 1 -->
<eval expected="2" xpath="count(//pageSequence[3]/pageViewport)"/>
<eval expected="48000" xpath="//pageViewport[@nr='6']//flow/block[2]/@bpd"/>
<eval expected="50000" xpath="//pageViewport[@nr='6']//flow/block[2]/@bpda"/>
<eval expected="(solid,#000000,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/@border-before"/>
<eval expected="" xpath="//pageViewport[@nr='6']//flow/block[2]/@border-after"/>
<!-- cell 1.2 -->
<eval expected="20000" xpath="//pageViewport[@nr='6']//flow/block[2]/block[1]/@bpd"/>
<eval expected="24000" xpath="//pageViewport[@nr='6']//flow/block[2]/block[1]/@bpda"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/block[1]/@border-before"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/block[1]/@border-after"/>
<eval expected="2" xpath="count(//pageViewport[@nr='6']//flow/block[2]/block[1]/block)"/>
<eval expected="Cell 1.2 Line 1" xpath="//pageViewport[@nr='6']//flow/block[2]/block[1]/block[1]"/>
<eval expected="Cell 1.2 Line 2" xpath="//pageViewport[@nr='6']//flow/block[2]/block[1]/block[2]"/>
<!-- cell 1.1 -->
<eval expected="44000" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/@bpd"/>
<eval expected="48000" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/@bpda"/>
<eval expected="(solid,#ff0000,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/@border-before"/>
<eval expected="(solid,#ff0000,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/@border-after"/>
<eval expected="3" xpath="count(//pageViewport[@nr='6']//flow/block[2]/block[2]/block)"/>
<eval expected="Cell 1.1 Line 1" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/block[1]"/>
<eval expected="Cell 1.1 Line 2" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/block[2]"/>
<eval expected="Cell 1.1 Line 3" xpath="//pageViewport[@nr='6']//flow/block[2]/block[2]/block[3]"/>
<!-- cell 2.2 -->
<eval expected="20000" xpath="//pageViewport[@nr='6']//flow/block[2]/block[3]/@bpd"/>
<eval expected="24000" xpath="//pageViewport[@nr='6']//flow/block[2]/block[3]/@bpda"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/block[3]/@border-before"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='6']//flow/block[2]/block[3]/@border-after"/>
<eval expected="2" xpath="count(//pageViewport[@nr='6']//flow/block[2]/block[3]/block)"/>
<eval expected="Cell 2.2 Line 1" xpath="//pageViewport[@nr='6']//flow/block[2]/block[3]/block[1]"/>
<eval expected="Cell 2.2 Line 2" xpath="//pageViewport[@nr='6']//flow/block[2]/block[3]/block[2]"/>
<!-- page 2 -->
<eval expected="24000" xpath="//pageViewport[@nr='7']//flow/block[1]/@bpd"/>
<eval expected="26000" xpath="//pageViewport[@nr='7']//flow/block[1]/@bpda"/>
<eval expected="" xpath="//pageViewport[@nr='7']//flow/block[1]/@border-before"/>
<eval expected="(solid,#000000,2000)" xpath="//pageViewport[@nr='7']//flow/block[1]/@border-after"/>
<!-- cell 3.1 -->
<eval expected="20000" xpath="//pageViewport[@nr='7']//flow/block[1]/block[1]/@bpd"/>
<eval expected="24000" xpath="//pageViewport[@nr='7']//flow/block[1]/block[1]/@bpda"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='7']//flow/block[1]/block[1]/@border-before"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='7']//flow/block[1]/block[1]/@border-after"/>
<!-- cell 3.2 -->
<eval expected="20000" xpath="//pageViewport[@nr='7']//flow/block[1]/block[2]/@bpd"/>
<eval expected="24000" xpath="//pageViewport[@nr='7']//flow/block[1]/block[2]/@bpda"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='7']//flow/block[1]/block[2]/@border-before"/>
<eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='7']//flow/block[1]/block[2]/@border-after"/>

</checks>
</testcase>

Cargando…
Cancelar
Guardar