X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws1%2FJPredThread.java;h=85969fc41298b1ee7ed4a551ddef002e379a9797;hb=9493ac8f3b6a02d3cf9747ed6c0d6cf407d284e8;hp=a478b87bfbbd1653cd8ffb4aad35e966cec2ff82;hpb=797df64fa2a0a30773d0f48f5494d4155e5a8be3;p=jalview.git diff --git a/src/jalview/ws/jws1/JPredThread.java b/src/jalview/ws/jws1/JPredThread.java index a478b87..85969fc 100644 --- a/src/jalview/ws/jws1/JPredThread.java +++ b/src/jalview/ws/jws1/JPredThread.java @@ -1,19 +1,22 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) - * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.ws.jws1; @@ -137,8 +140,7 @@ class JPredThread extends JWS1Thread implements WSClientI if (!jalview.analysis.SeqsetUtils.deuniquify( (Hashtable) SequenceInfo, sqs)) { - throw (new Exception( - "Couldn't recover sequence properties for alignment.")); + throw (new Exception(MessageManager.getString("exception.couldnt_recover_sequence_properties_for_alignment"))); } } FirstSeq = 0; @@ -150,8 +152,7 @@ class JPredThread extends JWS1Thread implements WSClientI } else { - throw (new Exception("Unknown format " + format - + " for file : \n" + result.getAligfile())); + throw (new Exception(MessageManager.formatMessage("exception.unknown_format_for_file", new String[]{format,result.getAligfile()}))); } } else @@ -165,14 +166,13 @@ class JPredThread extends JWS1Thread implements WSClientI .getAlignmentAndColumnSelection(gc))[0]; if (this.msaIndex >= sqs.length) { - throw new Error( - "Implementation Error! Invalid msaIndex for JPredJob on parent MSA input object!"); + throw new Error(MessageManager.getString("error.implementation_error_invalid_msa_index_for_job")); } // /// // Uses RemoveGapsCommand // /// - new jalview.commands.RemoveGapsCommand("Remove Gaps", + new jalview.commands.RemoveGapsCommand(MessageManager.getString("label.remove_gaps"), new SequenceI[] { sqs[msaIndex] }, currentView); @@ -183,8 +183,7 @@ class JPredThread extends JWS1Thread implements WSClientI if (!jalview.analysis.SeqsetUtils.SeqCharacterUnhash( al.getSequenceAt(FirstSeq), SequenceInfo)) { - throw (new Exception( - "Couldn't recover sequence properties for JNet Query sequence!")); + throw (new Exception(MessageManager.getString("exception.couldnt_recover_sequence_props_for_jnet_query"))); } else { @@ -197,7 +196,8 @@ class JPredThread extends JWS1Thread implements WSClientI { // Adjust input view for gaps // propagate insertions into profile - alcsel = ColumnSelection.propagateInsertions(profileseq, al, input); + alcsel = ColumnSelection.propagateInsertions(profileseq, al, + input); } } } @@ -255,7 +255,6 @@ class JPredThread extends JWS1Thread implements WSClientI } } - public JPredJob(Hashtable SequenceInfo, SequenceI seq, int[] delMap) { super(); @@ -269,6 +268,10 @@ class JPredThread extends JWS1Thread implements WSClientI sequence.setId(seq.getName()); sequence.setSeq(sq); } + else + { + errorMessage = "Sequence is too short to predict with JPred - need at least 20 amino acids."; + } } public JPredJob(Hashtable SequenceInfo, SequenceI[] msf, int[] delMap) @@ -284,6 +287,13 @@ class JPredThread extends JWS1Thread implements WSClientI } } } + + String errorMessage = ""; + + public String getValidationMessages() + { + return errorMessage + "\n"; + } } ext.vamsas.Jpred server; @@ -313,6 +323,10 @@ class JPredThread extends JWS1Thread implements WSClientI { job }; job.setJobnum(0); } + else + { + wsInfo.appendProgressText(job.getValidationMessages()); + } } JPredThread(WebserviceInfo wsinfo, String altitle, @@ -329,15 +343,17 @@ class JPredThread extends JWS1Thread implements WSClientI OutputHeader = wsInfo.getProgressText(); job.setJobnum(0); } + else + { + wsInfo.appendProgressText(job.getValidationMessages()); + } } public void StartJob(AWsJob j) { if (!(j instanceof JPredJob)) { - throw new Error( - "Implementation error - StartJob(JpredJob) called on " - + j.getClass()); + throw new Error(MessageManager.formatMessage("error.implementation_error_startjob_called", new String[]{j.getClass().toString()})); } try { @@ -358,7 +374,7 @@ class JPredThread extends JWS1Thread implements WSClientI { job.result = (vamsas.objects.simple.Result) new JpredResult(); job.result.setInvalid(true); - job.result.setStatus("Submission " + job.getJobId()); + job.result.setStatus(MessageManager.formatMessage("label.submission_params", new String[]{job.getJobId().toString()})); throw new Exception(job.getJobId()); } else @@ -370,7 +386,7 @@ class JPredThread extends JWS1Thread implements WSClientI } else { - throw new Exception("Server timed out - try again later\n"); + throw new Exception(MessageManager.getString("exception.server_timeout_try_later")); } } catch (Exception e) { @@ -394,9 +410,7 @@ class JPredThread extends JWS1Thread implements WSClientI { wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_ERROR); // JBPNote - this could be a popup informing the user of the problem. - wsInfo.appendProgressText(j.getJobnum(), - "Failed to submit the prediction:\n" + e.getMessage() - + wsInfo.getProgressText()); + wsInfo.appendProgressText(j.getJobnum(), MessageManager.formatMessage("info.failed_to_submit_prediction", new String[]{e.getMessage(),wsInfo.getProgressText()})); jalview.bin.Cache.log.debug( "Failed Submission of job " + j.getJobnum(), e); @@ -451,6 +465,8 @@ class JPredThread extends JWS1Thread implements WSClientI } else { + wsInfo.setStatus(wsInfo.STATE_STOPPED_ERROR); + wsInfo.appendInfoText("No jobs ran."); wsInfo.setFinishedNoResults(); } } @@ -484,8 +500,7 @@ class JPredThread extends JWS1Thread implements WSClientI else { // do merge with other job results - throw new Error( - "Multiple JNet subjob merging not yet implemented."); + throw new Error(MessageManager.getString("error.multiple_jnet_subjob_merge_not_implemented")); } } catch (Exception e) { @@ -493,9 +508,7 @@ class JPredThread extends JWS1Thread implements WSClientI "JNet Client: JPred Annotation Parse Error", e); wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_ERROR); - wsInfo.appendProgressText(j.getJobnum(), OutputHeader + "\n" - + j.result.getStatus() - + "\nInvalid JNet job result data!\n" + e.getMessage()); + wsInfo.appendProgressText(j.getJobnum(), MessageManager.formatMessage("info.invalid_jnet_job_result_data", new String[]{OutputHeader.toString(),j.result.getStatus(), e.getMessage() })); j.result.setBroken(true); } } @@ -563,7 +576,7 @@ class JPredThread extends JWS1Thread implements WSClientI public void cancelJob() { - throw new Error("Implementation error!"); + throw new Error(MessageManager.getString("error.implementation_error")); } public boolean canMergeResults()