JAL-1601 Implement sec str pred for single sequences
[jalview.git] / src / jalview / ws2 / actions / secstructpred / SecStructPredAction.java
index f625f79..b623945 100644 (file)
@@ -8,6 +8,7 @@ import jalview.datamodel.AlignmentI;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.ws.params.ArgumentI;
 import jalview.ws2.actions.BaseAction;
+import jalview.ws2.actions.BaseTask;
 import jalview.ws2.api.Credentials;
 import jalview.ws2.client.api.SecStructPredWebServiceClientI;
 import jalview.ws2.client.api.WebServiceClientI;
@@ -18,6 +19,8 @@ public class SecStructPredAction extends BaseAction<AlignmentI>
   {
     protected SecStructPredWebServiceClientI client;
     
+    protected boolean msaMode;
+    
     private Builder(SecStructPredWebServiceClientI client)
     {
       super();
@@ -25,6 +28,11 @@ public class SecStructPredAction extends BaseAction<AlignmentI>
       this.client = client;
     }
     
+    public void msaMode(boolean msa)
+    {
+      this.msaMode = msa;
+    }
+    
     public SecStructPredAction build()
     {
       return new SecStructPredAction(this);
@@ -38,16 +46,22 @@ public class SecStructPredAction extends BaseAction<AlignmentI>
   
   protected final SecStructPredWebServiceClientI client;
   
+  protected boolean msaMode;
+  
   public SecStructPredAction(Builder builder)
   {
     super(builder);
     client = builder.client;
+    msaMode = builder.msaMode;
   }
   
-  public SecStructPredMsaTask createTask(AlignViewportI viewport,
+  public BaseTask<?, AlignmentI> createTask(AlignViewportI viewport,
       List<ArgumentI> args, Credentials credentials)
   {
-    return new SecStructPredMsaTask(client, args, credentials, viewport);
+    if (msaMode)
+      return new SecStructPredMsaTask(client, args, credentials, viewport);
+    else
+      return new SecStructPredPDBSearchTask(client, args, credentials, viewport);
   }
 
   @Override