aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2011-06-24 13:06:04 +0000
committerYegor Kozlov <yegor@apache.org>2011-06-24 13:06:04 +0000
commitb8df0e686b8fccce719a4f25a7f0ea8d32b2e5cf (patch)
tree64e3efd232bb5af2855cd4e33255de934504afe6
parent26c6241c8a10ad0dc8620c936a536b5e004a64da (diff)
downloadpoi-b8df0e686b8fccce719a4f25a7f0ea8d32b2e5cf.tar.gz
poi-b8df0e686b8fccce719a4f25a7f0ea8d32b2e5cf.zip
Bug 49564 - Fixed default behaviour of XSSFCellStyle.getLocked()
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1139288 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/documentation/content/xdocs/status.xml1
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java31
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java6
-rw-r--r--src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java35
4 files changed, 55 insertions, 18 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index 5e268167d7..edfcf676a2 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -34,6 +34,7 @@
<changes>
<release version="3.8-beta4" date="2011-??-??">
+ <action dev="poi-developers" type="fix">49564 - Fixed default behaviour of XSSFCellStyle.getLocked() </action>
<action dev="poi-developers" type="fix">48314 - Fixed setting column and row breaks in XSSF</action>
<action dev="poi-developers" type="add">51424 - Ignore exceptions in ParagraphSprmUncompressor</action>
<action dev="poi-developers" type="fix">51415 - Fixed Workbook.createSheet(sheetName) to truncate names longer than 31 characters</action>
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
index 86a8aac235..51ffe6e06e 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCellStyle.java
@@ -565,7 +565,10 @@ public class XSSFCellStyle implements CellStyle {
* @return boolean - whether the cell using this style is hidden
*/
public boolean getHidden() {
- return getCellProtection().getHidden();
+ if (!_cellXf.isSetProtection() || !_cellXf.getProtection().isSetHidden()) {
+ return false;
+ }
+ return _cellXf.getProtection().getHidden();
}
/**
@@ -619,7 +622,10 @@ public class XSSFCellStyle implements CellStyle {
* @return whether the cell using this style are locked
*/
public boolean getLocked() {
- return getCellProtection().getLocked();
+ if (!_cellXf.isSetProtection() || !_cellXf.getProtection().isSetLocked()) {
+ return true;
+ }
+ return _cellXf.getProtection().getLocked();
}
/**
@@ -1169,7 +1175,10 @@ public class XSSFCellStyle implements CellStyle {
* @param hidden - whether the cell using this style should be hidden
*/
public void setHidden(boolean hidden) {
- getCellProtection().setHidden(hidden);
+ if (!_cellXf.isSetProtection()) {
+ _cellXf.addNewProtection();
+ }
+ _cellXf.getProtection().setHidden(hidden);
}
/**
@@ -1218,7 +1227,10 @@ public class XSSFCellStyle implements CellStyle {
* @param locked - whether the cell using this style should be locked
*/
public void setLocked(boolean locked) {
- getCellProtection().setLocked(locked);
+ if (!_cellXf.isSetProtection()) {
+ _cellXf.addNewProtection();
+ }
+ _cellXf.getProtection().setLocked(locked);
}
/**
@@ -1389,17 +1401,6 @@ public class XSSFCellStyle implements CellStyle {
}
/**
- * get a cellProtection from the supplied XML definition
- * @return CTCellProtection
- */
- private CTCellProtection getCellProtection() {
- if (_cellXf.getProtection() == null) {
- _cellXf.addNewProtection();
- }
- return _cellXf.getProtection();
- }
-
- /**
* get the cellAlignment object to use for manage alignment
* @return XSSFCellAlignment - cell alignment
*/
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
index 14259cf43c..a9c968c7e3 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
@@ -526,15 +526,15 @@ public class TestXSSFCellStyle extends TestCase {
public void testGetSetHidden() {
assertFalse(cellStyle.getHidden());
- cellXf.getProtection().setHidden(true);
+ cellStyle.setHidden(true);
assertTrue(cellStyle.getHidden());
cellStyle.setHidden(false);
assertFalse(cellStyle.getHidden());
}
public void testGetSetLocked() {
- assertFalse(cellStyle.getLocked());
- cellXf.getProtection().setLocked(true);
+ assertTrue(cellStyle.getLocked());
+ cellStyle.setLocked(true);
assertTrue(cellStyle.getLocked());
cellStyle.setLocked(false);
assertFalse(cellStyle.getLocked());
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java
index e521aa59c7..14f70295a6 100644
--- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java
+++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java
@@ -544,4 +544,39 @@ public abstract class BaseTestCell extends TestCase {
assertEquals(Cell.CELL_TYPE_ERROR, cell2.getCellType());
assertEquals(ErrorConstants.ERROR_DIV_0, cell2.getErrorCellValue());
}
+
+ public void testDefaultStyleProperties() {
+ Workbook wb = _testDataProvider.createWorkbook();
+
+ Cell cell = wb.createSheet("Sheet1").createRow(0).createCell(0);
+ CellStyle style = cell.getCellStyle();
+
+ assertTrue(style.getLocked());
+ assertFalse(style.getHidden());
+ assertEquals(0, style.getIndention());
+ assertEquals(0, style.getFontIndex());
+ assertEquals(0, style.getAlignment());
+ assertEquals(0, style.getDataFormat());
+ assertEquals(false, style.getWrapText());
+
+ CellStyle style2 = wb.createCellStyle();
+ assertTrue(style2.getLocked());
+ assertFalse(style2.getHidden());
+ style2.setLocked(false);
+ style2.setHidden(true);
+ assertFalse(style2.getLocked());
+ assertTrue(style2.getHidden());
+
+ wb = _testDataProvider.writeOutAndReadBack(wb);
+ cell = wb.getSheetAt(0).getRow(0).getCell(0);
+ style = cell.getCellStyle();
+ assertFalse(style2.getLocked());
+ assertTrue(style2.getHidden());
+
+ style2.setLocked(true);
+ style2.setHidden(false);
+ assertTrue(style2.getLocked());
+ assertFalse(style2.getHidden());
+ }
+
}