]> source.dussan.org Git - poi.git/commitdiff
More test for bug #49381 / #50884 - xssf freeze panes
authorNick Burch <nick@apache.org>
Fri, 8 Apr 2011 15:41:36 +0000 (15:41 +0000)
committerNick Burch <nick@apache.org>
Fri, 8 Apr 2011 15:41:36 +0000 (15:41 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1090301 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

index 6651b10f2d10aca54803da5238ca2f65007bdc34..f6b69336077e38a9ecbbfb06dfede0e40c12d2b2 100644 (file)
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.8-beta3" date="2011-??-??">
+           <action dev="poi-developers" type="fix">50884 - XSSF and HSSF freeze panes now behave the same</action>
            <action dev="poi-developers" type="add">Support for adding a table to a XSSFSheet</action>
            <action dev="poi-developers" type="add">Improve HSMF MAPIMessage access to the HTML and RTF versions of the message body (where available)</action>
            <action dev="poi-developers" type="add">Add new method to HSMF of MAPIMessage.has7BitEncodingStrings() to make it easier to decide when encoding guessing is needed</action>
index 80cfd914766e90e8cd62a763ea7e8c7de75afe2c..2d8ccf970b847013123cc02fd1460b8f973e4c91 100644 (file)
@@ -443,14 +443,23 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
      */
     public void createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow) {
         CTPane pane = getPane();
-        if (colSplit > 0) pane.setXSplit(colSplit);
-        if (rowSplit > 0) pane.setYSplit(rowSplit);
+        if (colSplit > 0) { 
+           pane.setXSplit(colSplit);
+        } else {
+           pane.unsetXSplit();
+        }
+        if (rowSplit > 0) {
+           pane.setYSplit(rowSplit);
+        } else {
+           pane.unsetYSplit();
+        }
+        
         pane.setState(STPaneState.FROZEN);
         if (rowSplit == 0) {
-            pane.setTopLeftCell(new CellReference(0, topRow).formatAsString());
+            pane.setTopLeftCell(new CellReference(0, leftmostColumn).formatAsString());
             pane.setActivePane(STPane.TOP_RIGHT);
         } else if (colSplit == 0) {
-            pane.setTopLeftCell(new CellReference(rowSplit, 0).formatAsString());
+            pane.setTopLeftCell(new CellReference(topRow, 0).formatAsString());
             pane.setActivePane(STPane.BOTTOM_LEFT);
         } else {
             pane.setTopLeftCell(new CellReference(topRow, leftmostColumn).formatAsString());
index cf873f4d88174a309f26bc5d5d2734ac9e3ac37f..835b38627ce22bee00880a8b78801988fa8c7ebc 100644 (file)
@@ -999,6 +999,29 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
           assertEquals(rowSplit,       paneInfo.getHorizontalSplitPosition());
           assertEquals(leftmostColumn, paneInfo.getVerticalSplitLeftColumn());
           assertEquals(topRow,         paneInfo.getHorizontalSplitTopRow());
+          
+          
+          // Now a row only freezepane
+          s.createFreezePane(0, 3);
+          paneInfo = s.getPaneInformation();
+          
+          assertEquals(0,  paneInfo.getVerticalSplitPosition());
+          assertEquals(3,  paneInfo.getHorizontalSplitPosition());
+          if(wb == wbs[0]) {
+             assertEquals(64, paneInfo.getVerticalSplitLeftColumn()); // HSSF
+          } else {
+             assertEquals(0,  paneInfo.getVerticalSplitLeftColumn()); // XSSF
+          }
+          assertEquals(3,  paneInfo.getHorizontalSplitTopRow());
+          
+          // Now a column only freezepane
+          s.createFreezePane(4, 0);
+          paneInfo = s.getPaneInformation();
+          
+          assertEquals(4,  paneInfo.getVerticalSplitPosition());
+          assertEquals(0,  paneInfo.getHorizontalSplitPosition());
+          assertEquals(4 , paneInfo.getVerticalSplitLeftColumn());
+          assertEquals(0,  paneInfo.getHorizontalSplitTopRow());
        }
     }
 }