* server is a WSDL2Java generated stub for an archetypal MsaWSI service.\r
*/\r
ext.vamsas.MuscleWS server;\r
+ AlignFrame alignFrame;\r
\r
\r
/**\r
* @param preserveOrder DOCUMENT ME!\r
*/\r
\r
- public MsaWSClient(ext.vamsas.ServiceHandle sh, String altitle, SequenceI[] msa,\r
- boolean submitGaps, boolean preserveOrder)\r
+ public MsaWSClient(ext.vamsas.ServiceHandle sh, String altitle,\r
+ SequenceI[] msa,\r
+ boolean submitGaps, boolean preserveOrder,\r
+ Alignment seqdataset,\r
+ AlignFrame _alignFrame)\r
{\r
\r
+ alignFrame = _alignFrame;\r
if (!sh.getAbstractName().equals("MsaWS"))\r
{\r
JOptionPane.showMessageDialog(Desktop.desktop,\r
\r
return;\r
}\r
- startMsaWSClient(altitle, msa, submitGaps, preserveOrder);\r
+ startMsaWSClient(altitle, msa, submitGaps, preserveOrder, seqdataset);\r
\r
}\r
\r
\r
private void startMsaWSClient(String altitle, SequenceI[] msa,\r
- boolean submitGaps, boolean preserveOrder)\r
+ boolean submitGaps, boolean preserveOrder, Alignment seqdataset)\r
{\r
if (!locateWebService())\r
{\r
\r
MsaWSThread musclethread = new MsaWSThread(WebServiceName +\r
" alignment of " + altitle, msa,\r
- submitGaps, preserveOrder);\r
+ submitGaps, preserveOrder, seqdataset);\r
wsInfo.setthisService(musclethread);\r
musclethread.start();\r
}\r
" Service location failed\nfor URL :" + WsURL +\r
"\n" +\r
ex.getMessage());\r
- wsInfo.setStatus(wsInfo.ERROR);\r
+ wsInfo.setStatus(WebserviceInfo.ERROR);\r
ex.printStackTrace();\r
\r
return false;\r
vamsas.objects.simple.SequenceSet seqs = new vamsas.objects.simple.\r
SequenceSet();\r
Hashtable SeqNames = null;\r
- boolean submitGaps = false; // and always store and recover sequence order\r
+ boolean submitGaps = false; // pass sequences including gaps to alignment service\r
boolean preserveOrder = true; // and always store and recover sequence order\r
String jobId;\r
String alTitle; // name which will be used to form new alignment window.\r
int allowedServerExceptions = 3; // thread dies if too many exceptions.\r
boolean jobComplete = false;\r
\r
+ Alignment dataset; // dataset to which the new alignment will be associated.\r
+\r
MsaWSThread(String title, SequenceI[] msa, boolean subgaps,\r
- boolean presorder)\r
+ boolean presorder, Alignment seqset)\r
{\r
alTitle = title;\r
submitGaps = subgaps;\r
preserveOrder = presorder;\r
-\r
+ dataset = seqset;\r
OutputHeader = wsInfo.getProgressText();\r
SeqNames = new Hashtable();\r
\r
throw (new Exception(\r
"Timed out when communicating with server\nTry again later.\n"));\r
}\r
- jalview.bin.Jalview.log.debug("Result state " + result.getState() +\r
+ jalview.bin.Cache.log.debug("Result state " + result.getState() +\r
"(ServerError=" + result.isServerError() +\r
")");\r
if (result.isRunning())\r
if (result.isFinished())\r
{\r
wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_OK);\r
+ wsInfo.showResultsNewFrame.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt)\r
+ {\r
+ displayResults(true);\r
+ }\r
+ });\r
+ wsInfo.mergeResults.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(java.awt.event.ActionEvent evt)\r
+ {\r
+ displayResults(false);\r
+ }\r
+ });\r
+ wsInfo.setResultsReady();\r
parseResult();\r
jobComplete = true;\r
jobsRunning--;\r
{\r
if (result.getStatus() != null)\r
{\r
- System.out.println("result "+result.getStatus().length());\r
- wsInfo.setProgressText(OutputHeader + "\n" );\r
- // result.getStatus());\r
+ wsInfo.setProgressText(OutputHeader + "\n"+ result.getStatus());\r
}\r
if (result.isServerError())\r
{\r
e.toString() +\r
"\n");\r
this.allowedServerExceptions = 0;\r
- wsInfo.setStatus(wsInfo.STATE_STOPPED_SERVERERROR);\r
+ wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);\r
wsInfo.appendProgressText(\r
"Failed to submit sequences for alignment.\n" +\r
"It is most likely that there is a problem with the server.\n" +\r
\r
void parseResult()\r
{\r
- SequenceI[] seqs = null;\r
\r
try\r
{\r
\r
if (result.getStatus() != null)\r
{\r
- System.out.println("get status " +result.getStatus().length());\r
- // OutputHeader += ("\n" + result.getStatus());\r
+ OutputHeader += ("\n" + result.getStatus());\r
}\r
\r
if (result.getMsa() != null)\r
{\r
- System.out.println("get msa");\r
- // OutputHeader += "\nAlignment Object Method Notes\n";\r
+ OutputHeader += "\nAlignment Object Method Notes\n";\r
\r
String[] lines = result.getMsa().getMethod();\r
\r
-System.out.println("lines "+lines.length);\r
for (int line = 0; line < lines.length; line++)\r
{\r
- // OutputHeader += (lines[line] + "\n");\r
+ OutputHeader += (lines[line] + "\n");\r
}\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
+ // JBPNote The returned files from a webservice could be\r
+ // hidden behind icons in the monitor window that,\r
+ // when clicked, pop up their corresponding data\r
}\r
\r
wsInfo.setProgressText(OutputHeader);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
+ }\r
\r
- if (seqs != null)\r
- {\r
- AlignmentOrder msaorder = new AlignmentOrder(seqs);\r
+ void displayResults(boolean newFrame)\r
+ {\r
+ SequenceI [] seqs = getVamsasAlignment(result.getMsa());\r
\r
- if (preserveOrder)\r
- {\r
- jalview.analysis.AlignmentSorter.recoverOrder(seqs);\r
- }\r
+ if (seqs != null)\r
+ {\r
+ AlignmentOrder msaorder = new AlignmentOrder(seqs);\r
\r
- jalview.analysis.SeqsetUtils.deuniquify(SeqNames, seqs);\r
+ if (preserveOrder)\r
+ {\r
+ jalview.analysis.AlignmentSorter.recoverOrder(seqs);\r
+ }\r
\r
- Alignment al = new Alignment(seqs);\r
+ jalview.analysis.SeqsetUtils.deuniquify(SeqNames, 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
+ Alignment al = new Alignment(seqs);\r
+ if (dataset!=null)\r
+ {\r
+ al.setDataset(dataset);\r
+ }\r
\r
- Desktop.addInternalFrame(af, alTitle,\r
- AlignFrame.NEW_WINDOW_WIDTH,\r
- AlignFrame.NEW_WINDOW_HEIGHT);\r
- }\r
- }\r
- catch (Exception ex)\r
- {\r
- ex.printStackTrace();\r
- }\r
+ if(newFrame)\r
+ {\r
+ // TODO: JBPNote Should also rename the query sequence sometime...\r
+ AlignFrame af = new AlignFrame(al);\r
+\r
+ //>>>This is a fix for the moment, until a better solution is found!!<<<\r
+ af.getFeatureRenderer().transferSettings(alignFrame.getFeatureRenderer());\r
+\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
+ }\r
+ else\r
+ {\r
+ System.out.println("MERGE WITH OLD FRAME");\r
+\r
+ }\r
+ }\r
}\r
}\r
}\r