X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemeProperty.java;h=0123384d0152edc8314bfc1c1a25c68539769293;hb=refs%2Fheads%2FJAL-3253-applet-113cc13-2019.08.28-js-optimizations;hp=425b3a1c964cf0e2fc6bb781cf910e0a7f13924f;hpb=320c96aed11f5c396a9efd9ea83b0e35f05e21e4;p=jalview.git
diff --git a/src/jalview/schemes/ColourSchemeProperty.java b/src/jalview/schemes/ColourSchemeProperty.java
index 425b3a1..0123384 100755
--- a/src/jalview/schemes/ColourSchemeProperty.java
+++ b/src/jalview/schemes/ColourSchemeProperty.java
@@ -20,10 +20,8 @@
*/
package jalview.schemes;
+import jalview.api.AlignViewportI;
import jalview.datamodel.AnnotatedCollectionI;
-import jalview.util.ColorUtils;
-
-import java.awt.Color;
/**
* ColourSchemeProperty binds names to hardwired colourschemes and tries to deal
@@ -40,10 +38,18 @@ import java.awt.Color;
public class ColourSchemeProperty
{
+ private ColourSchemeProperty()
+ {
+ // requires static call to getColourScheme(...).
+ }
+
/**
* 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
*
+ * - any currently registered colour scheme; Jalview by default
+ * provides
+ *
* - Clustal
* - Blosum62
* - % Identity
@@ -58,10 +64,13 @@ public class ColourSchemeProperty
* - Purine/Pyrimidine
* - T-Coffee Scores
* - RNA Helices
- * - User Defined
+ *
+ * - the name of a programmatically added colour scheme
* - an AWT colour name e.g. red
+ * - an AWT hex rgb colour e.g. ff2288
* - residue colours list e.g. D,E=red;K,R,H=0022FF;c=yellow
*
+ *
* If none of these formats is matched, the string is converted to a colour
* using a hashing algorithm. For name "None", returns null.
*
@@ -69,7 +78,8 @@ public class ColourSchemeProperty
* @param name
* @return
*/
- public static ColourSchemeI getColourScheme(AnnotatedCollectionI forData,
+ public static ColourSchemeI getColourScheme(AlignViewportI view,
+ AnnotatedCollectionI forData,
String name)
{
if (ResidueColourScheme.NONE.equalsIgnoreCase(name))
@@ -77,74 +87,30 @@ public class ColourSchemeProperty
return null;
}
- JalviewColourScheme scheme = JalviewColourScheme.forName(name);
- if (scheme != null)
- {
- return scheme.getColourScheme(forData);
- }
- 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,
+ view,
+ 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;
}
- public static Color rnaHelices[] = null;
-
- public static void initRnaHelicesShading(int n)
- {
- int j = 0;
- if (rnaHelices == null)
- {
- rnaHelices = new Color[n + 1];
- }
- else if (rnaHelices != null && rnaHelices.length <= n)
- {
- Color[] t = new Color[n + 1];
- System.arraycopy(rnaHelices, 0, t, 0, rnaHelices.length);
- j = rnaHelices.length;
- rnaHelices = t;
- }
- else
- {
- return;
- }
- // Generate random colors and store
- for (; j <= n; j++)
- {
- rnaHelices[j] = ColorUtils.generateRandomColor(Color.white);
- }
- }
-
- /**
- * delete the existing cached RNA helices colours
- */
- public static void resetRnaHelicesShading()
- {
- rnaHelices = null;
- }
-
/**
* Returns the name of the colour scheme (or "None" if it is null)
*
@@ -153,8 +119,7 @@ public class ColourSchemeProperty
*/
public static String getColourName(ColourSchemeI cs)
{
- return cs == null ? ResidueColourScheme.NONE : cs
- .getSchemeName();
+ return cs == null ? ResidueColourScheme.NONE : cs.getSchemeName();
}
}