aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2022-06-15 16:01:37 +0000
committerPJ Fanning <fanningpj@apache.org>2022-06-15 16:01:37 +0000
commitd075f2ae9cdfbe9ff4fd3fdaee05bf32851821f6 (patch)
treeb37d2abe79e90f78df7595b8122a18032305f93a
parentc559e4549ad1816b82e9a9582467d0d03e94798b (diff)
downloadpoi-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
-rw-r--r--poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java17
-rw-r--r--poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java18
-rw-r--r--poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java23
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) {