JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / src / jalview / ws / jws1 / SeqSearchWSThread.java
index 893482a..bf791e2 100644 (file)
@@ -1,55 +1,45 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 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 <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.ws.jws1;
 
-import java.util.*;
-
-import jalview.analysis.*;
-import jalview.bin.*;
-import jalview.datamodel.*;
-import jalview.gui.*;
+import jalview.analysis.AlignSeq;
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentView;
+import jalview.datamodel.SequenceI;
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.gui.WebserviceInfo;
 import jalview.io.NewickFile;
+import jalview.util.MessageManager;
 import jalview.ws.AWsJob;
 import jalview.ws.JobStateSummary;
 import jalview.ws.WSClientI;
+
+import java.util.Hashtable;
+import java.util.Vector;
+
 import vamsas.objects.simple.MsaResult;
 import vamsas.objects.simple.SeqSearchResult;
 
-/**
- * <p>
- * Title:
- * </p>
- * 
- * <p>
- * Description:
- * </p>
- * 
- * <p>
- * Copyright: Copyright (c) 2004
- * </p>
- * 
- * <p>
- * Company: Dundee University
- * </p>
- * 
- * @author not attributable
- * @version 1.0
- */
 class SeqSearchWSThread extends JWS1Thread implements WSClientI
 {
   String dbs = null;
@@ -78,7 +68,7 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
         subjobComplete = true;
         result = new MsaResult();
         result.setFinished(true);
-        result.setStatus("Job never ran - input returned to user.");
+        result.setStatus(MessageManager.getString("label.job_never_ran"));
       }
 
     }
@@ -102,7 +92,8 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
       if (minlen < 0)
       {
         throw new Error(
-                "Implementation error: minlen must be zero or more.");
+                MessageManager
+                        .getString("error.implementation_error_minlen_must_be_greater_zero"));
       }
       for (int i = 0; i < seqs.length; i++)
       {
@@ -124,8 +115,8 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
         // for
         // any
         // subjob
-        SeqNames.put(newname, jalview.analysis.SeqsetUtils
-                .SeqCharacterHash(seqs[i]));
+        SeqNames.put(newname,
+                jalview.analysis.SeqsetUtils.SeqCharacterHash(seqs[i]));
         if (valid && seqs[i].getEnd() - seqs[i].getStart() > minlen - 1)
         {
           seqarray[n] = new vamsas.objects.simple.Sequence();
@@ -140,11 +131,10 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
           if (seqs[i].getEnd() >= seqs[i].getStart())
           {
             empty = (submitGaps) ? seqs[i].getSequenceAsString() : AlignSeq
-                    .extractGaps(jalview.util.Comparison.GapChars, seqs[i]
-                            .getSequenceAsString());
+                    .extractGaps(jalview.util.Comparison.GapChars,
+                            seqs[i].getSequenceAsString());
           }
-          emptySeqs.add(new String[]
-          { newname, empty });
+          emptySeqs.add(new String[] { newname, empty });
         }
       }
       if (submitGaps)
@@ -276,8 +266,7 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
          * trigger a 'fetchDBids' to annotate sequences with database ids...
          */
 
-        return new Object[]
-        { al, nf };
+        return new Object[] { al, nf };
       }
       return null;
     }
@@ -374,9 +363,8 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
         }
         if (njobs > 0)
         {
-          wsinfo
-                  .setProgressName("region " + jobs[j].getJobnum(),
-                          jobs[j].getJobnum());
+          wsinfo.setProgressName("region " + jobs[j].getJobnum(),
+                  jobs[j].getJobnum());
         }
         wsinfo.setProgressText(jobs[j].getJobnum(), OutputHeader);
       }
@@ -430,7 +418,8 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
             cancelledMessage += ("\nProblems cancelling the job : Exception received...\n"
                     + exc + "\n");
             Cache.log.warn(
-                    "Exception whilst cancelling " + jobs[job].getJobId(), exc);
+                    "Exception whilst cancelling " + jobs[job].getJobId(),
+                    exc);
           }
           wsInfo.setProgressText(jobs[job].getJobnum(), OutputHeader
                   + cancelledMessage + "\n");
@@ -447,25 +436,25 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
     {
       if (!jobComplete)
       {
-        wsInfo
-                .setProgressText(OutputHeader
-                        + "Server cannot cancel this job because it has not been submitted properly. just close the window.\n");
+        wsInfo.setProgressText(OutputHeader
+                + "Server cannot cancel this job because it has not been submitted properly. just close the window.\n");
       }
     }
   }
 
   public void pollJob(AWsJob job) throws Exception
   {
-    ((SeqSearchWSJob) job).result = server
-            .getResult(((SeqSearchWSJob) job).getJobId());
+    ((SeqSearchWSJob) job).result = server.getResult(((SeqSearchWSJob) job)
+            .getJobId());
   }
 
   public void StartJob(AWsJob job)
   {
     if (!(job instanceof SeqSearchWSJob))
     {
-      throw new Error("StartJob(MsaWSJob) called on a WSJobInstance "
-              + job.getClass());
+      throw new Error(MessageManager.formatMessage(
+              "error.implementation_error_msawbjob_called",
+              new String[] { job.getClass().toString() }));
     }
     SeqSearchWSJob j = (SeqSearchWSJob) job;
     if (j.isSubmitted())
@@ -483,13 +472,14 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
       j.setSubmitted(true);
       j.result = new MsaResult();
       j.result.setFinished(true);
-      j.result.setStatus("Empty Alignment Job");
+      j.result.setStatus(MessageManager
+              .getString("label.empty_alignment_job"));
       ((MsaResult) j.result).setMsa(null);
     }
     try
     {
-      vamsas.objects.simple.WsJobId jobsubmit = server.search(j.seqs
-              .getSeqs()[0], dbArg);
+      vamsas.objects.simple.WsJobId jobsubmit = server.search(
+              j.seqs.getSeqs()[0], dbArg);
 
       if ((jobsubmit != null) && (jobsubmit.getStatus() == 1))
       {
@@ -502,10 +492,9 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
       {
         if (jobsubmit == null)
         {
-          throw new Exception(
-                  "Server at "
-                          + WsUrl
-                          + " returned null object, it probably cannot be contacted. Try again later ?");
+          throw new Exception(MessageManager.formatMessage(
+                  "exception.web_service_returned_null_try_later",
+                  new String[] { WsUrl }));
         }
 
         throw new Exception(jobsubmit.getJobId());
@@ -521,13 +510,10 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
                       + e.toString() + "\n");
       j.setAllowedServerExceptions(0);
       wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);
-      wsInfo.setStatus(j.getJobnum(), WebserviceInfo.STATE_STOPPED_SERVERERROR);
-      wsInfo
-              .appendProgressText(
-                      j.getJobnum(),
-                      "Failed to submit sequences for alignment.\n"
-                              + "It is most likely that there is a problem with the server.\n"
-                              + "Just close the window\n");
+      wsInfo.setStatus(j.getJobnum(),
+              WebserviceInfo.STATE_STOPPED_SERVERERROR);
+      wsInfo.appendProgressText(j.getJobnum(), MessageManager
+              .getString("info.failed_to_submit_sequences_for_alignment"));
 
       // e.printStackTrace(); // TODO: JBPNote DEBUG
     }
@@ -541,8 +527,8 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
 
     for (int i = 0, j = seqs.length; i < j; i++)
     {
-      msa[i] = new jalview.datamodel.Sequence(seqs[i].getId(), seqs[i]
-              .getSeq());
+      msa[i] = new jalview.datamodel.Sequence(seqs[i].getId(),
+              seqs[i].getSeq());
     }
 
     return msa;
@@ -561,16 +547,17 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
                 && jobs[j].hasResults())
         {
           results++;
-          vamsas.objects.simple.Alignment valign = ((SeqSearchResult) ((SeqSearchWSJob)jobs[j]).result)
+          vamsas.objects.simple.Alignment valign = ((SeqSearchResult) ((SeqSearchWSJob) jobs[j]).result)
                   .getAlignment();
           if (valign != null)
           {
-            wsInfo.appendProgressText(jobs[j].getJobnum(),
-                    "\nAlignment Object Method Notes\n");
+            wsInfo.appendProgressText(jobs[j].getJobnum(), MessageManager
+                    .getString("info.alignment_object_method_notes"));
             String[] lines = valign.getMethod();
             for (int line = 0; line < lines.length; line++)
             {
-              wsInfo.appendProgressText(jobs[j].getJobnum(), lines[line] + "\n");
+              wsInfo.appendProgressText(jobs[j].getJobnum(), lines[line]
+                      + "\n");
             }
             // JBPNote The returned files from a webservice could be
             // hidden behind icons in the monitor window that,
@@ -665,7 +652,8 @@ class SeqSearchWSThread extends JWS1Thread implements WSClientI
               AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
       if (nf != null)
       {
-        af.ShowNewickTree(nf, "Tree from " + this.alTitle);
+        af.ShowNewickTree(nf, MessageManager.formatMessage(
+                "label.tree_from", new String[] { this.alTitle }));
       }
       // initialise with same renderer settings as in parent alignframe.
       af.getFeatureRenderer().transferSettings(this.featureSettings);