/**
* Returns a colour scheme for the given name, with which the given data may
- * be coloured. The name may be one of
+ * 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>Purine/Pyrimidine</li>
* <li>T-Coffee Scores</li>
* <li>RNA Helices</li>
- * <li>User Defined</li>
- * <li>None</li>
- * <li>an AWT colour name e.g. red</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.
+ * using a hashing algorithm. For name "None", returns null.
*
* @param forData
* @param name
* @return
*/
- public static ColourSchemeI getColour(AnnotatedCollectionI forData,
+ public static ColourSchemeI getColourScheme(AnnotatedCollectionI forData,
String name)
{
- JalviewColourScheme scheme = JalviewColourScheme.forName(name);
- if (scheme != null)
+ if (ResidueColourScheme.NONE.equalsIgnoreCase(name))
{
- // note JalviewColourScheme.None returns null here
- return scheme.getColourScheme(forData);
+ return null;
+
}
- if (name.indexOf('=') == -1)
+ /*
+ * 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)
{
- /*
- * parse the name as a colour specification
- * e.g. "red" or "ff00ed",
- * or failing that hash the name to a colour
- */
- return new UserColourScheme(name);
+ return scheme;
}
/*
* try to parse the string as a residues colour scheme
* e.g. A=red;T,G=blue etc
+ * else parse the name as a colour specification
+ * e.g. "red" or "ff00ed",
+ * or failing that hash the name to a colour
*/
- UserColourScheme ucs = null;
- try
- {
- // fix the launchApp user defined colourscheme transfer bug
- ucs = new UserColourScheme("white");
- ucs.parseAppletParameter(name);
- } catch (Exception e)
- {
- // System.err.println("Ignoring exception when parsing colourscheme as applet-parameter");
- }
+ UserColourScheme ucs = new UserColourScheme(name);
return ucs;
}