[bug-66123] support gte attribute in XSSFConditionalFormattingThreshold

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901945 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2022-06-15 16:01:37 +00:00
parent c559e4549a
commit d075f2ae9c
3 changed files with 47 additions and 11 deletions

View File

@ -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);
}
}

View File

@ -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?");
}
}

View File

@ -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) {