JAL-2360 refactoring for JalviewColourScheme enum,
[jalview.git] / src / jalview / gui / AlignFrame.java
index 03e4534..9aed70d 100644 (file)
@@ -87,7 +87,9 @@ import jalview.schemes.HydrophobicColourScheme;
 import jalview.schemes.NucleotideColourScheme;
 import jalview.schemes.PIDColourScheme;
 import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.RNAHelicesColour;
 import jalview.schemes.RNAHelicesColourChooser;
+import jalview.schemes.ResidueColourScheme;
 import jalview.schemes.ResidueProperties;
 import jalview.schemes.StrandColourScheme;
 import jalview.schemes.TCoffeeColourScheme;
@@ -854,6 +856,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     conservationMenuItem.setEnabled(!nucleotide);
     modifyConservation.setEnabled(!nucleotide);
     showGroupConservation.setEnabled(!nucleotide);
+
+    /*
+     * enable / disable colour schemes
+     * - the old, simple way (based on the nucleotide flag), or
+     * - the new, generic way (interrogate the colour scheme)
+     */
+    AlignmentI al = getViewport().getAlignment();
     clustalColour.setEnabled(!nucleotide);
     zappoColour.setEnabled(!nucleotide);
     taylorColour.setEnabled(!nucleotide);
@@ -861,17 +870,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     helixColour.setEnabled(!nucleotide);
     strandColour.setEnabled(!nucleotide);
     turnColour.setEnabled(!nucleotide);
-    buriedColour.setEnabled(!nucleotide);
+    // buriedColour.setEnabled(!nucleotide);
+    // TODO make isApplicableTo static in ColourSchemeI in Java 8
+    buriedColour.setEnabled(new BuriedColourScheme().isApplicableTo(al));
     rnahelicesColour.setEnabled(nucleotide);
     nucleotideColour.setEnabled(nucleotide);
-    purinePyrimidineColour.setEnabled(nucleotide);
+    // purinePyrimidineColour.setEnabled(nucleotide);
+    purinePyrimidineColour.setEnabled(new PurinePyrimidineColourScheme()
+            .isApplicableTo(al));
+    tcoffeeColour
+            .setEnabled(new TCoffeeColourScheme(al).isApplicableTo(al));
     RNAInteractionColour.setEnabled(nucleotide);
     showComplementMenuItem.setText(nucleotide ? MessageManager
             .getString("label.protein") : MessageManager
             .getString("label.nucleotide"));
+
     String selectedColourScheme = Cache.getDefault(
             nucleotide ? Preferences.DEFAULT_COLOUR_NUC
-                    : Preferences.DEFAULT_COLOUR_PROT, "None");
+                    : Preferences.DEFAULT_COLOUR_PROT,
+            ResidueColourScheme.NONE);
     setColourSelected(selectedColourScheme);
   }
 
@@ -935,7 +952,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     autoCalculate.setSelected(av.autoCalculateConsensus);
     sortByTree.setSelected(av.sortByTree);
     listenToViewSelections.setSelected(av.followSelection);
-    rnahelicesColour.setEnabled(av.getAlignment().hasRNAStructure());
+    // rnahelicesColour.setEnabled(av.getAlignment().hasRNAStructure());
+    rnahelicesColour.setEnabled(new RNAHelicesColour(av.getAlignment())
+            .isApplicableTo(av.getAlignment()));
     rnahelicesColour
             .setSelected(av.getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);