X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws1%2FJPredClient.java;h=cc73d2473bb291f863e152cf8420481d6dbb63dd;hb=cb8e52fbbc5f725e3f7f48c672cdddb0690bd978;hp=8fff195e84c72f7038543e4035e96aa1330e0e71;hpb=8a6fa9ea9900d0f106529c3f6283e7f9d76dd2cb;p=jalview.git diff --git a/src/jalview/ws/jws1/JPredClient.java b/src/jalview/ws/jws1/JPredClient.java index 8fff195..cc73d24 100644 --- a/src/jalview/ws/jws1/JPredClient.java +++ b/src/jalview/ws/jws1/JPredClient.java @@ -1,33 +1,49 @@ /* - * 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-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 . + * 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; +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; @@ -99,33 +114,7 @@ public class JPredClient extends WS1Client if (viewonly) { - int[] viscontigs = alview.getVisibleContigs(); - int spos = 0; - int i = 0; - if (viscontigs != null) - { - // Construct the delMap - mapping from the positions within the input to - // Jnet to the contigs in the original sequence - - delMap = new int[seq.getEnd() - seq.getStart() + 1]; - int gapMap[] = seq.gapMap(); - for (int contig = 0; contig < viscontigs.length; contig += 2) - { - - while (spos < gapMap.length && gapMap[spos] < viscontigs[contig]) - { - spos++; - } - while (spos < gapMap.length - && gapMap[spos] <= viscontigs[contig + 1]) - { - delMap[i++] = spos++; - } - } - int tmap[] = new int[i]; - System.arraycopy(delMap, 0, tmap, 0, i); - delMap = tmap; - } + delMap = alview.getVisibleContigMapFor(seq.gapMap()); } if (msa && msf.length > 1) { @@ -166,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 " @@ -196,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; } @@ -249,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++) { @@ -285,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 @@ -307,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; } @@ -333,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); } @@ -348,6 +343,7 @@ public class JPredClient extends WS1Client return server; } + @Override public void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle sh, final AlignFrame af) { @@ -355,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 {