JAL-2592 distinguish "User Defined" (scheme name) from "User Defined..."
[jalview.git] / src / jalview / schemes / ColourSchemeProperty.java
index cee2cae..3e8e87a 100755 (executable)
@@ -44,6 +44,8 @@ public class ColourSchemeProperty
    * Returns a colour scheme for the given name, with which the given data may
    * be coloured. The name is not case-sensitive, and may be one of
    * <ul>
+   * <li>any currently registered colour scheme; Jalview by default provides</li>
+   * <ul>
    * <li>Clustal</li>
    * <li>Blosum62</li>
    * <li>% Identity</li>
@@ -58,11 +60,11 @@ public class ColourSchemeProperty
    * <li>Purine/Pyrimidine</li>
    * <li>T-Coffee Scores</li>
    * <li>RNA Helices</li>
-   * <li>User Defined</li>
-   * <li>an AWT colour name e.g. red</li>
-   * <li>an AWT hex rgb colour e.g. ff2288</li>
-   * <li>residue colours list e.g. D,E=red;K,R,H=0022FF;c=yellow</li>
    * </ul>
+   * <li>the name of a programmatically added colour scheme</li> <li>an AWT
+   * colour name e.g. red</li> <li>an AWT hex rgb colour e.g. ff2288</li> <li>
+   * residue colours list e.g. D,E=red;K,R,H=0022FF;c=yellow</li> </ul>
+   * 
    * If none of these formats is matched, the string is converted to a colour
    * using a hashing algorithm. For name "None", returns null.
    * 
@@ -78,10 +80,16 @@ public class ColourSchemeProperty
       return null;
 
     }
-    JalviewColourScheme scheme = JalviewColourScheme.forName(name);
+
+    /*
+     * if this is the name of a registered colour scheme, just
+     * create a new instance of it
+     */
+    ColourSchemeI scheme = ColourSchemes.getInstance().getColourScheme(
+            name, forData, null);
     if (scheme != null)
     {
-      return scheme.getColourScheme(forData);
+      return scheme;
     }
 
     /*
@@ -91,14 +99,7 @@ public class ColourSchemeProperty
      * e.g. "red" or "ff00ed",
      * or failing that hash the name to a colour
      */
-    UserColourScheme ucs = null;
-    try
-    {
-      ucs = new UserColourScheme(name);
-    } catch (Exception e)
-    {
-      // System.err.println("Ignoring exception when parsing colourscheme as applet-parameter");
-    }
+    UserColourScheme ucs = new UserColourScheme(name);
     return ucs;
   }