JAL-2629 multiple HMMs can now be dropped onto an alignment
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index a320a9c..0dc82cc 100755 (executable)
@@ -40,6 +40,7 @@ import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -65,10 +66,18 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenuItem closeMenuItem = new JMenuItem();
 
-  protected JMenu colourMenu = new JMenu();
-
   protected JMenu webService = new JMenu();
 
+  protected JMenu hmmerMenu = new JMenu();
+
+  protected JCheckBoxMenuItem autoAlignSeqs = new JCheckBoxMenuItem();
+
+  protected JMenuItem hmmAlign = new JMenuItem();
+
+  protected JMenuItem hmmSearch = new JMenuItem();
+
+  protected JMenuItem hmmBuild = new JCheckBoxMenuItem();
+
   protected JMenuItem webServiceNoServices;
 
   protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
@@ -81,8 +90,6 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenu outputTextboxMenu = new JMenu();
 
-  protected JRadioButtonMenuItem textColour;
-
   protected JCheckBoxMenuItem annotationPanelMenuItem = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem colourTextMenuItem = new JCheckBoxMenuItem();
@@ -93,14 +100,10 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenuItem redoMenuItem = new JMenuItem();
 
-  protected JCheckBoxMenuItem conservationMenuItem;
-
   protected JCheckBoxMenuItem wrapMenuItem = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem renderGapsMenuItem = new JCheckBoxMenuItem();
 
-  protected JCheckBoxMenuItem abovePIDThreshold;
-
   public JCheckBoxMenuItem showSeqFeatures = new JCheckBoxMenuItem();
 
   JMenuItem copy = new JMenuItem();
@@ -109,8 +112,6 @@ public class GAlignFrame extends JInternalFrame
 
   JMenu pasteMenu = new JMenu();
 
-  protected JCheckBoxMenuItem applyToAllGroups;
-
   protected JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem scaleAbove = new JCheckBoxMenuItem();
@@ -119,17 +120,27 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem scaleRight = new JCheckBoxMenuItem();
 
-  protected JMenuItem modifyPID;
+  protected JCheckBoxMenuItem applyToAllGroups;
+
+  protected JMenu colourMenu = new JMenu();
+
+  protected JMenuItem textColour;
+
+  protected JCheckBoxMenuItem conservationMenuItem;
 
   protected JMenuItem modifyConservation;
 
+  protected JCheckBoxMenuItem abovePIDThreshold;
+
+  protected JMenuItem modifyPID;
+
   protected JMenuItem annotationColour;
 
   protected JMenu sortByTreeMenu = new JMenu();
 
   protected JMenu sort = new JMenu();
 
-  protected JMenu calculateTree = new JMenu();
+  protected JMenuItem calculateTree = new JMenuItem();
 
   protected JCheckBoxMenuItem padGapsMenuitem = new JCheckBoxMenuItem();
 
@@ -193,13 +204,19 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
 
+  protected JCheckBoxMenuItem showInformationHistogram = new JCheckBoxMenuItem();
+
+  protected JCheckBoxMenuItem showHMMSequenceLogo = new JCheckBoxMenuItem();
+
+  protected JCheckBoxMenuItem normaliseHMMSequenceLogo = new JCheckBoxMenuItem();
+
   protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
 
   private SequenceAnnotationOrder annotationSortOrder;
 
   private boolean showAutoCalculatedAbove = false;
 
-  private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
+  private Map<KeyStroke, JMenuItem> accelerators = new HashMap<>();
 
   private SplitContainerI splitFrame;
 
@@ -247,6 +264,7 @@ public class GAlignFrame extends JInternalFrame
   private void jbInit() throws Exception
   {
     initColourMenu();
+    initHMMERMenu();
 
     JMenuItem saveAs = new JMenuItem(
             MessageManager.getString("action.save_as"));
@@ -287,6 +305,7 @@ public class GAlignFrame extends JInternalFrame
     JMenu calculateMenu = new JMenu(
             MessageManager.getString("action.calculate"));
     webService.setText(MessageManager.getString("action.web_service"));
+    hmmerMenu.setText(MessageManager.getString("action.hmmer"));
     JMenuItem selectAllSequenceMenuItem = new JMenuItem(
             MessageManager.getString("action.select_all"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A, Toolkit
@@ -523,36 +542,6 @@ public class GAlignFrame extends JInternalFrame
         pairwiseAlignmentMenuItem_actionPerformed(e);
       }
     });
-    JMenuItem PCAMenuItem = new JMenuItem(
-            MessageManager.getString("label.principal_component_analysis"));
-    PCAMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        PCAMenuItem_actionPerformed(e);
-      }
-    });
-    JMenuItem averageDistanceTreeMenuItem = new JMenuItem(
-            MessageManager.getString("label.average_distance_identity"));
-    averageDistanceTreeMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        averageDistanceTreeMenuItem_actionPerformed(e);
-      }
-    });
-    JMenuItem neighbourTreeMenuItem = new JMenuItem(
-            MessageManager.getString("label.neighbour_joining_identity"));
-    neighbourTreeMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        neighbourTreeMenuItem_actionPerformed(e);
-      }
-    });
 
     this.getContentPane().setLayout(new BorderLayout());
     alignFrameMenuBar.setFont(new java.awt.Font("Verdana", 0, 11));
@@ -563,27 +552,6 @@ public class GAlignFrame extends JInternalFrame
     outputTextboxMenu.setText(MessageManager
             .getString("label.out_to_textbox"));
 
-
-    JMenuItem avDistanceTreeBlosumMenuItem = new JMenuItem(
-            MessageManager.getString("label.average_distance_blosum62"));
-    avDistanceTreeBlosumMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        avTreeBlosumMenuItem_actionPerformed(e);
-      }
-    });
-    JMenuItem njTreeBlosumMenuItem = new JMenuItem(
-            MessageManager.getString("label.neighbour_blosum62"));
-    njTreeBlosumMenuItem.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        njTreeBlosumMenuItem_actionPerformed(e);
-      }
-    });
     annotationPanelMenuItem.setActionCommand("");
     annotationPanelMenuItem.setText(MessageManager
             .getString("label.show_annotations"));
@@ -975,7 +943,7 @@ public class GAlignFrame extends JInternalFrame
     });
 
     JMenuItem createGroup = new JMenuItem(
-            MessageManager.getString("action.create_groups"));
+            MessageManager.getString("action.create_group"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G, Toolkit
             .getDefaultToolkit().getMenuShortcutKeyMask(), false);
     al = new ActionListener()
@@ -1052,7 +1020,14 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        pasteNew_actionPerformed(e);
+        try
+        {
+          pasteNew_actionPerformed(e);
+        } catch (IOException | InterruptedException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        }
       }
     };
     addMenuActionAndAccelerator(keyStroke, pasteNew, al);
@@ -1066,7 +1041,14 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        pasteThis_actionPerformed(e);
+        try
+        {
+          pasteThis_actionPerformed(e);
+        } catch (IOException | InterruptedException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        }
       }
     };
     addMenuActionAndAccelerator(keyStroke, pasteThis, al);
@@ -1203,7 +1185,7 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void menuSelected(MenuEvent e)
       {
-        buildTreeMenu();
+        buildTreeSortMenu();
       }
 
       @Override
@@ -1240,8 +1222,8 @@ public class GAlignFrame extends JInternalFrame
     });
     sortByAnnotScore.setVisible(false);
 
-    calculateTree
-            .setText(MessageManager.getString("action.calculate_tree"));
+    calculateTree.setText(MessageManager
+            .getString("action.calculate_tree_pca"));
 
     padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
     padGapsMenuitem.setState(jalview.bin.Cache
@@ -1351,7 +1333,14 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        associatedData_actionPerformed(e);
+        try
+        {
+          associatedData_actionPerformed(e);
+        } catch (IOException | InterruptedException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        }
       }
     });
     autoCalculate.setText(MessageManager
@@ -1653,6 +1642,7 @@ public class GAlignFrame extends JInternalFrame
 
     formatMenu.setText(MessageManager.getString("action.format"));
     JMenu selectMenu = new JMenu(MessageManager.getString("action.select"));
+
     idRightAlign.setText(MessageManager
             .getString("label.right_align_sequence_id"));
     idRightAlign.addActionListener(new ActionListener()
@@ -1722,6 +1712,50 @@ public class GAlignFrame extends JInternalFrame
         selectHighlightedColumns_actionPerformed(actionEvent);
       }
     };
+    hmmBuild.setText(MessageManager.getString("label.hmmbuild"));
+    hmmBuild.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        try
+        {
+          hmmBuild_actionPerformed(e);
+        } catch (IOException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        } catch (InterruptedException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        }
+      }
+
+    });
+    hmmAlign.setText(MessageManager.getString("label.hmmalign"));
+    hmmAlign.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        try
+        {
+          hmmAlign_actionPerformed(e);
+        } catch (IOException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        } catch (InterruptedException e1)
+        {
+          // TODO Auto-generated catch block
+          e1.printStackTrace();
+        }
+      }
+
+    });
     selectHighlighted.addActionListener(al);
     JMenu tooltipSettingsMenu = new JMenu(
             MessageManager.getString("label.sequence_id_tooltip"));
@@ -1740,6 +1774,7 @@ public class GAlignFrame extends JInternalFrame
     alignFrameMenuBar.add(colourMenu);
     alignFrameMenuBar.add(calculateMenu);
     alignFrameMenuBar.add(webService);
+    alignFrameMenuBar.add(hmmerMenu);
 
     fileMenu.add(fetchSequence);
     fileMenu.add(addSequenceMenu);
@@ -1842,7 +1877,6 @@ public class GAlignFrame extends JInternalFrame
     calculateMenu.add(calculateTree);
     calculateMenu.addSeparator();
     calculateMenu.add(pairwiseAlignmentMenuItem);
-    calculateMenu.add(PCAMenuItem);
     calculateMenu.addSeparator();
     calculateMenu.add(showTranslation);
     calculateMenu.add(showReverse);
@@ -1908,6 +1942,23 @@ public class GAlignFrame extends JInternalFrame
    * Constructs the entries on the Colour menu (but does not add them to the
    * menu).
    */
+  protected void initHMMERMenu()
+  {
+    autoAlignSeqs = new JCheckBoxMenuItem(
+            MessageManager.getString("label.auto_align_seqs"));
+    hmmAlign = new JMenuItem(MessageManager.getString("label.hmmalign"));
+    hmmBuild = new JMenuItem(MessageManager.getString("label.hmmbuild"));
+    hmmSearch = new JMenuItem(MessageManager.getString("label.hmmsearch"));
+    autoAlignSeqs.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        autoAlignSeqs_actionPerformed(autoAlignSeqs.isSelected());
+      }
+    });
+
+  }
   protected void initColourMenu()
   {
     applyToAllGroups = new JCheckBoxMenuItem(
@@ -1917,12 +1968,12 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        applyToAllGroups_actionPerformed();
+        applyToAllGroups_actionPerformed(applyToAllGroups.isSelected());
       }
     });
 
-    textColour = new JRadioButtonMenuItem(
-            MessageManager.getString("action.set_text_colour"));
+    textColour = new JMenuItem(
+            MessageManager.getString("label.text_colour"));
     textColour.addActionListener(new ActionListener()
     {
       @Override
@@ -1939,7 +1990,8 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        conservationMenuItem_actionPerformed();
+        conservationMenuItem_actionPerformed(conservationMenuItem
+                .isSelected());
       }
     });
 
@@ -1950,7 +2002,7 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        abovePIDThreshold_actionPerformed();
+        abovePIDThreshold_actionPerformed(abovePIDThreshold.isSelected());
       }
     });
     modifyPID = new JMenuItem(
@@ -2322,27 +2374,11 @@ public class GAlignFrame extends JInternalFrame
   {
   }
 
-  protected void PCAMenuItem_actionPerformed(ActionEvent e)
-  {
-  }
-
-  protected void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
-  {
-  }
-
   protected void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
   {
   }
 
-  protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
-  {
-  }
-
-  protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
-  {
-  }
-
-  protected void conservationMenuItem_actionPerformed()
+  protected void conservationMenuItem_actionPerformed(boolean selected)
   {
   }
 
@@ -2358,7 +2394,7 @@ public class GAlignFrame extends JInternalFrame
   {
   }
 
-  protected void abovePIDThreshold_actionPerformed()
+  protected void abovePIDThreshold_actionPerformed(boolean selected)
   {
   }
 
@@ -2391,14 +2427,34 @@ public class GAlignFrame extends JInternalFrame
   }
 
   protected void pasteNew_actionPerformed(ActionEvent e)
+          throws IOException, InterruptedException
   {
   }
 
   protected void pasteThis_actionPerformed(ActionEvent e)
+          throws IOException, InterruptedException
+  {
+  }
+
+  protected void applyToAllGroups_actionPerformed(boolean selected)
+  {
+  }
+
+  protected void autoAlignSeqs_actionPerformed(boolean selected)
   {
   }
 
-  protected void applyToAllGroups_actionPerformed()
+  protected void hmmAlign_actionPerformed(ActionEvent e)
+          throws IOException, InterruptedException
+  {
+  }
+
+  protected void hmmBuild_actionPerformed(ActionEvent e)
+          throws IOException, InterruptedException
+  {
+  }
+
+  protected void hmmSearch_actionPerformed(ActionEvent e)
   {
   }
 
@@ -2517,6 +2573,7 @@ public class GAlignFrame extends JInternalFrame
   }
 
   public void associatedData_actionPerformed(ActionEvent e)
+          throws IOException, InterruptedException
   {
 
   }
@@ -2626,7 +2683,7 @@ public class GAlignFrame extends JInternalFrame
 
   }
 
-  public void buildTreeMenu()
+  public void buildTreeSortMenu()
   {
 
   }
@@ -2713,4 +2770,22 @@ public class GAlignFrame extends JInternalFrame
   protected void showComplement_actionPerformed(boolean complement)
   {
   }
+
+  protected void showInformationHistogram_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void showHMMSequenceLogo_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void normaliseHMMSequenceLogo_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
 }