You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2015/07/20 00:35:37 UTC
svn commit: r1691860 - in /poi/trunk/src:
java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java
ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java
testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java
Author: nick
Date: Sun Jul 19 22:35:37 2015
New Revision: 1691860
URL: http://svn.apache.org/r1691860
Log:
#58130 Enable CF ColorScale support on the rule, and begin testing
Modified:
poi/trunk/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java
poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java
Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java?rev=1691860&r1=1691859&r2=1691860&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java Sun Jul 19 22:35:37 2015
@@ -84,6 +84,11 @@ public interface ConditionalFormattingRu
IconMultiStateFormatting getMultiStateFormatting();
/**
+ * @return color scale / color grate formatting object if defined, <code>null</code> otherwise
+ */
+ ColorScaleFormatting getColorScaleFormatting();
+
+ /**
* Type of conditional formatting rule.
* <p>
* MUST be one of the IDs of a {@link ConditionType}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java?rev=1691860&r1=1691859&r2=1691860&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java Sun Jul 19 22:35:37 2015
@@ -60,8 +60,6 @@ public class XSSFConditionalFormattingRu
typeLookup.put(STCfType.ABOVE_AVERAGE, ConditionType.FILTER);
}
- // TODO Support types beyond CELL_VALUE_IS and FORMULA
-
/*package*/ XSSFConditionalFormattingRule(XSSFSheet sh){
_cfRule = CTCfRule.Factory.newInstance();
_sh = sh;
@@ -218,8 +216,39 @@ public class XSSFConditionalFormattingRu
}
public XSSFColorScaleFormatting createColorScaleFormatting() {
- // TODO Implement
- return null;
+ // Is it already there?
+ if (_cfRule.isSetColorScale() && _cfRule.getType() == STCfType.COLOR_SCALE)
+ return getColorScaleFormatting();
+
+ // Mark it as being a Color Scale
+ _cfRule.setType(STCfType.COLOR_SCALE);
+
+ // Ensure the right element
+ CTColorScale scale = null;
+ if (_cfRule.isSetColorScale()) {
+ scale = _cfRule.getColorScale();
+ } else {
+ scale = _cfRule.addNewColorScale();
+ }
+
+ // Add a default set of thresholds and colors
+ if (scale.sizeOfCfvoArray() == 0) {
+ CTCfvo cfvo;
+ cfvo = scale.addNewCfvo();
+ cfvo.setType(STCfvoType.Enum.forString(RangeType.MIN.name));
+ cfvo = scale.addNewCfvo();
+ cfvo.setType(STCfvoType.Enum.forString(RangeType.PERCENTILE.name));
+ cfvo.setVal("50");
+ cfvo = scale.addNewCfvo();
+ cfvo.setType(STCfvoType.Enum.forString(RangeType.MAX.name));
+
+ for (int i=0; i<3; i++) {
+ scale.addNewColor();
+ }
+ }
+
+ // Wrap and return
+ return new XSSFColorScaleFormatting(scale);
}
public XSSFColorScaleFormatting getColorScaleFormatting() {
if (_cfRule.isSetColorScale()) {
Modified: poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java?rev=1691860&r1=1691859&r2=1691860&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java Sun Jul 19 22:35:37 2015
@@ -773,6 +773,7 @@ public abstract class BaseTestConditiona
// Mixed icons - Column U
// TODO Support EXT formattings
}
+
private void assertIconSetPercentages(ConditionalFormatting cf, IconSet iconset, Double...vals) {
assertEquals(1, cf.getNumberOfRules());
ConditionalFormattingRule cr = cf.getRule(0);
@@ -812,8 +813,9 @@ public abstract class BaseTestConditiona
assertEquals(null, cr.getFormula1());
assertEquals(null, cr.getFormula2());
- // TODO Implement
-/*
+// TODO Finish HSSF
+if (cr instanceof HSSFConditionalFormattingRule) return;
+
ColorScaleFormatting color = cr.getColorScaleFormatting();
assertNotNull(color);
assertNotNull(color.getColors());
@@ -831,18 +833,16 @@ public abstract class BaseTestConditiona
} else if (i == colors.length-1) {
assertEquals(RangeType.MAX, th.getRangeType());
} else {
- assertEquals(RangeType.PERCENT, th.getRangeType());
- assertEquals(steps*i, th.getValue());
+ assertEquals(RangeType.PERCENTILE, th.getRangeType());
+ assertEquals(steps*i, th.getValue().intValue());
}
assertEquals(null, th.getFormula());
}
// Colors should match
for (int i=0; i<colors.length; i++) {
- Color c = color.getColors()[i];
- assertEquals(colors[i], c.toString());
+ assertColour(colors[i], color.getColors()[i]);
}
-*/
}
public void testCreateFontFormatting() {
@@ -1068,6 +1068,13 @@ public abstract class BaseTestConditiona
assertEquals(null, iconFmt.getThresholds()[3].getValue());
}
+ public void testCreateColorScaleFormatting() {
+ // TODO Implement then test
+ }
+ public void testCreateDataBarFormatting() {
+ // TODO Implement then test
+ }
+
public void testBug55380() {
Workbook wb = _testDataProvider.createWorkbook();
Sheet sheet = wb.createSheet();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org