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 * + * * 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(); } }