diff options
author | PJ Fanning <fanningpj@apache.org> | 2022-06-15 16:01:37 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2022-06-15 16:01:37 +0000 |
commit | d075f2ae9cdfbe9ff4fd3fdaee05bf32851821f6 (patch) | |
tree | b37d2abe79e90f78df7595b8122a18032305f93a | |
parent | c559e4549ad1816b82e9a9582467d0d03e94798b (diff) | |
download | poi-d075f2ae9cdfbe9ff4fd3fdaee05bf32851821f6.tar.gz poi-d075f2ae9cdfbe9ff4fd3fdaee05bf32851821f6.zip |
[bug-66123] support gte attribute in XSSFConditionalFormattingThreshold
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901945 13f79535-47bb-0310-9956-ffa450edef68
3 files changed, 47 insertions, 11 deletions
diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java index b155a79654..4f8021b973 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java @@ -72,6 +72,7 @@ public class XSSFConditionalFormattingThreshold implements org.apache.poi.ss.use return null; } } + @Override public void setValue(Double value) { if (value == null) { @@ -80,4 +81,20 @@ public class XSSFConditionalFormattingThreshold implements org.apache.poi.ss.use cfvo.setVal(value.toString()); } } + + /** + * @return true if 'gte' attribute is set to true (defaults to true) + * @since POI 5.2.3 + */ + public boolean isGte() { + return cfvo.getGte(); + } + + /** + * @param gte set 'gte' attribute (defaults to true) + * @since POI 5.2.3 + */ + public void setGte(boolean gte) { + cfvo.setGte(gte); + } } diff --git a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java index 50d11b8c5c..da4d9b9102 100644 --- a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java +++ b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java @@ -19,7 +19,10 @@ package org.apache.poi.xssf.usermodel; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; @@ -27,6 +30,7 @@ import org.apache.poi.ss.usermodel.BaseTestConditionalFormatting; import org.apache.poi.ss.usermodel.Color; import org.apache.poi.ss.usermodel.ConditionalFormatting; import org.apache.poi.ss.usermodel.ConditionalFormattingRule; +import org.apache.poi.ss.usermodel.ConditionalFormattingThreshold; import org.apache.poi.ss.usermodel.ExtendedColor; import org.apache.poi.ss.usermodel.FontFormatting; import org.apache.poi.ss.usermodel.PatternFormatting; @@ -143,4 +147,18 @@ class TestXSSFConditionalFormatting extends BaseTestConditionalFormatting { protected boolean applyLimitOf3() { return false; } + + @Override + protected void checkThreshold(ConditionalFormattingThreshold threshold) { + assertNull(threshold.getValue()); + assertNull(threshold.getFormula()); + assertTrue(threshold instanceof XSSFConditionalFormattingThreshold, + "threshold is a XSSFConditionalFormattingThreshold?"); + XSSFConditionalFormattingThreshold xssfThreshold = (XSSFConditionalFormattingThreshold)threshold; + assertTrue(xssfThreshold.isGte(), "gte defaults to true?"); + xssfThreshold.setGte(false); + assertFalse(xssfThreshold.isGte(), "gte changed to false?"); + xssfThreshold.setGte(true); + assertTrue(xssfThreshold.isGte(), "gte changed to true?"); + } } diff --git a/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java b/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java index e58138c663..49f944635b 100644 --- a/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java +++ b/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java @@ -550,8 +550,7 @@ public abstract class BaseTestConditionalFormatting { if (str.contains("[CFEX]")) fCFEX++; } else { ConditionType type = cf.getRule(cf.getNumberOfRules() - 1).getConditionType(); - if (type == ConditionType.CELL_VALUE_IS || - type == ConditionType.FORMULA) { + if (type == ConditionType.CELL_VALUE_IS || type == ConditionType.FORMULA) { fCF++; } else { // TODO Properly detect Ext ones from the xml @@ -772,15 +771,17 @@ public abstract class BaseTestConditionalFormatting { assertColor(color, databar.getColor()); - ConditionalFormattingThreshold th; - th = databar.getMinThreshold(); - assertEquals(RangeType.MIN, th.getRangeType()); - assertNull(th.getValue()); - assertNull(th.getFormula()); - th = databar.getMaxThreshold(); - assertEquals(RangeType.MAX, th.getRangeType()); - assertNull(th.getValue()); - assertNull(th.getFormula()); + ConditionalFormattingThreshold th1 = databar.getMinThreshold(); + assertEquals(RangeType.MIN, th1.getRangeType()); + checkThreshold(th1); + ConditionalFormattingThreshold th2 = databar.getMaxThreshold(); + assertEquals(RangeType.MAX, th2.getRangeType()); + checkThreshold(th2); + } + + protected void checkThreshold(ConditionalFormattingThreshold threshold) { + assertNull(threshold.getValue()); + assertNull(threshold.getFormula()); } private void assertIconSetPercentages(ConditionalFormatting cf, IconSet iconset, Double...vals) { |