package jalview.schemes;
-import jalview.datamodel.AnnotatedCollectionI;
-
-import java.util.HashMap;
-import java.util.Map;
/**
* An enum with the colour schemes supported by Jalview.
*/
public enum JalviewColourScheme
{
- Clustal("Clustal")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new ClustalxColourScheme(coll, null);
- }
- },
- Blosum62("Blosum62")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new Blosum62ColourScheme();
- }
- },
- PID("% Identity")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new PIDColourScheme();
- }
- },
- Zappo("Zappo")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new ZappoColourScheme();
- }
- },
- Taylor("Taylor")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new TaylorColourScheme();
- }
- },
- Hydrophobic("Hydrophobic")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new HydrophobicColourScheme();
- }
- },
- Helix("Helix Propensity")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new HelixColourScheme();
- }
- },
- Strand("Strand Propensity")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new StrandColourScheme();
- }
- },
- Turn("Turn Propensity")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new TurnColourScheme();
- }
- },
- Buried("Buried Index")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new BuriedColourScheme();
- }
- },
- Nucleotide("Nucleotide")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new NucleotideColourScheme();
- }
- },
- PurinePyrimidine("Purine/Pyrimidine")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new PurinePyrimidineColourScheme();
- }
- },
- TCoffee("T-Coffee Scores")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new TCoffeeColourScheme(coll);
- }
- },
- RNAHelices("RNA Helices")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new RNAHelicesColour(coll);
- }
- },
- // RNAInteraction("RNA Interaction type")
- // {
- // @Override
- // public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- // {
- // return new RNAInteractionColourScheme();
- // }
- // },
- UserDefined("User Defined")
- {
- @Override
- public ColourSchemeI getColourScheme(AnnotatedCollectionI coll)
- {
- return new UserColourScheme("white");
- }
- };
-
- static Map<String, JalviewColourScheme> names = new HashMap<String, JalviewColourScheme>();
+ /*
+ * the order of declaration is the default order in which
+ * items are added to Colour menus
+ */
+ Clustal("Clustal", ClustalxColourScheme.class), Blosum62("Blosum62",
+ Blosum62ColourScheme.class), PID("% Identity",
+ PIDColourScheme.class), Zappo("Zappo", ZappoColourScheme.class),
+ Taylor("Taylor", TaylorColourScheme.class), Hydrophobic("Hydrophobic",
+ HydrophobicColourScheme.class), Helix("Helix Propensity",
+ HelixColourScheme.class), Strand("Strand Propensity",
+ StrandColourScheme.class), Turn("Turn Propensity",
+ TurnColourScheme.class), Buried("Buried Index",
+ BuriedColourScheme.class), Nucleotide("Nucleotide",
+ NucleotideColourScheme.class), PurinePyrimidine(
+ "Purine/Pyrimidine", PurinePyrimidineColourScheme.class),
+ RNAHelices("RNA Helices", RNAHelicesColour.class), TCoffee(
+ "T-Coffee Scores", TCoffeeColourScheme.class);
+ // RNAInteraction("RNA Interaction type", RNAInteractionColourScheme.class)
private String name;
- static
- {
- for (JalviewColourScheme scheme : values())
- {
- names.put(scheme.name.toLowerCase(), scheme);
- }
- }
-
- /**
- * Answers the colour scheme with the 'given name', or null if name is invalid
- * or null. The name is not case-sensitive.
- *
- * @param name
- * @return
- */
- public static JalviewColourScheme forName(String name)
- {
- return name == null ? null : names.get(name.toLowerCase());
- }
+ private Class<? extends ColourSchemeI> myClass;
/**
* Constructor given the name of the colour scheme (as used in Jalview
*
* @param s
*/
- JalviewColourScheme(String s)
+ JalviewColourScheme(String s, Class<? extends ColourSchemeI> cl)
{
name = s;
+ myClass = cl;
}
/**
- * Returns an instance of the colour scheme with which to colour the given
- * data
+ * Returns the class of the colour scheme
*
- * @param coll
* @return
*/
- public abstract ColourSchemeI getColourScheme(AnnotatedCollectionI coll);
+ public Class<? extends ColourSchemeI> getSchemeClass()
+ {
+ return myClass;
+ }
/**
* Returns the 'official' name of this colour scheme. This is the name that