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 2007/12/13 19:28:57 UTC

svn commit: r603968 - in /xmlgraphics/fop/trunk: src/java/org/apache/fop/fo/flow/table/ test/layoutengine/standard-testcases/

Author: vhennebert
Date: Thu Dec 13 10:28:56 2007
New Revision: 603968

URL: http://svn.apache.org/viewvc?rev=603968&view=rev
Log:
Fixed the handling of columns in the border resolution, especially in case of column-spanning cells

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/CollapsingBorderResolver.java
    xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableCell.java
    xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution.xml
    xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution_no-col.xml

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/CollapsingBorderResolver.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/CollapsingBorderResolver.java?rev=603968&r1=603967&r2=603968&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/CollapsingBorderResolver.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/CollapsingBorderResolver.java Thu Dec 13 10:28:56 2007
@@ -205,14 +205,22 @@
             // Resolve start/end borders in the row
             Iterator guIter = row.iterator();
             GridUnit gu = (GridUnit) guIter.next();
+            Iterator colIter = table.getColumns().iterator();
+            TableColumn col = (TableColumn) colIter.next();
+            gu.integrateBorderSegment(CommonBorderPaddingBackground.START, col);
             gu.integrateBorderSegment(CommonBorderPaddingBackground.START, container);
             while (guIter.hasNext()) {
-                GridUnit guEnd = (GridUnit) guIter.next();
+                GridUnit nextGU = (GridUnit) guIter.next();
+                TableColumn nextCol = (TableColumn) colIter.next();
                 if (gu.isLastGridUnitColSpan()) {
-                    gu.resolveBorder(guEnd, CommonBorderPaddingBackground.END);
+                    gu.integrateBorderSegment(CommonBorderPaddingBackground.END, col);
+                    nextGU.integrateBorderSegment(CommonBorderPaddingBackground.START, nextCol);
+                    gu.resolveBorder(nextGU, CommonBorderPaddingBackground.END);
                 }
-                gu = guEnd;
+                gu = nextGU;
+                col = nextCol;
             }
+            gu.integrateBorderSegment(CommonBorderPaddingBackground.END, col);
             gu.integrateBorderSegment(CommonBorderPaddingBackground.END, container);
         }
 

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableCell.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableCell.java?rev=603968&r1=603967&r2=603968&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableCell.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/fo/flow/table/TableCell.java Thu Dec 13 10:28:56 2007
@@ -138,15 +138,8 @@
     protected void setCollapsedBorders() {
         createBorder(CommonBorderPaddingBackground.BEFORE);
         createBorder(CommonBorderPaddingBackground.AFTER);
-        Table table = getTable();
-        if (table.hasExplicitColumns()) {
-            TableColumn col = table.getColumn(getColumnNumber() - 1);
-            createBorder(CommonBorderPaddingBackground.START, col);
-            createBorder(CommonBorderPaddingBackground.END, col);
-        } else {
-            createBorder(CommonBorderPaddingBackground.START);
-            createBorder(CommonBorderPaddingBackground.END);
-        }
+        createBorder(CommonBorderPaddingBackground.START);
+        createBorder(CommonBorderPaddingBackground.END);
     }
 
     /** {@inheritDoc} */

Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution.xml?rev=603968&r1=603967&r2=603968&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution.xml Thu Dec 13 10:28:56 2007
@@ -166,6 +166,30 @@
             </fo:table-body>
           </fo:table>
 
+          <!-- table 3 -->
+          <fo:block space-before="10pt" space-after="10pt">Between tables</fo:block>
+          <fo:table table-layout="fixed" width="200pt" border-collapse="collapse">
+            <fo:table-column column-width="proportional-column-width(1)"
+              border="6pt solid blue"/>
+            <fo:table-column column-width="proportional-column-width(1)"
+              border="8pt solid red"/>
+            <fo:table-body>
+              <fo:table-row>
+                <fo:table-cell number-columns-spanned="2" border="1pt solid black">
+                  <fo:block>Cell 1.1</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+              <fo:table-row>
+                <fo:table-cell border="1pt solid black">
+                  <fo:block>Cell 2.1</fo:block>
+                </fo:table-cell>
+                <fo:table-cell border="1pt solid black">
+                  <fo:block>Cell 2.2</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+            </fo:table-body>
+          </fo:table>
+
           <fo:block>After the tables</fo:block>
         </fo:flow>
       </fo:page-sequence>
@@ -332,6 +356,27 @@
     <eval expected="(solid,#ffff00,14000,collapse-outer)" xpath="//flow/block[4]/block[22]/@border-after"/>
     <eval expected="(solid,#ffff00,1000,collapse-inner)" xpath="//flow/block[4]/block[22]/@border-start"/>
     <eval expected="(solid,#000000,10000,collapse-outer)" xpath="//flow/block[4]/block[22]/@border-end"/>
+
+    <!-- table 3 -->
+    <!-- cell 1.1 -->
+    <eval expected="(solid,#0000ff,6000,collapse-outer)" xpath="//flow/block[6]/block[1]/@border-before"/>
+    <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[6]/block[1]/@border-after"/>
+    <eval expected="(solid,#0000ff,6000,collapse-outer)" xpath="//flow/block[6]/block[1]/@border-start"/>
+    <eval expected="" xpath="//flow/block[6]/block[1]/@border-end"/>
+    <eval expected="(solid,#ff0000,8000,collapse-outer)" xpath="//flow/block[6]/block[2]/@border-before"/>
+    <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[6]/block[2]/@border-after"/>
+    <eval expected="" xpath="//flow/block[6]/block[2]/@border-start"/>
+    <eval expected="(solid,#ff0000,8000,collapse-outer)" xpath="//flow/block[6]/block[2]/@border-end"/>
+    <!-- cell 2.1 -->
+    <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[6]/block[4]/@border-before"/>
+    <eval expected="(solid,#0000ff,6000,collapse-outer)" xpath="//flow/block[6]/block[4]/@border-after"/>
+    <eval expected="(solid,#0000ff,6000,collapse-outer)" xpath="//flow/block[6]/block[4]/@border-start"/>
+    <eval expected="(solid,#ff0000,8000,collapse-inner)" xpath="//flow/block[6]/block[4]/@border-end"/>
+    <!-- cell 2.2 -->
+    <eval expected="(solid,#000000,1000,collapse-inner)" xpath="//flow/block[6]/block[5]/@border-before"/>
+    <eval expected="(solid,#ff0000,8000,collapse-outer)" xpath="//flow/block[6]/block[5]/@border-after"/>
+    <eval expected="(solid,#ff0000,8000,collapse-inner)" xpath="//flow/block[6]/block[5]/@border-start"/>
+    <eval expected="(solid,#ff0000,8000,collapse-outer)" xpath="//flow/block[6]/block[5]/@border-end"/>
 
   </checks>
 </testcase>

Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution_no-col.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution_no-col.xml?rev=603968&r1=603967&r2=603968&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution_no-col.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_border-collapse_collapse_resolution_no-col.xml Thu Dec 13 10:28:56 2007
@@ -20,7 +20,8 @@
 <!--
   NOTE: this test is a copy of table_border-collapse_collapse_resolution.xml, with all of the
   fo:table-column elements removed. The checks for the borders in the second column of the first
-  table have been changed accordingly (no more column which plays in the resolution).
+  table have been changed accordingly (no more column which plays in the resolution), and the third
+  table has been removed (not applicable when there are no columns).
 -->
 <testcase>
   <info>



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org