Merge branch 'develop' into features/JAL-2446NCList
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index 897c78c..83e8cf8 100644 (file)
@@ -39,10 +39,11 @@ import jalview.io.DataSourceType;
 import jalview.io.FileFormatI;
 import jalview.io.FileFormats;
 import jalview.io.SequenceAnnotationReport;
+import jalview.renderer.ResidueShader;
+import jalview.renderer.ResidueShaderI;
 import jalview.schemes.Blosum62ColourScheme;
 import jalview.schemes.BuriedColourScheme;
 import jalview.schemes.ClustalxColourScheme;
-import jalview.schemes.ColourSchemeI;
 import jalview.schemes.HelixColourScheme;
 import jalview.schemes.HydrophobicColourScheme;
 import jalview.schemes.JalviewColourScheme;
@@ -209,7 +210,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
   Menu menu1 = new Menu();
 
   public APopupMenu(AlignmentPanel apanel, final SequenceI seq,
-          Vector<String> links)
+          List<String> links)
   {
     // /////////////////////////////////////////////////////////
     // If this is activated from the sequence panel, the user may want to
@@ -242,6 +243,24 @@ public class APopupMenu extends java.awt.PopupMenu implements
     SequenceGroup sg = ap.av.getSelectionGroup();
     if (sg != null && sg.getSize() > 0)
     {
+      if (sg.isNucleotide())
+      {
+        conservationColour.setEnabled(false);
+        clustalColour.setEnabled(false);
+        BLOSUM62Colour.setEnabled(false);
+        zappoColour.setEnabled(false);
+        taylorColour.setEnabled(false);
+        hydrophobicityColour.setEnabled(false);
+        helixColour.setEnabled(false);
+        strandColour.setEnabled(false);
+        turnColour.setEnabled(false);
+        buriedColour.setEnabled(false);
+      }
+      else
+      {
+        purinePyrimidineColour.setEnabled(false);
+        nucleotideColour.setEnabled(false);
+      }
       editGroupName.setLabel(MessageManager.formatMessage(
               "label.name_param", new Object[] { sg.getName() }));
       showText.setState(sg.getDisplayText());
@@ -329,20 +348,21 @@ public class APopupMenu extends java.awt.PopupMenu implements
    * 
    * @param cs
    */
-  protected void setSelectedColour(ColourSchemeI cs)
+  protected void setSelectedColour(ResidueShaderI cs)
   {
-    if (cs == null)
+    if (cs == null || cs.getColourScheme() == null)
     {
       noColour.setState(true);
     }
     else
     {
+      String name = cs.getColourScheme().getSchemeName();
       for (int i = 0; i < colourMenu.getItemCount(); i++)
       {
         MenuItem item = colourMenu.getItem(i);
         if (item instanceof CheckboxMenuItem)
         {
-          if (cs.getSchemeName().equals(item.getName()))
+          if (name.equals(item.getName()))
           {
             ((CheckboxMenuItem) item).setState(true);
           }
@@ -565,7 +585,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
       BLOSUM62Colour_actionPerformed();
     }
-    else if (source == PIDColour)
+    else if (evt.getSource() == PIDColour)
     {
       PIDColour_actionPerformed();
     }
@@ -810,7 +830,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
         if (start <= end)
         {
           seqs[rsize] = sg.getSequenceAt(i);
-          features[rsize] = new SequenceFeature(null, null, null, start,
+          features[rsize] = new SequenceFeature(null, null, start,
                   end, "Jalview");
           rsize++;
         }
@@ -1145,61 +1165,63 @@ public class APopupMenu extends java.awt.PopupMenu implements
   protected void clustalColour_actionPerformed()
   {
     SequenceGroup sg = getGroup();
-    sg.cs = new ClustalxColourScheme(sg, ap.av.getHiddenRepSequences());
+    sg.cs = new ResidueShader(new ClustalxColourScheme(sg,
+            ap.av.getHiddenRepSequences()));
     refresh();
   }
 
   protected void zappoColour_actionPerformed()
   {
-    getGroup().cs = new ZappoColourScheme();
+    getGroup().cs = new ResidueShader(new ZappoColourScheme());
     refresh();
   }
 
   protected void taylorColour_actionPerformed()
   {
-    getGroup().cs = new TaylorColourScheme();
+    getGroup().cs = new ResidueShader(new TaylorColourScheme());
     refresh();
   }
 
   protected void hydrophobicityColour_actionPerformed()
   {
-    getGroup().cs = new HydrophobicColourScheme();
+    getGroup().cs = new ResidueShader(new HydrophobicColourScheme());
     refresh();
   }
 
   protected void helixColour_actionPerformed()
   {
-    getGroup().cs = new HelixColourScheme();
+    getGroup().cs = new ResidueShader(new HelixColourScheme());
     refresh();
   }
 
   protected void strandColour_actionPerformed()
   {
-    getGroup().cs = new StrandColourScheme();
+    getGroup().cs = new ResidueShader(new StrandColourScheme());
     refresh();
   }
 
   protected void turnColour_actionPerformed()
   {
-    getGroup().cs = new TurnColourScheme();
+    getGroup().cs = new ResidueShader(new TurnColourScheme());
     refresh();
   }
 
   protected void buriedColour_actionPerformed()
   {
-    getGroup().cs = new BuriedColourScheme();
+    getGroup().cs = new ResidueShader(new BuriedColourScheme());
     refresh();
   }
 
   public void nucleotideMenuItem_actionPerformed()
   {
-    getGroup().cs = new NucleotideColourScheme();
+    getGroup().cs = new ResidueShader(new NucleotideColourScheme());
     refresh();
   }
 
   public void purinePyrimidineColour_actionPerformed()
   {
-    getGroup().cs = new PurinePyrimidineColourScheme();
+    getGroup().cs = new ResidueShader(
+            new PurinePyrimidineColourScheme());
     refresh();
   }
 
@@ -1241,7 +1263,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
   protected void PIDColour_actionPerformed()
   {
     SequenceGroup sg = getGroup();
-    sg.cs = new PIDColourScheme();
+    sg.cs = new ResidueShader(new PIDColourScheme());
     sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(ap.av
             .getHiddenRepSequences()), 0, ap.av.getAlignment().getWidth()));
     refresh();
@@ -1251,7 +1273,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
   {
     SequenceGroup sg = getGroup();
 
-    sg.cs = new Blosum62ColourScheme();
+    sg.cs = new ResidueShader(new Blosum62ColourScheme());
 
     sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(ap.av
             .getHiddenRepSequences()), 0, ap.av.getAlignment().getWidth()));
@@ -1275,10 +1297,12 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
     if (conservationColour.getState())
     {
-      sg.cs.setConservation(Conservation.calculateConservation("Group", sg
+      Conservation conservation = Conservation.calculateConservation(
+              "Group", sg
               .getSequences(ap.av.getHiddenRepSequences()), 0, ap.av
               .getAlignment().getWidth(), false, ap.av.getConsPercGaps(),
-              false));
+              false);
+      sg.getGroupColourScheme().setConservation(conservation);
       SliderPanel.setConservationSlider(ap, sg.cs, sg.getName());
       SliderPanel.showConservationSlider();
     }