X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemeProperty.java;h=2d5b23dfa343f3b55284a07b944c6df4563a896e;hb=refs%2Fheads%2Fdoc%2FJAL-3746_Release_2_11_2;hp=425b3a1c964cf0e2fc6bb781cf910e0a7f13924f;hpb=320c96aed11f5c396a9efd9ea83b0e35f05e21e4;p=jalview.git diff --git a/src/jalview/schemes/ColourSchemeProperty.java b/src/jalview/schemes/ColourSchemeProperty.java index 425b3a1..2d5b23d 100755 --- a/src/jalview/schemes/ColourSchemeProperty.java +++ b/src/jalview/schemes/ColourSchemeProperty.java @@ -20,6 +20,7 @@ */ package jalview.schemes; +import jalview.api.AlignViewportI; import jalview.datamodel.AnnotatedCollectionI; import jalview.util.ColorUtils; @@ -44,6 +45,9 @@ 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 * + * * 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 +76,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,36 +85,27 @@ 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; } @@ -153,8 +152,7 @@ public class ColourSchemeProperty */ public static String getColourName(ColourSchemeI cs) { - return cs == null ? ResidueColourScheme.NONE : cs - .getSchemeName(); + return cs == null ? ResidueColourScheme.NONE : cs.getSchemeName(); } }