- Annotation[] annotations = new Annotation[al.getWidth()];\r
- for (int j = 0; j < values.size(); j++)\r
- {\r
- float value = Float.parseFloat(values.get(j).toString());\r
- annotations[gapmap[j]] = new Annotation("", value+"",' ',value);\r
- }\r
- al.addAnnotation(new AlignmentAnnotation(Symname, Visname, annotations, min, max, winLength));\r
- }\r
- private jalview.datamodel.Sequence[] getVamsasAlignment(vamsas.objects.simple.Alignment valign) {\r
- vamsas.objects.simple.Sequence[] seqs = valign.getSeqs().getSeqs();\r
- jalview.datamodel.Sequence[] msa = new jalview.datamodel.Sequence[seqs.length];\r
- for (int i=0, j=seqs.length; i<j;i++)\r
- msa[i] = new jalview.datamodel.Sequence(seqs[i].getId(), seqs[i].getSeq());\r
- return msa;\r
- }\r
- void parseResult()\r
- {\r
- SequenceI[] seqs=null;\r
- try {\r
- // OutputHeader = output.getText();\r
- if (result.isFailed()) {\r
- OutputHeader +="Job failed.\n";\r
+ public void cancelJob()\r
+ {\r
+ if ((jobId != null) && !jobId.equals("") && !jobComplete)\r
+ {\r
+ String cancelledMessage = "";\r
+\r
+ try\r
+ {\r
+ vamsas.objects.simple.WsJobId cancelledJob = server.cancel(jobId);\r
+\r
+ if (cancelledJob.getStatus() == 2)\r
+ {\r
+ // CANCELLED_JOB\r
+ cancelledMessage = "Job cancelled.";\r
+ wsInfo.setStatus(WebserviceInfo.STATE_CANCELLED_OK);\r
+ jobComplete = true;\r
+ jobsRunning--;\r
+ result = null;\r
+ }\r
+ else if (cancelledJob.getStatus() == 3)\r
+ {\r
+ // VALID UNSTOPPABLE JOB\r
+ cancelledMessage += "Server cannot cancel this job. just close the window.\n";\r
+ }\r
+\r
+ if (cancelledJob.getJobId() != null)\r
+ {\r
+ cancelledMessage += ("[" + cancelledJob.getJobId() +\r
+ "]");\r
+ }\r
+\r
+ cancelledMessage += "\n";\r
+ }\r
+ catch (Exception exc)\r
+ {\r
+ cancelledMessage += ("\nProblems cancelling the job : Exception received...\n" +\r
+ exc + "\n");\r
+ exc.printStackTrace();\r
+ }\r
+\r
+ wsInfo.setProgressText(OutputHeader + cancelledMessage + "\n");\r
+ }\r
+ else\r
+ {\r
+ if (!jobComplete)\r
+ {\r
+ wsInfo.setProgressText(OutputHeader +\r
+ "Server cannot cancel this job because it has not been submitted properly. just close the window.\n");\r
+ }\r
+ }\r
+ }\r
+\r
+ public void run()\r
+ {\r
+ StartJob();\r
+\r
+ while (!jobComplete && (allowedServerExceptions > 0))\r
+ {\r
+ try\r
+ {\r
+ if ((result = server.getResult(jobId)) == null)\r
+ {\r
+ throw (new Exception(\r
+ "Timed out when communicating with server\nTry again later.\n"));\r
+ }\r
+\r
+ if (result.isRunning())\r
+ {\r
+ wsInfo.setStatus(WebserviceInfo.STATE_RUNNING);\r
+ }\r
+ else if (result.isQueued())\r
+ {\r
+ wsInfo.setStatus(WebserviceInfo.STATE_QUEUING);\r
+ }\r
+\r
+ if (result.isFinished())\r
+ {\r
+ parseResult();\r
+ jobComplete = true;\r
+ jobsRunning--;\r
+ }\r
+ else\r
+ {\r
+ if (result.getStatus() != null)\r
+ {\r
+ wsInfo.setProgressText(OutputHeader + "\n" +\r
+ result.getStatus());\r
+ }\r
+\r
+ if (!(result.isJobFailed() || result.isServerError()))\r
+ {\r
+ Thread.sleep(5000);\r
+\r
+ // System.out.println("I'm alive "+seqid+" "+jobid);\r
+ }\r
+ else\r
+ {\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ allowedServerExceptions--;\r
+ wsInfo.appendProgressText("\n" + ServiceName +\r
+ " Server exception!\n" + ex.getMessage());\r
+ System.err.println(ServiceName + " Server exception: " +\r
+ ex.getMessage());\r
+\r
+ // ex.printStackTrace(); JBPNote Debug\r
+ try\r
+ {\r
+ if (allowedServerExceptions > 0)\r
+ {\r
+ Thread.sleep(5000);\r
+ }\r
+ }\r
+ catch (InterruptedException ex1)\r
+ {\r
+ }\r
+ }\r
+ }\r
+\r
+ if (allowedServerExceptions == 0)\r
+ {\r
+ wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
+ }\r
+ else\r
+ {\r
+ if (!((result != null) &&\r
+ (result.isJobFailed() || result.isServerError())))\r
+ {\r
+ wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_OK);\r
+ }\r
+ else\r
+ {\r
+ if (result.isFailed())\r
+ {\r
+ wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR);\r
+ }\r
+\r
+ if (result.isServerError())\r
+ {\r
+ wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
+ }\r
+ }\r
+ }\r