JAL-1583 new validInput flag set according to validity of all MSA jobs prepared for...
[jalview.git] / src / jalview / ws / jws2 / MsaWSThread.java
index 5e8cb98..c4f3d2d 100644 (file)
  */
 package jalview.ws.jws2;
 
-import java.util.*;
+import jalview.analysis.AlignSeq;
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentOrder;
+import jalview.datamodel.AlignmentView;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceI;
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.gui.WebserviceInfo;
+import jalview.util.MessageManager;
+import jalview.ws.AWsJob;
+import jalview.ws.JobStateSummary;
+import jalview.ws.WSClientI;
+import jalview.ws.jws2.dm.JabaWsParamSet;
+import jalview.ws.params.WsParamSetI;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
 
 import compbio.data.msa.MsaWS;
 import compbio.metadata.Argument;
@@ -28,17 +50,6 @@ import compbio.metadata.ChunkHolder;
 import compbio.metadata.JobStatus;
 import compbio.metadata.Preset;
 
-import jalview.analysis.*;
-import jalview.bin.*;
-import jalview.datamodel.*;
-import jalview.gui.*;
-import jalview.util.MessageManager;
-import jalview.ws.AWsJob;
-import jalview.ws.WSClientI;
-import jalview.ws.JobStateSummary;
-import jalview.ws.jws2.dm.JabaWsParamSet;
-import jalview.ws.params.WsParamSetI;
-
 class MsaWSThread extends AWS2Thread implements WSClientI
 {
   boolean submitGaps = false; // pass sequences including gaps to alignment
@@ -474,7 +485,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI
     SequenceI[][] conmsa = _msa.getVisibleContigs('-');
     if (conmsa != null)
     {
-      int njobs = conmsa.length;
+      int nvalid = 0, njobs = conmsa.length;
       jobs = new MsaWSJob[njobs];
       for (int j = 0; j < njobs; j++)
       {
@@ -486,6 +497,10 @@ class MsaWSThread extends AWS2Thread implements WSClientI
         {
           jobs[j] = new MsaWSJob(0, conmsa[j]);
         }
+        if (((MsaWSJob) jobs[j]).hasValidInput())
+        {
+          nvalid++;
+        }
         ((MsaWSJob) jobs[j]).preset = preset;
         ((MsaWSJob) jobs[j]).arguments = paramset;
         ((MsaWSJob) jobs[j]).alignmentProgram = wsname;
@@ -496,9 +511,20 @@ class MsaWSThread extends AWS2Thread implements WSClientI
         }
         wsinfo.setProgressText(jobs[j].getJobnum(), OutputHeader);
       }
+      validInput = nvalid > 0;
     }
   }
 
+  boolean validInput = false;
+
+  /**
+   * 
+   * @return true if the thread will perform a calculation
+   */
+  public boolean hasValidInput()
+  {
+    return validInput;
+  }
   public boolean isCancellable()
   {
     return true;