X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemes.java;fp=src%2Fjalview%2Fschemes%2FColourSchemes.java;h=e2a8cb31425ababfe725c11473bc4f7314894217;hp=14daed6953f7d95f9258462f7d7a8d066b1cdd2a;hb=f680b9a507cc1643c9eead990e15026c1eca4e6e;hpb=265e81c0b3599a09c312f17188e3a892e9d96c4e diff --git a/src/jalview/schemes/ColourSchemes.java b/src/jalview/schemes/ColourSchemes.java index 14daed6..e2a8cb3 100644 --- a/src/jalview/schemes/ColourSchemes.java +++ b/src/jalview/schemes/ColourSchemes.java @@ -20,16 +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 { /* @@ -78,7 +77,7 @@ public class ColourSchemes cs.getSchemeClass().getDeclaredConstructor().newInstance()); } catch (InstantiationException | IllegalAccessException e) { - System.err.println("Error instantiating colour scheme for " + jalview.bin.Console.errPrintln("Error instantiating colour scheme for " + cs.toString() + " " + e.getMessage()); e.printStackTrace(); } catch (ReflectiveOperationException roe) @@ -98,7 +97,7 @@ public class ColourSchemes String name = cs.getSchemeName(); if (name == null) { - System.err.println("ColourScheme name may not be null"); + jalview.bin.Console.errPrintln("ColourScheme name may not be null"); return; } @@ -106,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(Locale.ROOT); + String lower = getColourSchemeShortName(cs); if (schemes.containsKey(lower)) { System.err @@ -115,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 * @@ -124,7 +136,7 @@ public class ColourSchemes { if (name != null) { - schemes.remove(name.toLowerCase(Locale.ROOT)); + schemes.remove(getColourSchemeShortName(name)); } } @@ -150,7 +162,7 @@ public class ColourSchemes { return null; } - ColourSchemeI cs = schemes.get(name.toLowerCase(Locale.ROOT)); + ColourSchemeI cs = schemes.get(getColourSchemeShortName(name)); return cs == null ? null : cs.getInstance(viewport, forData); } @@ -194,6 +206,6 @@ public class ColourSchemes { return false; } - return schemes.containsKey(name.toLowerCase(Locale.ROOT)); + return schemes.containsKey(getColourSchemeShortName(name)); } }