- if (!(result.isJobFailed() || result.isServerError())) {\r
- Thread.sleep(5000);\r
-\r
- // System.out.println("I'm alive "+seqid+" "+jobid);\r
- } else {\r
- break;\r
- }\r
- }\r
- } catch (Exception ex) {\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
- if (allowedServerExceptions > 0) {\r
- Thread.sleep(5000);\r
- }\r
- } catch (InterruptedException ex1) {\r
- }\r
- }\r
- }\r
-\r
- if (allowedServerExceptions == 0) {\r
- wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
- } else {\r
- if (!((result != null) &&\r
- (result.isJobFailed() || result.isServerError()))) {\r
- wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_OK);\r
- } else {\r
- if (result.isFailed()) {\r
- wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR);\r
- }\r
-\r
- if (result.isServerError()) {\r
- wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
- }\r
- }\r
- }\r
- }\r
-\r
- void StartJob() {\r
- try {\r
- vamsas.objects.simple.WsJobId jobsubmit = server.align(seqs);\r
-\r
- if ((jobsubmit != null) && (jobsubmit.getStatus() == 1)) {\r
- jobId = jobsubmit.getJobId();\r
- System.out.println(WsURL + " Job Id '" + jobId + "'");\r
- } else {\r
- if (jobsubmit == null) {\r
- throw new Exception("Server at " + WsURL +\r
- " returned null object, it probably cannot be contacted. Try again later ?");\r
- }\r
-\r
- throw new Exception(jobsubmit.getJobId());\r
- }\r
- } catch (Exception e) {\r
- // TODO: JBPNote catch timeout or other fault types explicitly\r
- // For unexpected errors\r
- System.err.println(WebServiceName +\r
- " Client: Failed to submit the sequences for alignment.\n" +\r
- WsURL + " : " + e.toString() + "\n");\r
- this.allowedServerExceptions = 0;\r
- wsInfo.setStatus(wsInfo.STATE_STOPPED_SERVERERROR);\r
- wsInfo.appendProgressText("Server problems! " + e.toString() +\r
- "\nFailed to submit sequences for alignment. Just close the window\n");\r
-\r
- // e.printStackTrace(); // TODO: JBPNote DEBUG\r
- }\r
- }\r
-\r
- private void addFloatAnnotations(Alignment al, int[] gapmap,\r
- Vector values, String Symname, String Visname, float min,\r
- float max, int winLength) {\r
- Annotation[] annotations = new Annotation[al.getWidth()];\r
-\r
- for (int j = 0; j < values.size(); j++) {\r
- float value = Float.parseFloat(values.get(j).toString());\r
- annotations[gapmap[j]] = new Annotation("", value + "", ' ',\r
- value);\r
- }\r
-\r
- al.addAnnotation(new AlignmentAnnotation(Symname, Visname,\r
- annotations, min, max, winLength));\r
- }\r
-\r
- private jalview.datamodel.Sequence[] getVamsasAlignment(\r
- 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
-\r
- for (int i = 0, j = seqs.length; i < j; i++)\r
- msa[i] = new jalview.datamodel.Sequence(seqs[i].getId(),\r
- seqs[i].getSeq());\r
-\r
- return msa;\r
- }\r
-\r
- void parseResult() {\r
- SequenceI[] seqs = null;\r
-\r
- try {\r
- // OutputHeader = output.getText();\r
- if (result.isFailed()) {\r
- OutputHeader += "Job failed.\n";\r
- }\r
-\r
- if (result.getStatus() != null) {\r
- OutputHeader += ("\n" + result.getStatus());\r
- }\r
-\r
- if (result.getMsa() != null) {\r
- OutputHeader += "\nAlignment Object Method Notes\n";\r
-\r
- String[] lines = result.getMsa().getMethod();\r
-\r
- for (int line = 0; line < lines.length; line++)\r
- OutputHeader += (lines[line] + "\n");\r
-\r
- // JBPNote The returned files from a webservice could be hidden behind icons in the monitor window that, when clicked, pop up their corresponding data\r
- seqs = getVamsasAlignment(result.getMsa());\r
- }\r
-\r
- wsInfo.setProgressText(OutputHeader);\r
-\r
- if (seqs != null) {\r
- AlignmentOrder msaorder = new AlignmentOrder(seqs);\r
-\r
- if (preserveOrder) {\r
- jalview.analysis.AlignmentSorter.recoverOrder(seqs);\r
- }\r
-\r
- jalview.analysis.SeqsetUtils.deuniquify(SeqNames, seqs);\r
-\r
- Alignment al = new Alignment(seqs);\r
-\r
- // TODO: JBPNote Should also rename the query sequence sometime...\r
- AlignFrame af = new AlignFrame(al);\r
- af.addSortByOrderMenuItem(ServiceName + " Ordering",\r
- msaorder);\r
-\r
- Desktop.addInternalFrame(af, alTitle,\r
- AlignFrame.NEW_WINDOW_WIDTH,\r
- AlignFrame.NEW_WINDOW_HEIGHT);\r
- }\r
- } catch (Exception ex) {\r
- ex.printStackTrace();\r
- }\r
- }\r
- }\r