You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2011/03/18 17:06:10 UTC
svn commit: r1082961 - in /poi/trunk/src:
documentation/content/xdocs/status.xml
ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Author: nick
Date: Fri Mar 18 16:06:10 2011
New Revision: 1082961
URL: http://svn.apache.org/viewvc?rev=1082961&view=rev
Log:
Fix bug #49253 - When setting repeating rows and columns for XSSF, don't break the print settings if they were already there
Modified:
poi/trunk/src/documentation/content/xdocs/status.xml
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=1082961&r1=1082960&r2=1082961&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Fri Mar 18 16:06:10 2011
@@ -34,6 +34,7 @@
<changes>
<release version="3.8-beta2" date="2011-??-??">
+ <action dev="poi-developers" type="fix">49253 - When setting repeating rows and columns for XSSF, don't break the print settings if they were already there</action>
<action dev="poi-developers" type="fix">49219 - ExternalNameRecord support for DDE Link entries without an operation</action>
<action dev="poi-developers" type="fix">50846 - More XSSFColor theme improvements, this time for Cell Borders</action>
<action dev="poi-developers" type="fix">50939 - ChartEndObjectRecord is supposed to have 6 bytes at the end, but handle it not</action>
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1082961&r1=1082960&r2=1082961&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Fri Mar 18 16:06:10 2011
@@ -1018,8 +1018,17 @@ public class XSSFWorkbook extends POIXML
String reference = getReferenceBuiltInRecord(name.getSheetName(), startColumn, endColumn, startRow, endRow);
name.setRefersToFormula(reference);
- XSSFPrintSetup printSetup = sheet.getPrintSetup();
- printSetup.setValidSettings(false);
+ // If the print setup isn't currently defined, then add it
+ // in but without printer defaults
+ // If it's already there, leave it as-is!
+ CTWorksheet ctSheet = sheet.getCTWorksheet();
+ if(ctSheet.isSetPageSetup() && ctSheet.isSetPageMargins()) {
+ // Everything we need is already there
+ } else {
+ // Have initial ones put in place
+ XSSFPrintSetup printSetup = sheet.getPrintSetup();
+ printSetup.setValidSettings(false);
+ }
}
private static String getReferenceBuiltInRecord(String sheetName, int startC, int endC, int startR, int endR) {
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1082961&r1=1082960&r2=1082961&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java Fri Mar 18 16:06:10 2011
@@ -892,4 +892,46 @@ public final class TestXSSFBugs extends
assertEquals("Tabella1", t.getDisplayName());
assertEquals("A1:C3", t.getCTTable().getRef());
}
+
+ /**
+ * Setting repeating rows and columns shouldn't break
+ * any print settings that were there before
+ */
+ public void test49253() throws Exception {
+ XSSFWorkbook wb1 = new XSSFWorkbook();
+ XSSFWorkbook wb2 = new XSSFWorkbook();
+
+ // No print settings before repeating
+ XSSFSheet s1 = wb1.createSheet();
+ assertEquals(false, s1.getCTWorksheet().isSetPageSetup());
+ assertEquals(true, s1.getCTWorksheet().isSetPageMargins());
+
+ wb1.setRepeatingRowsAndColumns(0, 2, 3, 1, 2);
+
+ assertEquals(true, s1.getCTWorksheet().isSetPageSetup());
+ assertEquals(true, s1.getCTWorksheet().isSetPageMargins());
+
+ XSSFPrintSetup ps1 = s1.getPrintSetup();
+ assertEquals(false, ps1.getValidSettings());
+ assertEquals(false, ps1.getLandscape());
+
+
+ // Had valid print settings before repeating
+ XSSFSheet s2 = wb2.createSheet();
+ XSSFPrintSetup ps2 = s2.getPrintSetup();
+ assertEquals(true, s2.getCTWorksheet().isSetPageSetup());
+ assertEquals(true, s2.getCTWorksheet().isSetPageMargins());
+
+ ps2.setLandscape(false);
+ assertEquals(true, ps2.getValidSettings());
+ assertEquals(false, ps2.getLandscape());
+
+ wb2.setRepeatingRowsAndColumns(0, 2, 3, 1, 2);
+
+ ps2 = s2.getPrintSetup();
+ assertEquals(true, s2.getCTWorksheet().isSetPageSetup());
+ assertEquals(true, s2.getCTWorksheet().isSetPageMargins());
+ assertEquals(true, ps2.getValidSettings());
+ assertEquals(false, ps2.getLandscape());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org