JAL-2360 refactoring for JalviewColourScheme enum,
[jalview.git] / src / jalview / gui / PopupMenu.java
index 838b534..0a133cf 100644 (file)
@@ -1518,22 +1518,43 @@ public class PopupMenu extends JPopupMenu
    */
   protected void buildColourMenu()
   {
+    SequenceGroup sg = getGroup();
     colourMenu.removeAll();
     colourMenu.add(textColour);
     colourMenu.add(noColourmenuItem);
     colourMenu.add(clustalColour);
+    // in Java 8, isApplicableTo can be a static method on the interface
+    clustalColour.setEnabled(new ClustalxColourScheme(sg, null)
+            .isApplicableTo(sg));
     colourMenu.add(BLOSUM62Colour);
+    BLOSUM62Colour
+            .setEnabled(new Blosum62ColourScheme().isApplicableTo(sg));
     colourMenu.add(PIDColour);
+    PIDColour.setEnabled(new PIDColourScheme().isApplicableTo(sg));
     colourMenu.add(zappoColour);
+    zappoColour.setEnabled(new ZappoColourScheme().isApplicableTo(sg));
     colourMenu.add(taylorColour);
+    taylorColour.setEnabled(new TaylorColourScheme().isApplicableTo(sg));
     colourMenu.add(hydrophobicityColour);
+    hydrophobicityColour.setEnabled(new HydrophobicColourScheme()
+            .isApplicableTo(sg));
     colourMenu.add(helixColour);
+    helixColour.setEnabled(new HelixColourScheme().isApplicableTo(sg));
     colourMenu.add(strandColour);
+    strandColour.setEnabled(new StrandColourScheme().isApplicableTo(sg));
     colourMenu.add(turnColour);
+    turnColour.setEnabled(new TurnColourScheme().isApplicableTo(sg));
     colourMenu.add(buriedColour);
+    buriedColour.setEnabled(new BuriedColourScheme().isApplicableTo(sg));
     colourMenu.add(nucleotideColour);
+    nucleotideColour.setEnabled(new NucleotideColourScheme()
+            .isApplicableTo(sg));
     colourMenu.add(purinePyrimidineColour);
+    purinePyrimidineColour.setEnabled(new PurinePyrimidineColourScheme()
+            .isApplicableTo(sg));
     colourMenu.add(tcoffeeColour);
+    tcoffeeColour
+            .setEnabled(new TCoffeeColourScheme(sg).isApplicableTo(sg));
 
     SortedMap<String, UserColourScheme> userColourSchemes = UserDefinedColours
             .getUserColourSchemes();
@@ -1556,8 +1577,8 @@ public class PopupMenu extends JPopupMenu
     colourMenu.add(userDefinedColour);
 
     colourMenu.addSeparator();
-    colourMenu.add(abovePIDColour);
     colourMenu.add(conservationMenuItem);
+    colourMenu.add(abovePIDColour);
 
     /*
      * add some of these items to a ButtonGroup so their