JAL-2629 combine with/without defaults in one method call
[jalview.git] / src / jalview / gui / AlignFrame.java
index 27d4f5e..009d946 100644 (file)
@@ -106,6 +106,7 @@ import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.ArgumentI;
 import jalview.ws.params.ParamDatastoreI;
 import jalview.ws.params.WsParamSetI;
+import jalview.ws.params.simple.Option;
 import jalview.ws.seqfetcher.DbSourceProxy;
 
 import java.awt.BorderLayout;
@@ -1024,96 +1025,92 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   @Override
-  public void hmmBuildSettings_actionPerformed()
+  public void hmmBuild_actionPerformed(boolean withDefaults)
   {
-    if (!(alignmentIsSufficient(1)))
+    if (!alignmentIsSufficient(1))
     {
       return;
     }
-    WsParamSetI set = new HMMERPreset();
     List<ArgumentI> args = new ArrayList<>();
-    ParamDatastoreI store = new HMMERParamStore("hmmbuild");
-    WsJobParameters params = new WsJobParameters(new JFrame(), store, set,
-            args);
-    if (params.showRunDialog())
+    if (withDefaults)
     {
-      new Thread(new HMMBuild(this, params.getJobParams())).start();
+      // todo: construct this in HMMERPreset?
+      String argName = MessageManager.getString("label.hmmbuild_for");
+      String argValue = MessageManager.getString("label.alignment");
+      args.add(
+              new Option(argName, null, false, null, argValue, null, null));
     }
-    alignPanel.repaint();
-
+    else
+    {
+      WsParamSetI set = new HMMERPreset();
+      ParamDatastoreI store = HMMERParamStore.forBuild();
+      WsJobParameters params = new WsJobParameters(new JFrame(), store, set,
+              args);
+      if (params.showRunDialog())
+      {
+        args = params.getJobParams();
+      }
+      else
+      {
+        return; // user cancelled
+      }
+    }
+    new Thread(new HMMBuild(this, args)).start();
   }
 
   @Override
-  public void hmmAlignSettings_actionPerformed()
+  public void hmmAlign_actionPerformed(boolean withDefaults)
   {
     if (!(checkForHMM() && alignmentIsSufficient(2)))
     {
       return;
     }
-    WsParamSetI set = new HMMERPreset();
     List<ArgumentI> args = new ArrayList<>();
-    ParamDatastoreI store = new HMMERParamStore("hmmalign");
-    WsJobParameters params = new WsJobParameters(new JFrame(), store, set,
-            args);
-    if (params.showRunDialog())
+    if (!withDefaults)
     {
-      new Thread(new HMMAlign(this, params.getJobParams()))
-            .start();
+      WsParamSetI set = new HMMERPreset();
+      ParamDatastoreI store = HMMERParamStore.forAlign();
+      WsJobParameters params = new WsJobParameters(new JFrame(), store, set,
+              args);
+      if (params.showRunDialog())
+      {
+        args = params.getJobParams();
+      }
+      else
+      {
+        return; // user cancelled
+      }
     }
-    alignPanel.repaint();
+    new Thread(new HMMAlign(this, args)).start();
   }
 
   @Override
-  public void hmmSearchSettings_actionPerformed()
+  public void hmmSearch_actionPerformed(boolean withDefaults)
   {
     if (!checkForHMM())
     {
       return;
     }
-    WsParamSetI set = new HMMERPreset();
     List<ArgumentI> args = new ArrayList<>();
-    ParamDatastoreI store = new HMMERParamStore("hmmsearch");
-    WsJobParameters params = new WsJobParameters(new JFrame(), store, set,
-            args);
-    if (params.showRunDialog())
+    if (!withDefaults)
     {
-      new Thread(new HMMSearch(this, params.getJobParams()))
-            .start();
+      WsParamSetI set = new HMMERPreset();
+      ParamDatastoreI store = HMMERParamStore.forSearch();
+      WsJobParameters params = new WsJobParameters(new JFrame(), store, set,
+              args);
+      if (params.showRunDialog())
+      {
+        args = params.getJobParams();
+      }
+      else
+      {
+        return; // user cancelled
+      }
     }
+    new Thread(new HMMSearch(this, args)).start();
     alignPanel.repaint();
   }
 
-  @Override
-  public void hmmBuildRun_actionPerformed()
-  {
-    if (!alignmentIsSufficient(1))
-    {
-      return;
-    }
-    new Thread(new HMMBuild(this, null))
-            .start();
-  }
-
-  @Override
-  public void hmmAlignRun_actionPerformed()
-  {
-    if (!(checkForHMM() && alignmentIsSufficient(2)))
-    {
-      return;
-    }
-    new Thread(new HMMAlign(this, null)).start();
-  }
-
-  @Override
-  public void hmmSearchRun_actionPerformed()
-  {
-    if (!checkForHMM())
-    {
-      return;
-    }
-    new Thread(new HMMSearch(this, null)).start();
-  }
-
   /**
    * Checks if the frame has a selected hidden Markov model
    *