JAL-1264 first cut of panel for annotation show/hide options
[jalview.git] / src / jalview / gui / PopupMenu.java
index e84a799..4ff525e 100644 (file)
@@ -25,8 +25,6 @@ import jalview.analysis.Conservation;
 import jalview.commands.ChangeCaseCommand;
 import jalview.commands.EditCommand;
 import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.AlignmentView;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.PDBEntry;
@@ -60,7 +58,6 @@ import java.awt.Color;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Hashtable;
-import java.util.List;
 import java.util.Vector;
 
 import javax.swing.ButtonGroup;
@@ -129,6 +126,8 @@ public class PopupMenu extends JPopupMenu
 
   JMenuItem sequenceSelDetails = new JMenuItem();
 
+  JMenuItem chooseAnnotations = new JMenuItem();
+
   SequenceI sequence;
 
   JMenuItem createGroupMenuItem = new JMenuItem();
@@ -251,6 +250,7 @@ public class PopupMenu extends JPopupMenu
 
       item.addActionListener(new java.awt.event.ActionListener()
       {
+        @Override
         public void actionPerformed(ActionEvent e)
         {
           outputText_actionPerformed(e);
@@ -287,6 +287,7 @@ public class PopupMenu extends JPopupMenu
           menuItem.setText(pdb.getId());
           menuItem.addActionListener(new java.awt.event.ActionListener()
           {
+            @Override
             public void actionPerformed(ActionEvent e)
             {
               // TODO re JAL-860: optionally open dialog or provide a menu entry
@@ -337,6 +338,7 @@ public class PopupMenu extends JPopupMenu
             menuItem.addActionListener(new java.awt.event.ActionListener()
 
             {
+              @Override
               public void actionPerformed(ActionEvent e)
               {
                 // System.out.println("1:"+structureLine);
@@ -377,6 +379,7 @@ public class PopupMenu extends JPopupMenu
                       { seq.getName() }));
               menuItem.addActionListener(new java.awt.event.ActionListener()
               {
+                @Override
                 public void actionPerformed(ActionEvent e)
                 {
                   // TODO: VARNA does'nt print gaps in the sequence
@@ -397,6 +400,7 @@ public class PopupMenu extends JPopupMenu
               MessageManager.getString("action.hide_sequences"));
       menuItem.addActionListener(new java.awt.event.ActionListener()
       {
+        @Override
         public void actionPerformed(ActionEvent e)
         {
           hideSequences(false);
@@ -412,6 +416,7 @@ public class PopupMenu extends JPopupMenu
                 { seq.getName() }));
         menuItem.addActionListener(new java.awt.event.ActionListener()
         {
+          @Override
           public void actionPerformed(ActionEvent e)
           {
             hideSequences(true);
@@ -431,6 +436,7 @@ public class PopupMenu extends JPopupMenu
                   MessageManager.getString("action.reveal_sequences"));
           menuItem.addActionListener(new ActionListener()
           {
+            @Override
             public void actionPerformed(ActionEvent e)
             {
               ap.av.showSequence(index);
@@ -452,6 +458,7 @@ public class PopupMenu extends JPopupMenu
                 MessageManager.getString("action.reveal_all"));
         menuItem.addActionListener(new ActionListener()
         {
+          @Override
           public void actionPerformed(ActionEvent e)
           {
             ap.av.showAllHiddenSeqs();
@@ -555,7 +562,7 @@ public class PopupMenu extends JPopupMenu
       SequenceI sqass = null;
       for (SequenceI sq : ap.av.getSequenceSelection())
       {
-        Vector<PDBEntry> pes = (Vector<PDBEntry>) sq.getDatasetSequence()
+        Vector<PDBEntry> pes = sq.getDatasetSequence()
                 .getPDBId();
         if (pes != null && pes.size() > 0)
         {
@@ -942,11 +949,13 @@ public class PopupMenu extends JPopupMenu
             { url }));
     item.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         new Thread(new Runnable()
         {
 
+          @Override
           public void run()
           {
             showLink(url);
@@ -982,11 +991,13 @@ public class PopupMenu extends JPopupMenu
     // TODO: put in info about what is being sent.
     item.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         new Thread(new Runnable()
         {
 
+          @Override
           public void run()
           {
             try
@@ -1017,6 +1028,7 @@ public class PopupMenu extends JPopupMenu
     groupName.setText(MessageManager.getString("label.name"));
     groupName.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         groupName_actionPerformed();
@@ -1027,15 +1039,28 @@ public class PopupMenu extends JPopupMenu
             .getString("label.edit_name_description"));
     sequenceName.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         sequenceName_actionPerformed();
       }
     });
+    chooseAnnotations.setText(MessageManager
+            .getString("label.choose_annotations") + "...");
+    chooseAnnotations
+            .addActionListener(new java.awt.event.ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        chooseAnnotations_actionPerformed(e);
+      }
+    });
     sequenceDetails.setText(MessageManager
             .getString("label.sequence_details") + "...");
     sequenceDetails.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         sequenceDetails_actionPerformed();
@@ -1046,6 +1071,7 @@ public class PopupMenu extends JPopupMenu
     sequenceSelDetails
             .addActionListener(new java.awt.event.ActionListener()
             {
+              @Override
               public void actionPerformed(ActionEvent e)
               {
                 sequenceSelectionDetails_actionPerformed();
@@ -1056,6 +1082,7 @@ public class PopupMenu extends JPopupMenu
             .setText(MessageManager.getString("action.remove_group"));
     unGroupMenuItem.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         unGroupMenuItem_actionPerformed();
@@ -1066,6 +1093,7 @@ public class PopupMenu extends JPopupMenu
     createGroupMenuItem
             .addActionListener(new java.awt.event.ActionListener()
             {
+              @Override
               public void actionPerformed(ActionEvent e)
               {
                 createGroupMenuItem_actionPerformed();
@@ -1075,6 +1103,7 @@ public class PopupMenu extends JPopupMenu
     outline.setText(MessageManager.getString("action.border_colour"));
     outline.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         outline_actionPerformed();
@@ -1084,6 +1113,7 @@ public class PopupMenu extends JPopupMenu
             .setText(MessageManager.getString("label.nucleotide"));
     nucleotideMenuItem.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         nucleotideMenuItem_actionPerformed();
@@ -1094,6 +1124,7 @@ public class PopupMenu extends JPopupMenu
     showBoxes.setState(true);
     showBoxes.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         showBoxes_actionPerformed();
@@ -1103,6 +1134,7 @@ public class PopupMenu extends JPopupMenu
     showText.setState(true);
     showText.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         showText_actionPerformed();
@@ -1111,6 +1143,7 @@ public class PopupMenu extends JPopupMenu
     showColourText.setText(MessageManager.getString("label.colour_text"));
     showColourText.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         showColourText_actionPerformed();
@@ -1121,6 +1154,7 @@ public class PopupMenu extends JPopupMenu
     displayNonconserved.setState(true);
     displayNonconserved.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         showNonconserved_actionPerformed();
@@ -1130,6 +1164,7 @@ public class PopupMenu extends JPopupMenu
     cut.setText(MessageManager.getString("action.cut"));
     cut.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         cut_actionPerformed();
@@ -1138,6 +1173,7 @@ public class PopupMenu extends JPopupMenu
     upperCase.setText(MessageManager.getString("label.to_upper_case"));
     upperCase.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         changeCase(e);
@@ -1146,6 +1182,7 @@ public class PopupMenu extends JPopupMenu
     copy.setText(MessageManager.getString("action.copy"));
     copy.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         copy_actionPerformed();
@@ -1154,6 +1191,7 @@ public class PopupMenu extends JPopupMenu
     lowerCase.setText(MessageManager.getString("label.to_lower_case"));
     lowerCase.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         changeCase(e);
@@ -1162,6 +1200,7 @@ public class PopupMenu extends JPopupMenu
     toggle.setText(MessageManager.getString("label.toggle_case"));
     toggle.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         changeCase(e);
@@ -1172,6 +1211,7 @@ public class PopupMenu extends JPopupMenu
     pdbFromFile.setText(MessageManager.getString("label.from_file"));
     pdbFromFile.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         pdbFromFile_actionPerformed();
@@ -1206,6 +1246,7 @@ public class PopupMenu extends JPopupMenu
     enterPDB.setText(MessageManager.getString("label.enter_pdb_id"));
     enterPDB.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         enterPDB_actionPerformed();
@@ -1214,6 +1255,7 @@ public class PopupMenu extends JPopupMenu
     discoverPDB.setText(MessageManager.getString("label.discover_pdb_ids"));
     discoverPDB.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         discoverPDB_actionPerformed();
@@ -1225,6 +1267,7 @@ public class PopupMenu extends JPopupMenu
             .getString("label.create_sequence_feature"));
     sequenceFeature.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         sequenceFeature_actionPerformed();
@@ -1233,6 +1276,7 @@ public class PopupMenu extends JPopupMenu
     textColour.setText(MessageManager.getString("label.text_colour"));
     textColour.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         textColour_actionPerformed();
@@ -1247,6 +1291,7 @@ public class PopupMenu extends JPopupMenu
             + "...");
     editSequence.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent actionEvent)
       {
         editSequence_actionPerformed(actionEvent);
@@ -1263,6 +1308,7 @@ public class PopupMenu extends JPopupMenu
     add(groupMenu);
     add(sequenceMenu);
     this.add(structureMenu);
+    groupMenu.add(chooseAnnotations);
     groupMenu.add(editMenu);
     groupMenu.add(outputMenu);
     groupMenu.add(sequenceFeature);
@@ -1303,6 +1349,7 @@ public class PopupMenu extends JPopupMenu
         JMenuItem item = new JMenuItem(userColours.nextElement().toString());
         item.addActionListener(new ActionListener()
         {
+          @Override
           public void actionPerformed(ActionEvent evt)
           {
             userDefinedColour_actionPerformed(evt);
@@ -1342,6 +1389,7 @@ public class PopupMenu extends JPopupMenu
     noColourmenuItem.setText(MessageManager.getString("label.none"));
     noColourmenuItem.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         noColourmenuItem_actionPerformed();
@@ -1352,6 +1400,7 @@ public class PopupMenu extends JPopupMenu
             .getString("label.clustalx_colours"));
     clustalColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         clustalColour_actionPerformed();
@@ -1360,6 +1409,7 @@ public class PopupMenu extends JPopupMenu
     zappoColour.setText(MessageManager.getString("label.zappo"));
     zappoColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         zappoColour_actionPerformed();
@@ -1368,6 +1418,7 @@ public class PopupMenu extends JPopupMenu
     taylorColour.setText(MessageManager.getString("label.taylor"));
     taylorColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         taylorColour_actionPerformed();
@@ -1378,6 +1429,7 @@ public class PopupMenu extends JPopupMenu
     hydrophobicityColour
             .addActionListener(new java.awt.event.ActionListener()
             {
+              @Override
               public void actionPerformed(ActionEvent e)
               {
                 hydrophobicityColour_actionPerformed();
@@ -1386,6 +1438,7 @@ public class PopupMenu extends JPopupMenu
     helixColour.setText(MessageManager.getString("label.helix_propensity"));
     helixColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         helixColour_actionPerformed();
@@ -1395,6 +1448,7 @@ public class PopupMenu extends JPopupMenu
             .getString("label.strand_propensity"));
     strandColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         strandColour_actionPerformed();
@@ -1403,6 +1457,7 @@ public class PopupMenu extends JPopupMenu
     turnColour.setText(MessageManager.getString("label.turn_propensity"));
     turnColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         turnColour_actionPerformed();
@@ -1411,6 +1466,7 @@ public class PopupMenu extends JPopupMenu
     buriedColour.setText(MessageManager.getString("label.buried_index"));
     buriedColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         buriedColour_actionPerformed();
@@ -1420,6 +1476,7 @@ public class PopupMenu extends JPopupMenu
             .getString("label.above_identity_percentage"));
     abovePIDColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         abovePIDColour_actionPerformed();
@@ -1429,6 +1486,7 @@ public class PopupMenu extends JPopupMenu
             .getString("action.user_defined"));
     userDefinedColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         userDefinedColour_actionPerformed(e);
@@ -1438,6 +1496,7 @@ public class PopupMenu extends JPopupMenu
             .setText(MessageManager.getString("label.percentage_identity"));
     PIDColour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         PIDColour_actionPerformed();
@@ -1446,6 +1505,7 @@ public class PopupMenu extends JPopupMenu
     BLOSUM62Colour.setText(MessageManager.getString("label.blosum62"));
     BLOSUM62Colour.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         BLOSUM62Colour_actionPerformed();
@@ -1456,6 +1516,7 @@ public class PopupMenu extends JPopupMenu
     purinePyrimidineColour
             .addActionListener(new java.awt.event.ActionListener()
             {
+              @Override
               public void actionPerformed(ActionEvent e)
               {
                 purinePyrimidineColour_actionPerformed();
@@ -1473,6 +1534,7 @@ public class PopupMenu extends JPopupMenu
     conservationMenuItem
             .addActionListener(new java.awt.event.ActionListener()
             {
+              @Override
               public void actionPerformed(ActionEvent e)
               {
                 conservationMenuItem_actionPerformed();
@@ -1721,6 +1783,17 @@ public class PopupMenu extends JPopupMenu
   }
 
   /**
+   * Open a panel where the user can choose which types of sequence annotation
+   * to show or hide.
+   * 
+   * @param e
+   */
+  protected void chooseAnnotations_actionPerformed(ActionEvent e)
+  {
+    // todo correct way to guard against opening a duplicate panel?
+    new AnnotationChooser(ap);
+  }
+  /**
    * DOCUMENT ME!
    * 
    * @param e
@@ -2109,20 +2182,7 @@ public class PopupMenu extends JPopupMenu
     // or we simply trust the user wants
     // wysiwig behaviour
 
-    AlignmentView selvew = ap.av.getAlignmentView(true, false);
-    AlignmentI aselview = selvew.getVisibleAlignment(ap.av
-            .getGapCharacter());
-    List<AlignmentAnnotation> ala = (ap.av
-            .getVisibleAlignmentAnnotation(true));
-    if (ala != null)
-    {
-      for (AlignmentAnnotation aa : ala)
-      {
-        aselview.addAnnotation(aa);
-      }
-    }
-    cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),
-            aselview, null, null, null));
+    cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(), ap.av, true));
   }
 
   public void pdbFromFile_actionPerformed()
@@ -2184,6 +2244,7 @@ public class PopupMenu extends JPopupMenu
             : ap.av.getSequenceSelection());
     Thread discpdb = new Thread(new Runnable()
     {
+      @Override
       public void run()
       {
 
@@ -2268,7 +2329,7 @@ public class PopupMenu extends JPopupMenu
     if (sg != null)
     {
       if (sequence == null)
-        sequence = (Sequence) sg.getSequenceAt(0);
+        sequence = sg.getSequenceAt(0);
 
       EditNameDialog dialog = new EditNameDialog(
               sequence.getSequenceAsString(sg.getStartRes(),