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 06:43:36 UTC

svn commit: r1691869 - in /poi/trunk/src: examples/src/org/apache/poi/ss/examples/ java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/ss/usermodel/ ooxml/java/org/apache/poi/xssf/usermodel/ testcases/org/apache/poi/ss/usermodel/

Author: nick
Date: Mon Jul 20 04:43:36 2015
New Revision: 1691869

URL: http://svn.apache.org/r1691869
Log:
#58130 CF DataBar example and tests

Modified:
    poi/trunk/src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java
    poi/trunk/src/java/org/apache/poi/ss/usermodel/CreationHelper.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
    poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java

Modified: poi/trunk/src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java?rev=1691869&r1=1691868&r2=1691869&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/ss/examples/ConditionalFormats.java Mon Jul 20 04:43:36 2015
@@ -57,8 +57,7 @@ public class ConditionalFormats {
         shadeBands(wb.createSheet("Shade Bands"));
         iconSets(wb.createSheet("Icon Sets"));
         colourScales(wb.createSheet("Colour Scales"));
-        
-        // TODO Add data bars, see bug #58130
+        dataBars(wb.createSheet("Data Bars"));
 
         // Write the output to a file
         String file = "cf-poi.xls";
@@ -541,4 +540,69 @@ public class ConditionalFormats {
         ((ExtendedColor)cs3.getColors()[1]).setARGBHex("FF63BE7B");
         sheetCF.addConditionalFormatting(regions, rule3);
     }
+    
+    /**
+     * DataBars / Data-Bars allow you to have bars shown vary
+     *  based on the values, from full to empty
+     */
+    static void dataBars(Sheet sheet) {
+        sheet.createRow(0).createCell(0).setCellValue("Data Bars");
+        Row r = sheet.createRow(1);
+        r.createCell(1).setCellValue("Green Positive");
+        r.createCell(2).setCellValue("Blue Mix");
+        r.createCell(3).setCellValue("Red Negative");
+        r = sheet.createRow(2);
+        r.createCell(1).setCellValue(0);
+        r.createCell(2).setCellValue(0);
+        r.createCell(3).setCellValue(0);
+        r = sheet.createRow(3);
+        r.createCell(1).setCellValue(5);
+        r.createCell(2).setCellValue(-5);
+        r.createCell(3).setCellValue(-5);
+        r = sheet.createRow(4);
+        r.createCell(1).setCellValue(10);
+        r.createCell(2).setCellValue(10);
+        r.createCell(3).setCellValue(-10);
+        r = sheet.createRow(5);
+        r.createCell(1).setCellValue(5);
+        r.createCell(2).setCellValue(5);
+        r.createCell(3).setCellValue(-5);
+        r = sheet.createRow(6);
+        r.createCell(1).setCellValue(20);
+        r.createCell(2).setCellValue(-10);
+        r.createCell(3).setCellValue(-20);
+        sheet.setColumnWidth(0, 3000);
+        sheet.setColumnWidth(1, 5000);
+        sheet.setColumnWidth(2, 5000);
+        sheet.setColumnWidth(3, 5000);
+
+        SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
+        
+        ExtendedColor color = sheet.getWorkbook().getCreationHelper().createExtendedColor();
+        color.setARGBHex("FF63BE7B");
+        CellRangeAddress[] regions = { CellRangeAddress.valueOf("B2:B7") };
+        ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(color);
+        DataBarFormatting db1 = rule1.getDataBarFormatting();
+        db1.getMinThreshold().setRangeType(RangeType.MIN);
+        db1.getMaxThreshold().setRangeType(RangeType.MAX);
+        sheetCF.addConditionalFormatting(regions, rule1);
+        
+        color = sheet.getWorkbook().getCreationHelper().createExtendedColor();
+        color.setARGBHex("FF5A8AC6");
+        regions = new CellRangeAddress[] { CellRangeAddress.valueOf("C2:C7") };
+        ConditionalFormattingRule rule2 = sheetCF.createConditionalFormattingRule(color);
+        DataBarFormatting db2 = rule2.getDataBarFormatting();
+        db2.getMinThreshold().setRangeType(RangeType.MIN);
+        db2.getMaxThreshold().setRangeType(RangeType.MAX);
+        sheetCF.addConditionalFormatting(regions, rule2);
+        
+        color = sheet.getWorkbook().getCreationHelper().createExtendedColor();
+        color.setARGBHex("FFF8696B");
+        regions = new CellRangeAddress[] { CellRangeAddress.valueOf("D2:D7") };
+        ConditionalFormattingRule rule3 = sheetCF.createConditionalFormattingRule(color);
+        DataBarFormatting db3 = rule3.getDataBarFormatting();
+        db3.getMinThreshold().setRangeType(RangeType.MIN);
+        db3.getMaxThreshold().setRangeType(RangeType.MAX);
+        sheetCF.addConditionalFormatting(regions, rule3);
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java?rev=1691869&r1=1691868&r2=1691869&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFCreationHelper.java Mon Jul 20 04:43:36 2015
@@ -17,6 +17,7 @@
 
 package org.apache.poi.hssf.usermodel;
 
+import org.apache.poi.hssf.record.common.ExtendedColor;
 import org.apache.poi.ss.usermodel.CreationHelper;
 
 public class HSSFCreationHelper implements CreationHelper {
@@ -42,7 +43,11 @@ public class HSSFCreationHelper implemen
 		return new HSSFHyperlink(type);
 	}
 
-	/**
+	public HSSFExtendedColor createExtendedColor() {
+        return new HSSFExtendedColor(new ExtendedColor());
+    }
+
+    /**
 	 * Creates a HSSFFormulaEvaluator, the object that evaluates formula cells.
 	 *
 	 * @return a HSSFFormulaEvaluator instance

Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/CreationHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/CreationHelper.java?rev=1691869&r1=1691868&r2=1691869&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/CreationHelper.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/CreationHelper.java Mon Jul 20 04:43:36 2015
@@ -51,6 +51,12 @@ public interface CreationHelper {
      * @return a FormulaEvaluator instance
      */
     FormulaEvaluator createFormulaEvaluator();
+    
+    /**
+     * Creates a XSSF-style Color object, used for extended sheet
+     *  formattings and conditional formattings
+     */
+    ExtendedColor createExtendedColor();
 
     ClientAnchor createClientAnchor();
 }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java?rev=1691869&r1=1691868&r2=1691869&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java Mon Jul 20 04:43:36 2015
@@ -39,6 +39,10 @@ public class XSSFCreationHelper implemen
 		return workbook.createDataFormat();
 	}
 
+    public XSSFColor createExtendedColor() {
+        return new XSSFColor();
+    }
+
     /**
      * Create a new XSSFHyperlink.
      *

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=1691869&r1=1691868&r2=1691869&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 Mon Jul 20 04:43:36 2015
@@ -1138,7 +1138,50 @@ public abstract class BaseTestConditiona
     }
     
     public void testCreateDataBarFormatting() {
-        // TODO Implement then test
+        Workbook workbook = _testDataProvider.createWorkbook();
+        Sheet sheet = workbook.createSheet();
+
+        String colorHex = "FFFFEB84";
+        ExtendedColor color = workbook.getCreationHelper().createExtendedColor();
+        color.setARGBHex(colorHex);
+        SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
+        ConditionalFormattingRule rule1 = 
+                sheetCF.createConditionalFormattingRule(color);
+        DataBarFormatting dbFmt = rule1.getDataBarFormatting();
+        
+        assertEquals(false, dbFmt.isIconOnly());
+        assertEquals(true, dbFmt.isLeftToRight());
+        assertEquals(0,   dbFmt.getWidthMin());
+        assertEquals(100, dbFmt.getWidthMax());
+        assertColour(colorHex, dbFmt.getColor());
+        
+        dbFmt.getMinThreshold().setRangeType(RangeType.MIN);
+        dbFmt.getMaxThreshold().setRangeType(RangeType.MAX);
+        
+        CellRangeAddress [] regions = { CellRangeAddress.valueOf("A1:A5") };
+        sheetCF.addConditionalFormatting(regions, rule1);
+        
+        // Save, re-load and re-check
+        workbook = _testDataProvider.writeOutAndReadBack(workbook);
+        sheetCF = sheet.getSheetConditionalFormatting();
+        assertEquals(1, sheetCF.getNumConditionalFormattings());
+        
+        ConditionalFormatting cf = sheetCF.getConditionalFormattingAt(0);
+        assertEquals(1, cf.getNumberOfRules());
+        rule1 = cf.getRule(0);
+        dbFmt = rule1.getDataBarFormatting();
+        assertEquals(ConditionType.DATA_BAR, rule1.getConditionTypeType());
+        
+        assertEquals(false, dbFmt.isIconOnly());
+        assertEquals(true, dbFmt.isLeftToRight());
+        assertEquals(0,   dbFmt.getWidthMin());
+        assertEquals(100, dbFmt.getWidthMax());
+        assertColour(colorHex, dbFmt.getColor());
+
+        assertEquals(RangeType.MIN, dbFmt.getMinThreshold().getRangeType());
+        assertEquals(RangeType.MAX, dbFmt.getMaxThreshold().getRangeType());
+        assertEquals(null, dbFmt.getMinThreshold().getValue());
+        assertEquals(null, dbFmt.getMaxThreshold().getValue());
     }
     
     public void testBug55380() {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org