X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemes.java;h=698769c9a95d7a7007eba5792526f118b9a1c15d;hb=6d2243ff184e3c1664de42c217bc6ee8b41c9ac5;hp=d31fbba4c752c19aaffd3be8c6def41e13b3c1ac;hpb=f3fa435d421eb9f071a526f802801c4a21ee2dc4;p=jalview.git diff --git a/src/jalview/schemes/ColourSchemes.java b/src/jalview/schemes/ColourSchemes.java index d31fbba..698769c 100644 --- a/src/jalview/schemes/ColourSchemes.java +++ b/src/jalview/schemes/ColourSchemes.java @@ -20,14 +20,15 @@ */ package jalview.schemes; +import java.util.LinkedHashMap; +import java.util.Locale; +import java.util.Map; + import jalview.api.AlignViewportI; import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceI; -import java.util.LinkedHashMap; -import java.util.Map; - public class ColourSchemes { /* @@ -104,7 +105,7 @@ public class ColourSchemes * name is lower-case for non-case-sensitive lookup * (name in the colour keeps its true case) */ - String lower = name.toLowerCase(); + String lower = getColourSchemeShortName(cs); if (schemes.containsKey(lower)) { System.err @@ -113,6 +114,19 @@ public class ColourSchemes schemes.put(lower, cs); } + private String getColourSchemeShortName(ColourSchemeI cs) + { + return getColourSchemeShortName(cs.getSchemeName()); + } + + private String getColourSchemeShortName(String name) + { + if (name == null) + return null; + return name.toLowerCase(Locale.ROOT).replaceAll("%", "pc") + .replaceAll("[^a-z0-9]", "-").replaceAll("--+", "-"); + } + /** * Removes a colour scheme by name * @@ -122,7 +136,7 @@ public class ColourSchemes { if (name != null) { - schemes.remove(name.toLowerCase()); + schemes.remove(getColourSchemeShortName(name)); } } @@ -140,17 +154,16 @@ public class ColourSchemes * represent * @return */ - public ColourSchemeI getColourScheme(String name, - AlignViewportI viewport, AnnotatedCollectionI forData, + public ColourSchemeI getColourScheme(String name, AlignViewportI viewport, + AnnotatedCollectionI forData, Map hiddenRepSequences) { if (name == null) { return null; } - ColourSchemeI cs = schemes.get(name.toLowerCase()); - return cs == null ? null - : cs.getInstance(viewport, forData); + ColourSchemeI cs = schemes.get(getColourSchemeShortName(name)); + return cs == null ? null : cs.getInstance(viewport, forData); } /** @@ -193,6 +206,6 @@ public class ColourSchemes { return false; } - return schemes.containsKey(name.toLowerCase()); + return schemes.containsKey(getColourSchemeShortName(name)); } }