X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemes.java;h=c3d0ea0ba4aa2a8b827271210122eab4193f3a96;hb=4cb58ab40ed4521e8ac732665098a6c57ad43896;hp=33ec966d60d2ccf7ab18084eb39aba31bd3d54f3;hpb=92bd4313e2f23a65df1eb965e836d178c1eacdd1;p=jalview.git diff --git a/src/jalview/schemes/ColourSchemes.java b/src/jalview/schemes/ColourSchemes.java index 33ec966..c3d0ea0 100644 --- a/src/jalview/schemes/ColourSchemes.java +++ b/src/jalview/schemes/ColourSchemes.java @@ -1,5 +1,26 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.schemes; +import jalview.api.AlignViewportI; import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceI; @@ -15,7 +36,7 @@ public class ColourSchemes private static ColourSchemes instance = new ColourSchemes(); /* - * a map from scheme name to an instance of it + * a map from scheme name (lower-cased) to an instance of it */ private Map schemes; @@ -45,7 +66,7 @@ public class ColourSchemes * store in an order-preserving map, so items can be added to menus * in the order in which they are 'discovered' */ - schemes = new LinkedHashMap(); + schemes = new LinkedHashMap<>(); for (JalviewColourScheme cs : JalviewColourScheme.values()) { @@ -56,6 +77,7 @@ public class ColourSchemes { System.err.println("Error instantiating colour scheme for " + cs.toString() + " " + e.getMessage()); + e.printStackTrace(); } } } @@ -94,15 +116,19 @@ public class ColourSchemes */ public void removeColourScheme(String name) { - schemes.remove(name); + if (name != null) + { + schemes.remove(name.toLowerCase()); + } } - + /** * Returns an instance of the colour scheme with which the given view may be * coloured * * @param name * name of the colour scheme + * @param viewport * @param forData * the data to be coloured * @param optional @@ -111,7 +137,7 @@ public class ColourSchemes * @return */ public ColourSchemeI getColourScheme(String name, - AnnotatedCollectionI forData, + AlignViewportI viewport, AnnotatedCollectionI forData, Map hiddenRepSequences) { if (name == null) @@ -119,7 +145,8 @@ public class ColourSchemes return null; } ColourSchemeI cs = schemes.get(name.toLowerCase()); - return cs == null ? null : cs.getInstance(forData, hiddenRepSequences); + return cs == null ? null + : cs.getInstance(viewport, forData, hiddenRepSequences); } /** @@ -135,7 +162,7 @@ public class ColourSchemes public ColourSchemeI getColourScheme(String name, AnnotatedCollectionI forData) { - return getColourScheme(name, forData, null); + return getColourScheme(name, null, forData, null); } /** @@ -148,4 +175,20 @@ public class ColourSchemes { return schemes.values(); } + + /** + * Answers true if there is a scheme with the given name, else false. The test + * is not case-sensitive. + * + * @param name + * @return + */ + public boolean nameExists(String name) + { + if (name == null) + { + return false; + } + return schemes.containsKey(name.toLowerCase()); + } }