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