JAL-3949 - refactor logging from jalview.bin.Cache to jalview.bin.Console
[jalview.git] / src / jalview / ws / jws1 / JPredClient.java
index b429c97..cc73d24 100644 (file)
@@ -1,33 +1,49 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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.Locale;
+
+import jalview.analysis.AlignSeq;
+import jalview.bin.Console;
+import jalview.datamodel.AlignmentView;
+import jalview.datamodel.SeqCigar;
+import jalview.datamodel.SequenceI;
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
+import jalview.gui.WebserviceInfo;
+import jalview.util.MessageManager;
+
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.*;
+import java.util.Hashtable;
 
-import javax.swing.*;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
 
-import ext.vamsas.*;
-import jalview.analysis.*;
-import jalview.bin.*;
-import jalview.datamodel.*;
-import jalview.gui.*;
+import ext.vamsas.Jpred;
+import ext.vamsas.JpredServiceLocator;
+import ext.vamsas.JpredSoapBindingStub;
+import ext.vamsas.ServiceHandle;
 
 public class JPredClient extends WS1Client
 {
@@ -45,9 +61,8 @@ public class JPredClient extends WS1Client
    * @param viewonly
    *          TODO
    */
-  public JPredClient(ext.vamsas.ServiceHandle sh, String title,
-          boolean msa, AlignmentView alview, AlignFrame parentFrame,
-          boolean viewonly)
+  public JPredClient(ext.vamsas.ServiceHandle sh, String title, boolean msa,
+          AlignmentView alview, AlignFrame parentFrame, boolean viewonly)
   {
     super();
     wsInfo = setWebService(sh);
@@ -86,7 +101,7 @@ public class JPredClient extends WS1Client
     Jpred server = locateWebService();
     if (server == null)
     {
-      Cache.log.warn("Couldn't find a Jpred webservice to invoke!");
+      Console.warn("Couldn't find a Jpred webservice to invoke!");
       return;
     }
     SeqCigar[] msf = null;
@@ -140,8 +155,8 @@ public class JPredClient extends WS1Client
     {
       if (!msa && msf.length > 1)
       {
-        throw new Error(
-                "Implementation Error! Multiple single sequence prediction jobs are not yet supported.");
+        throw new Error(MessageManager.getString(
+                "error.implementation_error_multiple_single_sequence_prediction_jobs_not_supported"));
       }
 
       String altitle = getPredictionName(WebServiceName) + " for "
@@ -170,8 +185,8 @@ public class JPredClient extends WS1Client
 
   private String getPredictionName(String webServiceName)
   {
-    if (webServiceName.toLowerCase().indexOf(
-            "secondary structure prediction") > -1)
+    if (webServiceName.toLowerCase(Locale.ROOT)
+            .indexOf("secondary structure prediction") > -1)
     {
       return webServiceName;
     }
@@ -223,12 +238,13 @@ public class JPredClient extends WS1Client
 
     SequenceI seq = msf[0];
 
-    String altitle = "JNet prediction on " + seq.getName()
+    String altitle = "JPred prediction on " + seq.getName()
             + " using alignment from " + title;
 
     wsInfo.setProgressText("Job details for MSA based prediction (" + title
             + ") on sequence :\n>" + seq.getName() + "\n"
-            + AlignSeq.extractGaps("-. ", seq.getSequenceAsString()) + "\n");
+            + AlignSeq.extractGaps("-. ", seq.getSequenceAsString())
+            + "\n");
     SequenceI aln[] = new SequenceI[msf.length];
     for (int i = 0, j = msf.length; i < j; i++)
     {
@@ -259,8 +275,9 @@ public class JPredClient extends WS1Client
     }
     wsInfo.setProgressText("Job details for prediction on sequence :\n>"
             + seq.getName() + "\n"
-            + AlignSeq.extractGaps("-. ", seq.getSequenceAsString()) + "\n");
-    String altitle = "JNet prediction for sequence " + seq.getName()
+            + AlignSeq.extractGaps("-. ", seq.getSequenceAsString())
+            + "\n");
+    String altitle = "JPred prediction for sequence " + seq.getName()
             + " from " + title;
 
     Hashtable SequenceInfo = jalview.analysis.SeqsetUtils
@@ -281,14 +298,15 @@ public class JPredClient extends WS1Client
   private WebserviceInfo setWebService()
   {
     WebServiceName = "JNetWS";
-    WebServiceJobTitle = "JNet secondary structure prediction";
+    WebServiceJobTitle = MessageManager
+            .getString("label.jnet_secondary_structure_prediction");
     WebServiceReference = "\"Cuff J. A and Barton G.J (2000) Application of "
             + "multiple sequence alignment profiles to improve protein secondary structure prediction, "
             + "Proteins 40:502-511\".";
     WsURL = "http://www.compbio.dundee.ac.uk/JalviewWS/services/jpred";
 
     WebserviceInfo wsInfo = new WebserviceInfo(WebServiceJobTitle,
-            WebServiceReference);
+            WebServiceReference, true);
 
     return wsInfo;
   }
@@ -307,14 +325,17 @@ public class JPredClient extends WS1Client
 
     } catch (Exception ex)
     {
-      JOptionPane.showMessageDialog(Desktop.desktop,
-              "The Secondary Structure Prediction Service named "
-                      + WebServiceName + " at " + WsURL
-                      + " couldn't be located.", "Internal Jalview Error",
-              JOptionPane.WARNING_MESSAGE);
-      wsInfo.setProgressText("Serious! " + WebServiceName
-              + " Service location failed\nfor URL :" + WsURL + "\n"
-              + ex.getMessage());
+      JvOptionPane.showMessageDialog(Desktop.desktop,
+              MessageManager.formatMessage(
+                      "label.secondary_structure_prediction_service_couldnt_be_located",
+                      new String[]
+                      { WebServiceName, WsURL }),
+              MessageManager.getString("label.internal_jalview_error"),
+              JvOptionPane.WARNING_MESSAGE);
+      wsInfo.setProgressText(MessageManager.formatMessage(
+              "label.secondary_structure_prediction_service_couldnt_be_located",
+              new String[]
+              { WebServiceName, WsURL }) + "\n" + ex.getMessage());
       wsInfo.setStatus(WebserviceInfo.STATE_STOPPED_SERVERERROR);
 
     }
@@ -322,6 +343,7 @@ public class JPredClient extends WS1Client
     return server;
   }
 
+  @Override
   public void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle sh,
           final AlignFrame af)
   {
@@ -329,14 +351,15 @@ public class JPredClient extends WS1Client
     method.setToolTipText(sh.getEndpointURL());
     method.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         AlignmentView msa = af.gatherSeqOrMsaForSecStrPrediction();
         if (msa.getSequences().length == 1)
         {
           // Single Sequence prediction
-          new jalview.ws.jws1.JPredClient(sh, af.getTitle(), false, msa,
-                  af, true);
+          new jalview.ws.jws1.JPredClient(sh, af.getTitle(), false, msa, af,
+                  true);
         }
         else
         {