JAL-2629 implement hmmbuild
[jalview.git] / src / jalview / gui / AlignFrame.java
index 0c951fa..8ac7c8a 100644 (file)
@@ -63,6 +63,7 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.gui.ColourMenuHelper.ColourChangeListener;
 import jalview.gui.ViewSelectionMenu.ViewSetProvider;
+import jalview.hmmer.HMMERCommands;
 import jalview.io.AlignmentProperties;
 import jalview.io.AnnotationFile;
 import jalview.io.BioJsHTMLOutput;
@@ -125,6 +126,7 @@ import java.awt.print.PrinterJob;
 import java.beans.PropertyChangeEvent;
 import java.io.File;
 import java.io.FileWriter;
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.URL;
 import java.util.ArrayList;
@@ -1033,6 +1035,29 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   @Override
+  public void hmmBuild_actionPerformed(ActionEvent e)
+          throws IOException, InterruptedException
+  {
+
+    HMMERCommands.hmmBuild(this);
+    alignPanel.repaint();
+  }
+
+  @Override
+  public void hmmAlign_actionPerformed(ActionEvent e)
+  {
+
+    alignPanel.repaint();
+  }
+
+  @Override
+  public void hmmSearch_actionPerformed(ActionEvent e)
+  {
+
+    alignPanel.repaint();
+  }
+
+  @Override
   public void reload_actionPerformed(ActionEvent e)
   {
     if (fileName != null)
@@ -4703,13 +4728,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             AlignmentAnnotation annotation = hmm.createAnnotation(
                     getViewport().getAlignment().getWidth());
             getViewport().getAlignment().addAnnotation(annotation);
-            int length = getViewport().getAlignment().getWidth();
-            Sequence consensus = hmm.getConsensusSequence(length);
-            consensus.setHMM(hmm);
-            annotation.setHMM(hmm);
-            SequenceI[] consensusArr = new Sequence[] { consensus };
-            AlignmentI newAlignment = new Alignment(consensusArr);
-            newAlignment.append(getViewport().getAlignment());
+            AlignmentI newAlignment = hmm
+                    .initPlaceholder(getViewport().getAlignment());
             getViewport().setAlignment(newAlignment);
             isAnnotation = true;
             alignPanel.repaint();