From 8743c33bd83bbbc8485ee7c3c63bd66657f6c16c Mon Sep 17 00:00:00 2001 From: Josh Micich Date: Sun, 3 Aug 2008 23:13:17 +0000 Subject: [PATCH] Small tweaks for data validation (bug 44953) git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@682230 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hssf/usermodel/DVConstraint.java | 38 ++++++++-------- .../hssf/usermodel/TestDataValidation.java | 44 +++---------------- 2 files changed, 26 insertions(+), 56 deletions(-) diff --git a/src/java/org/apache/poi/hssf/usermodel/DVConstraint.java b/src/java/org/apache/poi/hssf/usermodel/DVConstraint.java index d4f147316b..a1027ccfaa 100644 --- a/src/java/org/apache/poi/hssf/usermodel/DVConstraint.java +++ b/src/java/org/apache/poi/hssf/usermodel/DVConstraint.java @@ -37,22 +37,22 @@ public class DVConstraint { private ValidationType() { // no instances of this class } - /** 'Any value' type - value not restricted */ - public static final int ANY = 0x00; - /** Integer ('Whole number') type */ - public static final int INTEGER = 0x01; - /** Decimal type */ - public static final int DECIMAL = 0x02; - /** List type ( combo box type ) */ - public static final int LIST = 0x03; - /** Date type */ - public static final int DATE = 0x04; - /** Time type */ - public static final int TIME = 0x05; - /** String length type */ - public static final int TEXT_LENGTH = 0x06; - /** Formula ( 'Custom' ) type */ - public static final int FORMULA = 0x07; + /** 'Any value' type - value not restricted */ + public static final int ANY = 0x00; + /** Integer ('Whole number') type */ + public static final int INTEGER = 0x01; + /** Decimal type */ + public static final int DECIMAL = 0x02; + /** List type ( combo box type ) */ + public static final int LIST = 0x03; + /** Date type */ + public static final int DATE = 0x04; + /** Time type */ + public static final int TIME = 0x05; + /** String length type */ + public static final int TEXT_LENGTH = 0x06; + /** Formula ( 'Custom' ) type */ + public static final int FORMULA = 0x07; } /** * Condition operator enum @@ -312,7 +312,7 @@ public class DVConstraint { return new Double(HSSFDateUtil.getExcelDate(dateVal)); } - public static DVConstraint createFormulaConstraint(String formula) { + public static DVConstraint createCustomFormulaConstraint(String formula) { if (formula == null) { throw new IllegalArgumentException("formula must be supplied"); } @@ -329,8 +329,8 @@ public class DVConstraint { formula1 = createListFormula(workbook); formula2 = Ptg.EMPTY_PTG_ARRAY; } else { - formula1 = convertDoubleFormula(_formula1, _value1, workbook); - formula2 = convertDoubleFormula(_formula2, _value2, workbook); + formula1 = convertDoubleFormula(_formula1, _value1, workbook); + formula2 = convertDoubleFormula(_formula2, _value2, workbook); } return new FormulaPair(formula1, formula2); } diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java b/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java index b588c6e6cc..794d5433c3 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestDataValidation.java @@ -45,11 +45,11 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; public final class TestDataValidation extends TestCase { /** Convenient access to ERROR_STYLE constants */ - private static final HSSFDataValidation.ErrorStyle ES = null; + /*package*/ static final HSSFDataValidation.ErrorStyle ES = null; /** Convenient access to OPERATOR constants */ - private static final DVConstraint.ValidationType VT = null; + /*package*/ static final DVConstraint.ValidationType VT = null; /** Convenient access to OPERATOR constants */ - private static final DVConstraint.OperatorType OP = null; + /*package*/ static final DVConstraint.OperatorType OP = null; private static void log(String msg) { if (false) { // successful tests should be silent @@ -130,7 +130,7 @@ public final class TestDataValidation extends TestCase { return DVConstraint.createDateConstraint(operatorType, firstFormula, secondFormula, null); } if (_validationType == VT.FORMULA) { - return DVConstraint.createFormulaConstraint(firstFormula); + return DVConstraint.createCustomFormulaConstraint(firstFormula); } return DVConstraint.createNumericConstraint(_validationType, operatorType, firstFormula, secondFormula); } @@ -573,23 +573,8 @@ public final class TestDataValidation extends TestCase { HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("dvEmpty.xls"); int dvRow = 0; HSSFSheet sheet = wb.getSheetAt(0); - sheet.createRow(dvRow).createCell((short)0); - DVConstraint dc = DVConstraint.createNumericConstraint(VT.INTEGER, OP.EQUAL, "402", null); - HSSFDataValidation dv = new HSSFDataValidation(new CellRangeAddressList(dvRow, 0, dvRow, 0), dc); - - - dv.setEmptyCellAllowed(false); - dv.setErrorStyle(ES.STOP); - dv.setShowPromptBox(true); - dv.createErrorBox("Error", "The value is wrong"); - dv.setSuppressDropDownArrow(true); - - // sheet.addValidationData(dv); - - - dc = DVConstraint.createNumericConstraint(VT.INTEGER, OP.EQUAL, "42", null); - dv = new HSSFDataValidation(new CellRangeAddressList(0, 0, 0, 0), dc); - + DVConstraint dc = DVConstraint.createNumericConstraint(VT.INTEGER, OP.EQUAL, "42", null); + HSSFDataValidation dv = new HSSFDataValidation(new CellRangeAddressList(dvRow, dvRow, 0, 0), dc); dv.setEmptyCellAllowed(false); dv.setErrorStyle(ES.STOP); @@ -599,8 +584,6 @@ public final class TestDataValidation extends TestCase { sheet.addValidationData(dv); - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { wb.write(baos); @@ -637,22 +620,9 @@ public final class TestDataValidation extends TestCase { // and the DV records, Excel will not be able to open the workbook without error. if (nextSid == 0x0867) { - throw new AssertionFailedError("Identified bug XXXX"); + throw new AssertionFailedError("Identified bug 45519"); } assertEquals(DVRecord.sid, nextSid); - - - - File tempDir = new File("c:/josh/temp"); - File generatedFile = new File(tempDir, "dvEx2.xls"); - try { - FileOutputStream fileOut = new FileOutputStream(generatedFile); - wb.write(fileOut); - fileOut.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } private int findIndex(byte[] largeData, byte[] searchPattern) { byte firstByte = searchPattern[0];