JAL-2371 CollectionColourScheme wraps ColourSchemeI
[jalview.git] / src / jalview / gui / PopupMenu.java
index c660ab5..50da272 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;
@@ -421,7 +422,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 && sg.cs.conservationApplied())
       {
@@ -987,15 +988,14 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
     });
     createGroupMenuItem.setText(MessageManager
             .getString("action.create_group"));
-    createGroupMenuItem
-.addActionListener(new ActionListener()
-            {
-              @Override
-              public void actionPerformed(ActionEvent e)
-              {
-                createGroupMenuItem_actionPerformed();
-              }
-            });
+    createGroupMenuItem.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        createGroupMenuItem_actionPerformed();
+      }
+    });
 
     outline.setText(MessageManager.getString("action.border_colour"));
     outline.addActionListener(new ActionListener()
@@ -1270,7 +1270,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
    */
   protected void buildColourMenu()
   {
-    SequenceGroup sg = getGroup();
+    SequenceGroup sg = ap.av.getSelectionGroup();
     if (sg == null)
     {
       /*
@@ -1484,7 +1484,8 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
               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());
@@ -1535,10 +1536,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
@@ -1563,7 +1564,7 @@ public class PopupMenu extends JPopupMenu implements ColourChangeListener
             AnnotationColourGradient.NO_THRESHOLD);
 
     acg.setPredefinedColours(true);
-    sg.cs = acg;
+    sg.setColourScheme(acg);
 
     refresh();
   }
@@ -1948,10 +1949,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()),