+\r
+ void displayResults(boolean newWindow)\r
+ {\r
+ if (jobs != null)\r
+ {\r
+ Alignment res = null;\r
+ for (int jn = 0; jn < jobs.length; jn++)\r
+ {\r
+ Alignment jobres = null;\r
+ JPredJob j = (JPredJob) jobs[jn];\r
+\r
+ if (j.hasResults())\r
+ {\r
+ try\r
+ {\r
+ jalview.bin.Cache.log.debug("Parsing output of job " + jn);\r
+ jobres = j.getResultSet();\r
+ jalview.bin.Cache.log.debug("Finished parsing output.");\r
+ if (jobs.length==1)\r
+ res = jobres;\r
+ else {\r
+ // do merge with other job results\r
+ }\r
+ }\r
+ catch (Exception e)\r
+ {\r
+ jalview.bin.Cache.log.error(\r
+ "JNet Client: JPred Annotation Parse Error",\r
+ e);\r
+ wsInfo.setStatus(j.jobnum, WebserviceInfo.STATE_STOPPED_ERROR);\r
+ wsInfo.appendProgressText(j.jobnum,\r
+ OutputHeader + "\n" +\r
+ j.result.getStatus() +\r
+ "\nInvalid JNet job result data!\n" +\r
+ e.getMessage());\r
+ j.result.setBroken(true);\r
+ }\r
+ }\r
+ }\r
+\r
+ if (res != null)\r
+ {\r
+ if (newWindow)\r
+ {\r
+ AlignFrame af = new AlignFrame(res);\r
+ Desktop.addInternalFrame(af, altitle,\r
+ AlignFrame.NEW_WINDOW_WIDTH,\r
+ AlignFrame.NEW_WINDOW_HEIGHT);\r
+ }\r
+ else\r
+ {\r
+ Cache.log.info("Append results onto existing alignment.");\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ void pollJob(WSJob job)\r
+ throws Exception\r
+ {\r
+ job.result = server.getresult(job.jobId);\r
+ }\r
+ public boolean isCancellable()\r
+ {\r
+ return false;\r
+ }\r
+\r
+ public void cancelJob()\r
+ {\r
+ throw new Error("Implementation error!");\r
+ }\r
+\r