]> source.dussan.org Git - poi.git/commitdiff
#58130 Improve enum lookup by name, and work around a docs ordering bug
authorNick Burch <nick@apache.org>
Sat, 18 Jul 2015 04:52:45 +0000 (04:52 +0000)
committerNick Burch <nick@apache.org>
Sat, 18 Jul 2015 04:52:45 +0000 (04:52 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1691677 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/ss/usermodel/ConditionalFormattingThreshold.java
src/java/org/apache/poi/ss/usermodel/IconMultiStateFormatting.java

index 46e2b0b7b76e0b273fd984c6ece1ed4aaca03806..8f2ecaf52629247bdbdd51761d73ebab099da9f3 100644 (file)
@@ -54,6 +54,12 @@ public interface ConditionalFormattingThreshold {
         public static RangeType byId(int id) {\r
             return values()[id-1]; // 1-based IDs\r
         }\r
+        public static RangeType byName(String name) {\r
+            for (RangeType t : values()) {\r
+                if (t.name.equals(name)) return t;\r
+            }\r
+            return null;\r
+        }\r
         \r
         private RangeType(int id, String name) {\r
             this.id = id; this.name = name;\r
index cdd46d0573e9bd4cd3395e15ca6d80f9f8a05120..d5212e5b94efc63fc7230cb209ce5fe73766f828 100644 (file)
@@ -31,12 +31,14 @@ public interface IconMultiStateFormatting {
         GREY_3_ARROWS(1, 3, "3ArrowsGray"),\r
         /** Green / Yellow / Red flags */\r
         GYR_3_FLAGS(2, 3, "3Flags"),\r
-        /** Green / Yellow / Red traffic lights (no background) */\r
-        GYR_3_TRAFFIC_LIGHTS(3, 3, null),\r
-        /** Green Circle / Yellow Triangle / Red Diamond */ \r
-        GYR_3_SHAPES(4, 3, "3Signs"),\r
-        /** Green / Yellow / Red traffic lights on a black square background */\r
-        GYR_3_TRAFFIC_LIGHTS_BOX(5, 3, "3TrafficLights2"),\r
+        /** Green / Yellow / Red traffic lights (no background). Default */\r
+        GYR_3_TRAFFIC_LIGHTS(3, 3, "3TrafficLights1"),\r
+        /** Green / Yellow / Red traffic lights on a black square background. \r
+         * Note, MS-XLS docs v20141018 say this is id=5 but seems to be id=4 */\r
+        GYR_3_TRAFFIC_LIGHTS_BOX(4, 3, "3TrafficLights2"),\r
+        /** Green Circle / Yellow Triangle / Red Diamond.\r
+         * Note, MS-XLS docs v20141018 say this is id=4 but seems to be id=5 */ \r
+        GYR_3_SHAPES(5, 3, "3Signs"),\r
         /** Green Tick / Yellow ! / Red Cross on a circle background */\r
         GYR_3_SYMBOLS_CIRCLE(6, 3, "3Symbols"),\r
         /** Green Tick / Yellow ! / Red Cross (no background) */\r
@@ -55,6 +57,8 @@ public interface IconMultiStateFormatting {
         RATINGS_5(0xF, 5, "5Rating"),\r
         QUARTERS_5(0x10, 5, "5Quarters");\r
         \r
+        protected static final IconSet DEFAULT_ICONSET = IconSet.GYR_3_TRAFFIC_LIGHTS;\r
+        \r
         /** Numeric ID of the icon set */\r
         public int id;\r
         /** How many icons in the set */\r
@@ -63,15 +67,18 @@ public interface IconMultiStateFormatting {
         public final String name;\r
         \r
         public String toString() {\r
-            return id + " - " + getName();\r
-        }\r
-        private String getName() {\r
-            return (name==null?"default":name);\r
+            return id + " - " + name;\r
         }\r
         \r
         public static IconSet byId(int id) {\r
             return values()[id];\r
         }\r
+        public static IconSet byName(String name) {\r
+            for (IconSet set : values()) {\r
+                if (set.name.equals(name)) return set;\r
+            }\r
+            return null;\r
+        }\r
         \r
         private IconSet(int id, int num, String name) {\r
             this.id = id; this.num = num; this.name = name;\r
@@ -113,4 +120,8 @@ public interface IconMultiStateFormatting {
      *  {@link IconSet#num} for the current {@link #getIconSet()}\r
      */\r
     void setThresholds(ConditionalFormattingThreshold[] thresholds);\r
+    /**\r
+     * Creates a new, empty Threshold\r
+     */\r
+    ConditionalFormattingThreshold createThreshold();\r
 }\r