Merge branch 'features/JAL-2360colourSchemeApplicability' into features/JAL-2371colle...
[jalview.git] / src / jalview / gui / PopupMenu.java
index 310266e..37cd8b3 100644 (file)
@@ -45,6 +45,7 @@ import jalview.io.FormatAdapter;
 import jalview.io.SequenceAnnotationReport;
 import jalview.schemes.AnnotationColourGradient;
 import jalview.schemes.Blosum62ColourScheme;
+import jalview.schemes.ColourSchemeI;
 import jalview.schemes.ColourSchemes;
 import jalview.schemes.PIDColourScheme;
 import jalview.schemes.ResidueColourScheme;
@@ -425,7 +426,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       groupName.setText(MessageManager
               .getString("label.edit_name_and_description_current_group"));
 
-      ColourMenuHelper.setColourSelected(colourMenu, sg.cs);
+      ColourMenuHelper.setColourSelected(colourMenu, sg.getColourScheme());
 
       if (sg.cs != null)
       {
@@ -1260,7 +1261,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        abovePIDColour_actionPerformed();
+        abovePIDColour_actionPerformed(abovePIDColour.isSelected());
       }
     });
 
@@ -1282,7 +1283,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        conservationMenuItem_actionPerformed();
+        conservationMenuItem_actionPerformed(conservationMenuItem
+                .isSelected());
       }
     });
 
@@ -1527,10 +1529,12 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
   /**
    * DOCUMENT ME!
    * 
+   * @param selected
+   * 
    * @param e
    *          DOCUMENT ME!
    */
-  protected void abovePIDColour_actionPerformed()
+  protected void abovePIDColour_actionPerformed(boolean selected)
   {
     SequenceGroup sg = getGroup();
     if (sg.cs == null)
@@ -1538,14 +1542,14 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       return;
     }
 
-    boolean selected = abovePIDColour.isSelected();
     if (selected)
     {
       sg.cs.setConsensus(AAFrequency.calculate(
               sg.getSequences(ap.av.getHiddenRepSequences()),
               sg.getStartRes(), sg.getEndRes() + 1));
 
-      int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs, getGroup()
+      int threshold = SliderPanel.setPIDSliderSource(ap,
+              sg.getGroupColourScheme(), getGroup()
               .getName());
 
       sg.cs.setThreshold(threshold, ap.av.isIgnoreGapsConsensus());
@@ -1581,7 +1585,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    * @param e
    *          DOCUMENT ME!
    */
-  protected void conservationMenuItem_actionPerformed()
+  protected void conservationMenuItem_actionPerformed(boolean selected)
   {
     SequenceGroup sg = getGroup();
     if (sg.cs == null)
@@ -1589,7 +1593,6 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       return;
     }
 
-    boolean selected = conservationMenuItem.isSelected();
     if (selected)
     {
       // JBPNote: Conservation name shouldn't be i18n translated
@@ -1599,10 +1602,10 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
 
       c.calculate();
       c.verdict(false, ap.av.getConsPercGaps());
-
       sg.cs.setConservation(c);
 
-      SliderPanel.setConservationSlider(ap, sg.cs, sg.getName());
+      SliderPanel.setConservationSlider(ap, sg.getGroupColourScheme(),
+              sg.getName());
       SliderPanel.showConservationSlider();
     }
     else
@@ -1629,7 +1632,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
             AnnotationColourGradient.NO_THRESHOLD);
 
     acg.setPredefinedColours(true);
-    sg.cs = acg;
+    sg.setColourScheme(acg);
 
     refresh();
   }
@@ -1997,6 +2000,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
   /**
    * Action on user selecting an item from the colour menu (that does not have
    * its bespoke action handler)
+   * 
+   * @return
    */
   @Override
   public void changeColour_actionPerformed(String colourSchemeName)
@@ -2014,10 +2019,11 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
       /*
        * switch to the chosen colour scheme (or null for None)
        */
-      sg.cs = ColourSchemes.getInstance().getColourScheme(colourSchemeName,
-              sg, ap.av.getHiddenRepSequences());
-      if (sg.cs instanceof Blosum62ColourScheme
-              || sg.cs instanceof PIDColourScheme)
+      ColourSchemeI colourScheme = ColourSchemes.getInstance().getColourScheme(
+              colourSchemeName, sg, ap.av.getHiddenRepSequences());
+      sg.setColourScheme(colourScheme);
+      if (colourScheme instanceof Blosum62ColourScheme
+              || colourScheme instanceof PIDColourScheme)
       {
         sg.cs.setConsensus(AAFrequency.calculate(
                 sg.getSequences(ap.av.getHiddenRepSequences()),