Merge branch 'features/JAL-2360colourSchemeApplicability' into
[jalview.git] / src / jalview / appletgui / AlignFrame.java
index 620ceb2..9876bb3 100644 (file)
@@ -65,7 +65,6 @@ import jalview.schemes.NucleotideColourScheme;
 import jalview.schemes.PIDColourScheme;
 import jalview.schemes.PurinePyrimidineColourScheme;
 import jalview.schemes.RNAHelicesColour;
-import jalview.schemes.RNAHelicesColourChooser;
 import jalview.schemes.StrandColourScheme;
 import jalview.schemes.TCoffeeColourScheme;
 import jalview.schemes.TaylorColourScheme;
@@ -2632,27 +2631,30 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   @Override
   public void changeColour(ColourSchemeI cs)
   {
-
+    // FIXME threshold, conservation, increment belong inside
+    // AlignmentColourScheme and/or ViewStyleI, not ColourSchemeI
     if (cs != null)
     {
       if (viewport.getAbovePIDThreshold())
       {
         viewport.setThreshold(SliderPanel.setPIDSliderSource(alignPanel,
-                cs, "Background"));
+                viewport.getViewportColourScheme(), "Background"));
       }
 
       if (viewport.getConservationSelected())
       {
-        cs.setConservationApplied(true);
+        // cs.setConservationApplied(true);
         viewport.setIncrement(SliderPanel.setConservationSlider(alignPanel,
-                cs, "Background"));
-      }
-      else
-      {
-        cs.setConservationApplied(false);
+                viewport.getViewportColourScheme(), "Background"));
       }
+      // else
+      // {
+      // cs.setConservationApplied(false);
+      // }
     }
     viewport.setGlobalColourScheme(cs);
+    viewport.getViewportColourScheme().setConservationApplied(
+            viewport.getConservationSelected());
 
     alignPanel.paintAlignment(true);
   }
@@ -2663,7 +2665,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
             && viewport.getGlobalColourScheme() != null)
     {
       SliderPanel.setPIDSliderSource(alignPanel,
-              viewport.getGlobalColourScheme(), "Background");
+              viewport.getViewportColourScheme(), "Background");
       SliderPanel.showPIDSlider();
     }
   }
@@ -2674,33 +2676,50 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
             && viewport.getGlobalColourScheme() != null)
     {
       SliderPanel.setConservationSlider(alignPanel,
-              viewport.getGlobalColourScheme(), "Background");
+              viewport.getViewportColourScheme(), "Background");
       SliderPanel.showConservationSlider();
     }
   }
 
   protected void conservationMenuItem_actionPerformed()
   {
-    viewport.setConservationSelected(conservationMenuItem.getState());
+    boolean selected = conservationMenuItem.getState();
+    modifyConservation.setEnabled(selected);
+    viewport.setConservationSelected(selected);
 
-    viewport.setAbovePIDThreshold(false);
-    abovePIDThreshold.setState(false);
+    // viewport.setAbovePIDThreshold(false);
+    // abovePIDThreshold.setState(false);
 
     changeColour(viewport.getGlobalColourScheme());
 
-    modifyConservation_actionPerformed();
+    if (selected)
+    {
+      modifyConservation_actionPerformed();
+    }
+    else
+    {
+      SliderPanel.hideConservationSlider();
+    }
   }
 
   public void abovePIDThreshold_actionPerformed()
   {
-    viewport.setAbovePIDThreshold(abovePIDThreshold.getState());
-
-    conservationMenuItem.setState(false);
-    viewport.setConservationSelected(false);
+    boolean selected = abovePIDThreshold.getState();
+    modifyPID.setEnabled(selected);
+    viewport.setAbovePIDThreshold(selected);
+    // conservationMenuItem.setState(false);
+    // viewport.setConservationSelected(false);
 
     changeColour(viewport.getGlobalColourScheme());
 
-    modifyPID_actionPerformed();
+    if (selected)
+    {
+      modifyPID_actionPerformed();
+    }
+    else
+    {
+      SliderPanel.hidePIDSlider();
+    }
   }
 
   public void sortPairwiseMenuItem_actionPerformed()
@@ -3528,9 +3547,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     nucleotideColour.addActionListener(this);
     modifyPID.setLabel(MessageManager
             .getString("label.modify_identity_threshold"));
+    modifyPID.setEnabled(abovePIDThreshold.getState());
     modifyPID.addActionListener(this);
     modifyConservation.setLabel(MessageManager
             .getString("label.modify_conservation_threshold"));
+    modifyConservation.setEnabled(conservationMenuItem.getState());
     modifyConservation.addActionListener(this);
     annotationColour.setLabel(MessageManager
             .getString("action.by_annotation"));