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/19 18:32:19 UTC

svn commit: r629169 - in /xmlgraphics/fop/trunk: src/java/org/apache/fop/layoutmgr/table/ActiveCell.java test/layoutengine/standard-testcases/table_row-delay.xml

Author: vhennebert
Date: Tue Feb 19 09:32:18 2008
New Revision: 629169

URL: http://svn.apache.org/viewvc?rev=629169&view=rev
Log:
Fixed a bug leading to the content of row-spanning cells being duplicated at page breaks, when it's small enough to fit on the previous row

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/ActiveCell.java
    xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_row-delay.xml

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/ActiveCell.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/ActiveCell.java?rev=629169&r1=629168&r2=629169&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/ActiveCell.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/ActiveCell.java Tue Feb 19 09:32:18 2008
@@ -290,12 +290,14 @@
      * @see #signalRowLastStep(int)
      */
     private void increaseCurrentStep(int limit) {
-        while (afterNextStep.totalLength <= limit && nextStep.breakClass == Constants.EN_AUTO) {
-            nextStep.set(afterNextStep);
-            if (afterNextStep.end >= elementList.size() - 1) {
-                break;
+        if (nextStep.end < elementList.size() - 1) {
+            while (afterNextStep.totalLength <= limit && nextStep.breakClass == Constants.EN_AUTO) {
+                nextStep.set(afterNextStep);
+                if (afterNextStep.end >= elementList.size() - 1) {
+                    break;
+                }
+                gotoNextLegalBreak();
             }
-            gotoNextLegalBreak();
         }
     }
 

Modified: xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_row-delay.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_row-delay.xml?rev=629169&r1=629168&r2=629169&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_row-delay.xml (original)
+++ xmlgraphics/fop/trunk/test/layoutengine/standard-testcases/table_row-delay.xml Tue Feb 19 09:32:18 2008
@@ -231,6 +231,40 @@
         </fo:flow>
       </fo:page-sequence>
 
+      <!-- table 5 -->
+      <fo:page-sequence master-reference="page">
+        <fo:flow flow-name="xsl-region-body">
+          <fo:block
+            space-after.minimum="175pt"
+            space-after.optimum="180pt"
+            space-after.maximum="185pt">5. Before the table.</fo:block>
+          <fo:table width="100%" table-layout="fixed"
+            border-collapse="separate" border="4pt solid black"
+            font-size="8pt" line-height="10pt">
+            <fo:table-column number-columns-repeated="2" column-width="proportional-column-width(1)"/>
+            <fo:table-body>
+              <fo:table-row>
+                <fo:table-cell border="2pt solid blue">
+                  <fo:block>Cell 1.1 Line 1</fo:block>
+                  <fo:block>Cell 1.1 Line 2</fo:block>
+                </fo:table-cell>
+                <fo:table-cell border="2pt solid teal" number-rows-spanned="2">
+                  <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>
+                <fo:table-cell border="2pt solid green">
+                  <fo:block>Cell 2.1 Line 1</fo:block>
+                  <fo:block>Cell 2.1 Line 2</fo:block>
+                </fo:table-cell>
+              </fo:table-row>
+            </fo:table-body>
+          </fo:table>
+        </fo:flow>
+      </fo:page-sequence>
+
+
     </fo:root>
   </fo>
   <checks>
@@ -432,6 +466,44 @@
     <eval expected="(solid,#000000,2000,collapse-outer)" xpath="//pageViewport[@nr='8']//flow/block[1]/block[4]/@border-before"/>
     <eval expected="(solid,#000000,2000,collapse-outer)" xpath="//pageViewport[@nr='8']//flow/block[1]/block[4]/@border-after"/>
     <eval expected="5"                             xpath="count(//pageViewport[@nr='8']//flow/block[1]/block[5]/block)"/>
+
+    <!-- table 5 -->
+    <!-- page 1 -->
+    <eval expected="24000"                xpath="//pageViewport[@nr='9']//flow/block[2]/@bpd"/>
+    <eval expected="28000"                xpath="//pageViewport[@nr='9']//flow/block[2]/@bpda"/>
+    <eval expected="(solid,#000000,4000)" xpath="//pageViewport[@nr='9']//flow/block[2]/@border-before"/>
+    <eval expected=""                     xpath="//pageViewport[@nr='9']//flow/block[2]/@border-after"/>
+    <!-- cell 1.1 -->
+    <eval expected="20000"                xpath="//pageViewport[@nr='9']//flow/block[2]/block[1]/@bpd"/>
+    <eval expected="24000"                xpath="//pageViewport[@nr='9']//flow/block[2]/block[1]/@bpda"/>
+    <eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='9']//flow/block[2]/block[1]/@border-before"/>
+    <eval expected="(solid,#0000ff,2000)" xpath="//pageViewport[@nr='9']//flow/block[2]/block[1]/@border-after"/>
+    <eval expected="2"               xpath="count(//pageViewport[@nr='9']//flow/block[2]/block[1]/block)"/>
+    <!-- cell 1.2 -->
+    <eval expected="22000"                xpath="//pageViewport[@nr='9']//flow/block[2]/block[2]/@bpd"/>
+    <eval expected="24000"                xpath="//pageViewport[@nr='9']//flow/block[2]/block[2]/@bpda"/>
+    <eval expected="(solid,#008080,2000)" xpath="//pageViewport[@nr='9']//flow/block[2]/block[2]/@border-before"/>
+    <eval expected=""                     xpath="//pageViewport[@nr='9']//flow/block[2]/block[2]/@border-after"/>
+    <eval expected="2"               xpath="count(//pageViewport[@nr='9']//flow/block[2]/block[2]/block)"/>
+    <eval expected="Cell 1.2 Line 1"      xpath="//pageViewport[@nr='9']//flow/block[2]/block[2]/block[1]/lineArea"/>
+    <eval expected="Cell 1.2 Line 2"      xpath="//pageViewport[@nr='9']//flow/block[2]/block[2]/block[2]/lineArea"/>
+    <!-- page 2 -->
+    <eval expected="24000"                xpath="//pageViewport[@nr='10']//flow/block[1]/@bpd"/>
+    <eval expected="28000"                xpath="//pageViewport[@nr='10']//flow/block[1]/@bpda"/>
+    <eval expected=""                     xpath="//pageViewport[@nr='10']//flow/block[1]/@border-before"/>
+    <eval expected="(solid,#000000,4000)" xpath="//pageViewport[@nr='10']//flow/block[1]/@border-after"/>
+    <!-- cell 2.1 -->
+    <eval expected="20000"                xpath="//pageViewport[@nr='10']//flow/block[1]/block[1]/@bpd"/>
+    <eval expected="24000"                xpath="//pageViewport[@nr='10']//flow/block[1]/block[1]/@bpda"/>
+    <eval expected="(solid,#008000,2000)" xpath="//pageViewport[@nr='10']//flow/block[1]/block[1]/@border-before"/>
+    <eval expected="(solid,#008000,2000)" xpath="//pageViewport[@nr='10']//flow/block[1]/block[1]/@border-after"/>
+    <eval expected="2"               xpath="count(//pageViewport[@nr='10']//flow/block[1]/block[1]/block)"/>
+    <!-- cell 1.2 -->
+    <eval expected="22000"                xpath="//pageViewport[@nr='10']//flow/block[1]/block[2]/@bpd"/>
+    <eval expected="24000"                xpath="//pageViewport[@nr='10']//flow/block[1]/block[2]/@bpda"/>
+    <eval expected=""                     xpath="//pageViewport[@nr='10']//flow/block[1]/block[2]/@border-before"/>
+    <eval expected="(solid,#008080,2000)" xpath="//pageViewport[@nr='10']//flow/block[1]/block[2]/@border-after"/>
+    <eval expected="0"               xpath="count(//pageViewport[@nr='10']//flow/block[1]/block[2]/block)"/>
 
   </checks>
 </testcase>



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