X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FMsaWSThread.java;h=e425624c2c6cfb5e58596aefc18c44260aca00b0;hb=1055858fb1c685f77ec3398723cf58f6a591f998;hp=d0d0a6e5ef75a5f1330837e03038bbb34f484bdd;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/ws/jws2/MsaWSThread.java b/src/jalview/ws/jws2/MsaWSThread.java index d0d0a6e..e425624 100644 --- a/src/jalview/ws/jws2/MsaWSThread.java +++ b/src/jalview/ws/jws2/MsaWSThread.java @@ -125,7 +125,9 @@ class MsaWSThread extends AWS2Thread implements WSClientI int nseqs = 0; if (minlen < 0) { - throw new Error(MessageManager.getString("error.implementation_error_minlen_must_be_greater_zero")); + throw new Error( + MessageManager + .getString("error.implementation_error_minlen_must_be_greater_zero")); } for (int i = 0; i < seqs.length; i++) { @@ -164,8 +166,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI .extractGaps(jalview.util.Comparison.GapChars, seqs[i].getSequenceAsString()); } - emptySeqs.add(new String[] - { newname, empty }); + emptySeqs.add(new String[] { newname, empty }); } } return valid; @@ -175,6 +176,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI * * @return true if getAlignment will return a valid alignment result. */ + @Override public boolean hasResults() { if (subjobComplete @@ -296,8 +298,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI jalview.analysis.AlignmentSorter.recoverOrder(alseqs); // account for any missing sequences jalview.analysis.SeqsetUtils.deuniquify(SeqNames, alseqs); - return new Object[] - { alseqs, msaorder }; + return new Object[] { alseqs, msaorder }; } return null; } @@ -316,6 +317,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI * * @return boolean true if job can be submitted. */ + @Override public boolean hasValidInput() { // TODO: get attributes for this MsaWS instance to check if it can do two @@ -436,7 +438,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI String alTitle; // name which will be used to form new alignment window. - Alignment dataset; // dataset to which the new alignment will be + AlignmentI dataset; // dataset to which the new alignment will be // associated. @@ -479,7 +481,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI String wsUrl, WebserviceInfo wsinfo, jalview.gui.AlignFrame alFrame, String wsname, String title, AlignmentView _msa, boolean subgaps, boolean presorder, - Alignment seqset) + AlignmentI seqset) { this(server2, wsUrl, wsinfo, alFrame, _msa, wsname, subgaps, presorder); OutputHeader = wsInfo.getProgressText(); @@ -529,11 +531,14 @@ class MsaWSThread extends AWS2Thread implements WSClientI { return validInput; } + + @Override public boolean isCancellable() { return true; } + @Override public void cancelJob() { if (!jobComplete && jobs != null) @@ -604,6 +609,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI } } + @Override public void pollJob(AWsJob job) throws Exception { // TODO: investigate if we still need to cast here in J1.6 @@ -649,13 +655,16 @@ class MsaWSThread extends AWS2Thread implements WSClientI return changed; } + @Override public void StartJob(AWsJob job) { Exception lex = null; // boiler plate template if (!(job instanceof MsaWSJob)) { - throw new Error(MessageManager.formatMessage("error.implementation_error_msawbjob_called", new String[]{job.getClass().toString()})); + throw new Error(MessageManager.formatMessage( + "error.implementation_error_msawbjob_called", + new String[] { job.getClass().toString() })); } MsaWSJob j = (MsaWSJob) job; if (j.isSubmitted()) @@ -701,28 +710,39 @@ class MsaWSThread extends AWS2Thread implements WSClientI } else { - throw new Exception(MessageManager.formatMessage("exception.web_service_returned_null_try_later", new String[]{WsUrl})); + throw new Exception(MessageManager.formatMessage( + "exception.web_service_returned_null_try_later", + new String[] { WsUrl })); } } catch (compbio.metadata.UnsupportedRuntimeException _lex) { lex = _lex; - wsInfo.appendProgressText(MessageManager.formatMessage("info.job_couldnt_be_run_server_doesnt_support_program", new String[]{_lex.getMessage()})); - wsInfo.warnUser(_lex.getMessage(), MessageManager.getString("warn.service_not_supported")); + wsInfo.appendProgressText(MessageManager.formatMessage( + "info.job_couldnt_be_run_server_doesnt_support_program", + new String[] { _lex.getMessage() })); + wsInfo.warnUser(_lex.getMessage(), + MessageManager.getString("warn.service_not_supported")); wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR); wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_SERVERERROR); } catch (compbio.metadata.LimitExceededException _lex) { lex = _lex; - wsInfo.appendProgressText(MessageManager.formatMessage("info.job_couldnt_be_run_exceeded_hard_limit", new String[]{_lex.getMessage()})); - wsInfo.warnUser(_lex.getMessage(), MessageManager.getString("warn.input_is_too_big")); + wsInfo.appendProgressText(MessageManager.formatMessage( + "info.job_couldnt_be_run_exceeded_hard_limit", + new String[] { _lex.getMessage() })); + wsInfo.warnUser(_lex.getMessage(), + MessageManager.getString("warn.input_is_too_big")); wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR); wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_ERROR); } catch (compbio.metadata.WrongParameterException _lex) { lex = _lex; - wsInfo.warnUser(_lex.getMessage(), MessageManager.getString("warn.invalid_job_param_set")); - wsInfo.appendProgressText(MessageManager.formatMessage("info.job_couldnt_be_run_incorrect_param_setting", new String[]{_lex.getMessage()})); + wsInfo.warnUser(_lex.getMessage(), + MessageManager.getString("warn.invalid_job_param_set")); + wsInfo.appendProgressText(MessageManager.formatMessage( + "info.job_couldnt_be_run_incorrect_param_setting", + new String[] { _lex.getMessage() })); wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_ERROR); wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_ERROR); } catch (Error e) @@ -755,16 +775,19 @@ class MsaWSThread extends AWS2Thread implements WSClientI // TODO: JBPNote catch timeout or other fault types explicitly j.setAllowedServerExceptions(0); - wsInfo.appendProgressText(j.getJobnum(), - MessageManager.getString("info.failed_to_submit_sequences_for_alignment")); + wsInfo.appendProgressText(j.getJobnum(), MessageManager + .getString("info.failed_to_submit_sequences_for_alignment")); } } } + @Override public void parseResult() { long progbar = System.currentTimeMillis(); - wsInfo.setProgressBar(MessageManager.getString("status.collecting_job_results"), progbar); + wsInfo.setProgressBar( + MessageManager.getString("status.collecting_job_results"), + progbar); int results = 0; // number of result sets received JobStateSummary finalState = new JobStateSummary(); try @@ -873,6 +896,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI wsInfo.showResultsNewFrame .addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { displayResults(true); @@ -881,6 +905,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI wsInfo.mergeResults .addActionListener(new java.awt.event.ActionListener() { + @Override public void actionPerformed(java.awt.event.ActionEvent evt) { displayResults(false); @@ -959,6 +984,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI } else { + // TODO 2.9.x feature System.out.println("MERGE WITH OLD FRAME"); // TODO: modify alignment in original frame, replacing old for new // alignment using the commands.EditCommand model to ensure the update can @@ -987,18 +1013,29 @@ class MsaWSThread extends AWS2Thread implements WSClientI addSortByMenuItems(af, alorders); } + // TODO: refactor retrieve and show as new splitFrame as Desktop method + /* * If alignment was requested from one half of a SplitFrame, show in a * SplitFrame with the other pane similarly aligned. */ AlignFrame requestedBy = getRequestingAlignFrame(); - if (requestedBy != null && requestedBy.getSplitViewContainer() != null) + if (requestedBy != null + && requestedBy.getSplitViewContainer() != null + && requestedBy.getSplitViewContainer().getComplement( + requestedBy) != null) { AlignmentI complement = requestedBy.getSplitViewContainer() .getComplement(requestedBy); String complementTitle = requestedBy.getSplitViewContainer() .getComplementTitle(requestedBy); + // becomes null if the alignment window was closed before the alignment + // job finished. AlignmentI copyComplement = new Alignment(complement); + // todo should this be done by copy constructor? + copyComplement.setGapCharacter(complement.getGapCharacter()); + // share the same dataset (and the mappings it holds) + copyComplement.setDataset(complement.getDataset()); copyComplement.alignAs(al); if (copyComplement.getHeight() > 0) { @@ -1077,6 +1114,7 @@ class MsaWSThread extends AWS2Thread implements WSClientI } } + @Override public boolean canMergeResults() { return false;