patch to fix occasional arrayoutofbounds exception when working with hidden columns...
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index 9b21f60..2bacd70 100755 (executable)
@@ -79,6 +79,8 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
   CheckboxMenuItem showColourText = new CheckboxMenuItem();
 
+  CheckboxMenuItem displayNonconserved = new CheckboxMenuItem();
+
   Menu editMenu = new Menu("Edit");
 
   MenuItem copy = new MenuItem("Copy (Jalview Only)");
@@ -150,6 +152,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
       showText.setState(sg.getDisplayText());
       showColourText.setState(sg.getColourText());
       showBoxes.setState(sg.getDisplayBoxes());
+      displayNonconserved.setState(sg.getShowunconserved());
       if (!ap.av.alignment.getGroups().contains(sg))
       {
         groupMenu.remove(unGroupMenuItem);
@@ -352,6 +355,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
       showBoxes_itemStateChanged();
     }
+    else if (evt.getSource() == displayNonconserved)
+    {
+      this.showNonconserved_itemStateChanged();
+    }
   }
 
   public void actionPerformed(ActionEvent evt)
@@ -677,7 +684,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
     showBoxes.setState(true);
     showBoxes.addItemListener(this);
     sequenceName.addActionListener(this);
-
+    displayNonconserved.setLabel("Show Nonconserved");
+    displayNonconserved.setState(false);
+    displayNonconserved.addItemListener(this);
     showText.setLabel("Text");
     showText.addItemListener(this);
     showColourText.setLabel("Colour Text");
@@ -766,6 +775,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     menu1.add(showBoxes);
     menu1.add(showText);
     menu1.add(showColourText);
+    menu1.add(displayNonconserved);
     toggleCase.addActionListener(this);
     pdb.addActionListener(this);
     hideSeqs.addActionListener(this);
@@ -966,6 +976,12 @@ public class APopupMenu extends java.awt.PopupMenu implements
     refresh();
   }
 
+  public void showNonconserved_itemStateChanged()
+  {
+    getGroup().setShowunconserved(this.displayNonconserved.getState());
+    refresh();
+  }
+
   public void showBoxes_itemStateChanged()
   {
     getGroup().setDisplayBoxes(showBoxes.getState());