JAL-2629 add ability to select hmmer binaries folder
[jalview.git] / src / jalview / gui / AlignFrame.java
index dba6717..9b5681b 100644 (file)
@@ -146,6 +146,7 @@ import javax.swing.JInternalFrame;
 import javax.swing.JLayeredPane;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
 import javax.swing.JScrollPane;
 import javax.swing.SwingUtilities;
 
@@ -339,6 +340,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     init();
   }
 
+  public void setIsRecurring(boolean status)
+  {
+    recurring = status;
+  }
+
   /**
    * initalise the alignframe from the underlying viewport data and the
    * configurations
@@ -501,6 +507,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   {
     hmmerMenu.removeAll();
 
+    hmmerMenu.add(changeHMMERLocation);
+    hmmerMenu.addSeparator();
+
     hmmerMenu.add(autoAlignSeqs);
     hmmerMenu.addSeparator();
 
@@ -1053,13 +1062,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   public void hmmAlign_actionPerformed(ActionEvent e)
           throws IOException, InterruptedException
   {
-    SequenceI seq = getViewport().getAlignment()
-            .getHMMConsensusSequences(false).get(0);
     new Thread(new HMMAlignThread(this, true)).start();
     alignPanel.repaint();
   }
 
   @Override
+  public void changeHMMERLocation_actionPerformed(ActionEvent e)
+  {
+    String location = JOptionPane.showInputDialog(
+            MessageManager.getString("label.enter_location"));
+    Cache.setProperty(Preferences.HMMER_PATH, location);
+  }
+
+  @Override
   public void autoAlignSeqs_actionPerformed(boolean autoAlignSeqs)
   {
     autoAlignNewSequences = autoAlignSeqs;
@@ -4759,6 +4774,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           else
           {
             new FileLoader().LoadFile(viewport, file, sourceType, format);
+            if (autoAlignNewSequences && !recurring)
+            {
+              new Thread(new HMMAlignThread(this, false)).start();
+            }
           }
         }
       }
@@ -4788,14 +4807,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                       + (format != null ? "(parsing as '" + format
                               + "' file)" : ""), oom, Desktop.desktop);
     }
-    if (autoAlignNewSequences && !recurring)
-    {
-      recurring = true;
-      HiddenMarkovModel hmm = getViewport().getAlignment()
-              .getHMMConsensusSequences(false).get(0).getHMM();
-      new Thread(new HMMAlignThread(this, false)).start();
-    }
-    recurring = false;
   }
 
   /**
@@ -5752,4 +5763,5 @@ class PrintThread extends Thread
     }
   }
 
+
 }