Author: matthias
Date: Thu May 25 18:13:08 2017
New Revision: 1796180
URL: http://svn.apache.org/viewvc?rev=1796180&view=rev
Log:
FOP-2570: fix border placement in r-l mode, if there are row spans
Added:
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-row-span-rl.xml
- copied, changed from r1793236, xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml
Modified:
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java
xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml
Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java?rev=1796180&r1=1796179&r2=1796180&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java (original)
+++ xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/layoutmgr/table/TableCellLayoutManager.java Thu May 25 18:13:08 2017
@@ -474,7 +474,7 @@ public class TableCellLayoutManager exte
if (level == 1) {
addBorder(blocks, y, gridUnits.length - 1, Trait.BORDER_START, border,
inFirstColumn, level);
- adjustXOffset(blocks[y][gridUnits.length - 1], -borderWidth);
+ adjustIPD(blocks[y][gridUnits.length - 1], -borderWidth);
} else {
addBorder(blocks, y, 0, Trait.BORDER_START, border,
inFirstColumn, level);
Copied: xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-row-span-rl.xml (from r1793236, xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml)
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-row-span-rl.xml?p2=xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-row-span-rl.xml&p1=xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml&r1=1793236&r2=1796180&rev=1796180&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml (original)
+++ xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-row-span-rl.xml Thu May 25 18:13:08 2017
@@ -21,113 +21,72 @@
<p>This test checks correct placement of table borders of spanned table cells in right-to-left writing mode.</p>
</info>
<fo>
- <fo:root
- xmlns:fo="http://www.w3.org/1999/XSL/Format" font-size="10pt">
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
- <fo:simple-page-master margin="20mm" master-name="A4" page-height="210mm" page-width="297mm">
+ <fo:simple-page-master margin="20mm" master-name="odd" page-height="148mm" page-width="210mm">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
- <fo:page-sequence master-reference="A4">
+
+ <fo:page-sequence id="lastpagesequence" master-reference="odd" writing-mode="rl-tb">
<fo:flow flow-name="xsl-region-body">
- <fo:block-container writing-mode="rl-tb">
- <fo:table border-collapse="collapse" table-layout="fixed" width="100%">
- <fo:table-column column-width="50%"/>
- <fo:table-column column-width="30%"/>
- <fo:table-column column-width="20%"/>
- <fo:table-body>
- <fo:table-row height="10pt" keep-together.within-page="auto">
- <fo:table-cell border-color="#000000" border-style="solid" border-width="1pt" number-columns-spanned="3">
- <fo:block>A1,B1,C1</fo:block>
- </fo:table-cell>
- </fo:table-row>
- <fo:table-row>
- <fo:table-cell border-color="#000000" border-style="solid">
- <fo:block>A2</fo:block>
- </fo:table-cell>
- <fo:table-cell border-color="#000000" border-style="solid">
- <fo:block>B2</fo:block>
- </fo:table-cell>
- <fo:table-cell border-color="#000000" border-style="solid">
- <fo:block>C2</fo:block>
- </fo:table-cell>
- </fo:table-row>
- <fo:table-row>
- <fo:table-cell border-color="#000000" border-style="solid" number-columns-spanned="2">
- <fo:block>A2,B2</fo:block>
- </fo:table-cell>
- <fo:table-cell border-color="#000000" border-style="solid">
- <fo:block>C2</fo:block>
- </fo:table-cell>
- </fo:table-row>
- <fo:table-row>
- <fo:table-cell border-color="#000000" border-style="solid">
- <fo:block>A3</fo:block>
- </fo:table-cell>
- <fo:table-cell border-color="#000000" border-style="solid" number-columns-spanned="2">
- <fo:block>B3,C3</fo:block>
- </fo:table-cell>
- </fo:table-row>
- </fo:table-body>
- </fo:table>
- </fo:block-container>
+ <fo:table border-collapse="collapse" table-layout="fixed" width="100%">
+ <fo:table-column column-width="60%"/>
+ <fo:table-column column-width="40%"/>
+ <fo:table-body>
+ <fo:table-row height="8px">
+ <fo:table-cell background-color="#DCDDDE" border-collapse="collapse" border-color="black" border-style="solid" border-width="1px">
+ <fo:block>A1</fo:block>
+ </fo:table-cell>
+ <fo:table-cell background-color="#DCDDDE" border-collapse="collapse" border-color="black" border-style="solid" border-width="1px" number-rows-spanned="2">
+ <fo:block>B1,B2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row height="8px">
+ <fo:table-cell background-color="#DCDDDE" border-collapse="collapse" border-color="black" border-style="solid" border-width="1px">
+ <fo:block>A2</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row height="8px">
+ <fo:table-cell border-collapse="collapse" border-color="black" border-style="solid" border-width="1px">
+ <fo:block>A3</fo:block>
+ </fo:table-cell>
+ <fo:table-cell border-collapse="collapse" border-color="black" border-style="solid" border-width="1px">
+ <fo:block>B3</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
</fo:flow>
</fo:page-sequence>
</fo:root>
</fo>
<checks>
<!-- ************** ROW 1 ************** -->
- <!-- Border top, bottom and left of TCU 1 -->
- <eval expected="500" xpath="//flow/block[1]/block[1]/block[1]/block[1][@border-before and @border-after and @border-end and not(@border-start)]/@left-offset"/>
- <eval expected="-500" xpath="//flow/block[1]/block[1]/block[1]/block[1][@border-before and @border-after and @border-end and not(@border-start)]/@top-offset"/>
-
- <!-- Border top and bottom of TCU 2 -->
- <eval expected="364252" xpath="//flow/block[1]/block[1]/block[1]/block[2][@border-before and @border-after and not(@border-end) and not(@border-start)]/@left-offset"/>
- <eval expected="-500" xpath="//flow/block[1]/block[1]/block[1]/block[2][@border-before and @border-after and not(@border-end) and not(@border-start)]/@top-offset"/>
-
- <!-- Border top, bottom and right of TCU 3 -->
- <eval expected="582303" xpath="//flow/block[1]/block[1]/block[1]/block[3][@border-before and @border-after and @border-start and not(@border-end)]/@left-offset"/>
- <eval expected="-500" xpath="//flow/block[1]/block[1]/block[1]/block[3][@border-before and @border-after and @border-start and not(@border-end)]/@top-offset"/>
-
+ <!-- Border top, bottom, left and right of A1 -->
+ <eval expected="193256" xpath="//flow/block[1]/block[1][.//word = 'A1'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
+ <eval expected="-500" xpath="//flow/block[1]/block[1][.//word = 'A1'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
+
+ <!-- Border top, left and right of B1 -->
+ <eval expected="500" xpath="//flow/block[1]/block[3][@border-before and not(@border-after) and @border-end and @border-start]/@left-offset"/>
+ <eval expected="-500" xpath="//flow/block[1]/block[3][@border-before and not(@border-after) and @border-end and @border-start]/@top-offset"/>
<!-- ************** ROW 2 ************** -->
- <!-- Border top, bottom, left and right of TCU 1 -->
- <eval expected="364752" xpath="//flow/block[1]/block[1]/block[1]/block[5][.//word = 'A2'][@border-before and @border-after and @border-start and @border-end]/@left-offset"/>
- <eval expected="12500" xpath="//flow/block[1]/block[1]/block[1]/block[5][.//word = 'A2'][@border-before and @border-after and @border-start and @border-end]/@top-offset"/>
-
- <!-- Border top, bottom, left and right of TCU 2 -->
- <eval expected="146201" xpath="//flow/block[1]/block[1]/block[1]/block[6][.//word = 'B2'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
- <eval expected="12500" xpath="//flow/block[1]/block[1]/block[1]/block[6][.//word = 'B2'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
-
- <!-- Border top, bottom, left and right of TCU 3 -->
- <eval expected="500" xpath="//flow/block[1]/block[1]/block[1]/block[7][.//word = 'C2'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
- <eval expected="12500" xpath="//flow/block[1]/block[1]/block[1]/block[7][.//word = 'C2'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
+ <!-- Border top, bottom, left and right of A2 -->
+ <eval expected="193256" xpath="//flow/block[1]/block[2][.//word = 'A2'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
+ <eval expected="14900" xpath="//flow/block[1]/block[2][.//word = 'A2'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
+
+ <!-- Border bottom, left and right of B2 -->
+ <eval expected="500" xpath="//flow/block[1]/block[4][not(@border-before) and @border-after and @border-end and @border-start]/@left-offset"/>
+ <eval expected="15400" xpath="//flow/block[1]/block[4][not(@border-before) and @border-after and @border-end and @border-start]/@top-offset"/>
<!-- ************** ROW 3 ************** -->
- <!-- Border top, bottom and left of TCU 2 -->
- <eval expected="146201" xpath="//flow/block[1]/block[1]/block[1]/block[8][@border-before and @border-after and @border-end and not(@border-start)]/@left-offset"/>
- <eval expected="25500" xpath="//flow/block[1]/block[1]/block[1]/block[8][@border-before and @border-after and @border-end and not(@border-start)]/@top-offset"/>
-
- <!-- Border top, bottom and right of TCU 3 -->
- <eval expected="509453" xpath="//flow/block[1]/block[1]/block[1]/block[9][@border-before and @border-after and not(@border-end) and @border-start]/@left-offset"/>
- <eval expected="25500" xpath="//flow/block[1]/block[1]/block[1]/block[9][@border-before and @border-after and not(@border-end) and @border-start]/@top-offset"/>
-
- <!-- Border top, bottom, left and right of TCU 1 -->
- <eval expected="500" xpath="//flow/block[1]/block[1]/block[1]/block[11][.//word = 'C2'][@border-before and @border-after and @border-start and @border-end]/@left-offset"/>
- <eval expected="25500" xpath="//flow/block[1]/block[1]/block[1]/block[11][.//word = 'C2'][@border-before and @border-after and @border-start and @border-end]/@top-offset"/>
-
-
- <!-- ************** ROW 4 ************** -->
- <!-- Border top, bottom, left and right of TCU 3 -->
- <eval expected="364752" xpath="//flow/block[1]/block[1]/block[1]/block[12][.//word = 'A3'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
- <eval expected="38500" xpath="//flow/block[1]/block[1]/block[1]/block[12][.//word = 'A3'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
-
- <!-- Border top, bottom and left of TCU 1 -->
- <eval expected="500" xpath="//flow/block[1]/block[1]/block[1]/block[13][@border-before and @border-after and @border-end and not(@border-start)]/@left-offset"/>
- <eval expected="38500" xpath="//flow/block[1]/block[1]/block[1]/block[13][@border-before and @border-after and @border-end and not(@border-start)]/@top-offset"/>
-
- <!-- Border top, bottom and right of TCU 2 -->
- <eval expected="218051" xpath="//flow/block[1]/block[1]/block[1]/block[14][@border-before and @border-after and @border-start and not(@border-end)]/@left-offset"/>
- <eval expected="38500" xpath="//flow/block[1]/block[1]/block[1]/block[14][@border-before and @border-after and @border-start and not(@border-end)]/@top-offset"/>
+ <!-- Border top, bottom, left and right of A3 -->
+ <eval expected="193256" xpath="//flow/block[1]/block[6][.//word = 'A3'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
+ <eval expected="30300" xpath="//flow/block[1]/block[6][.//word = 'A3'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
+
+ <!-- Border top, bottom, left and right of B3 -->
+ <eval expected="500" xpath="//flow/block[1]/block[7][.//word = 'B3'][@border-before and @border-after and @border-end and @border-start]/@left-offset"/>
+ <eval expected="30300" xpath="//flow/block[1]/block[7][.//word = 'B3'][@border-before and @border-after and @border-end and @border-start]/@top-offset"/>
</checks>
</testcase>
\ No newline at end of file
Modified: xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml?rev=1796180&r1=1796179&r2=1796180&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml (original)
+++ xmlgraphics/fop/trunk/fop/test/layoutengine/standard-testcases/table-border-span-rl.xml Thu May 25 18:13:08 2017
@@ -86,7 +86,7 @@
<eval expected="-500" xpath="//flow/block[1]/block[1]/block[1]/block[2][@border-before and @border-after and not(@border-end) and not(@border-start)]/@top-offset"/>
<!-- Border top, bottom and right of TCU 3 -->
- <eval expected="582303" xpath="//flow/block[1]/block[1]/block[1]/block[3][@border-before and @border-after and @border-start and not(@border-end)]/@left-offset"/>
+ <eval expected="582803" xpath="//flow/block[1]/block[1]/block[1]/block[3][@border-before and @border-after and @border-start and not(@border-end)]/@left-offset"/>
<eval expected="-500" xpath="//flow/block[1]/block[1]/block[1]/block[3][@border-before and @border-after and @border-start and not(@border-end)]/@top-offset"/>
@@ -109,7 +109,7 @@
<eval expected="25500" xpath="//flow/block[1]/block[1]/block[1]/block[8][@border-before and @border-after and @border-end and not(@border-start)]/@top-offset"/>
<!-- Border top, bottom and right of TCU 3 -->
- <eval expected="509453" xpath="//flow/block[1]/block[1]/block[1]/block[9][@border-before and @border-after and not(@border-end) and @border-start]/@left-offset"/>
+ <eval expected="509953" xpath="//flow/block[1]/block[1]/block[1]/block[9][@border-before and @border-after and not(@border-end) and @border-start]/@left-offset"/>
<eval expected="25500" xpath="//flow/block[1]/block[1]/block[1]/block[9][@border-before and @border-after and not(@border-end) and @border-start]/@top-offset"/>
<!-- Border top, bottom, left and right of TCU 1 -->
@@ -127,7 +127,7 @@
<eval expected="38500" xpath="//flow/block[1]/block[1]/block[1]/block[13][@border-before and @border-after and @border-end and not(@border-start)]/@top-offset"/>
<!-- Border top, bottom and right of TCU 2 -->
- <eval expected="218051" xpath="//flow/block[1]/block[1]/block[1]/block[14][@border-before and @border-after and @border-start and not(@border-end)]/@left-offset"/>
+ <eval expected="218551" xpath="//flow/block[1]/block[1]/block[1]/block[14][@border-before and @border-after and @border-start and not(@border-end)]/@left-offset"/>
<eval expected="38500" xpath="//flow/block[1]/block[1]/block[1]/block[14][@border-before and @border-after and @border-start and not(@border-end)]/@top-offset"/>
</checks>
</testcase>
\ No newline at end of file
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.