X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=af4aa674e04e01e01d36fa7662b4a4d65a25d0cf;hb=ad15cff29620f960119f80176f1fd443da9f6763;hp=e43f82c8455ea4cce88eeb48ed3b20b6a79cc1d5;hpb=d6509fcf3a8cc90616e18cb22cec97f85c722bb8;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index e43f82c..af4aa67 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.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-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.gui; @@ -25,16 +28,15 @@ import java.awt.event.*; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.MutableTreeNode; -import javax.swing.tree.TreeModel; + +import com.stevesoft.pat.Regex; import jalview.datamodel.*; import jalview.io.*; import jalview.util.DBRefUtils; +import jalview.util.MessageManager; import jalview.ws.dbsources.das.api.DasSourceRegistryI; import jalview.ws.seqfetcher.DbSourceProxy; -import jalview.ws.seqfetcher.DbSourceProxyImpl; - import java.awt.BorderLayout; public class SequenceFetcher extends JPanel implements Runnable @@ -76,7 +78,7 @@ public class SequenceFetcher extends JPanel implements Runnable if (guiWindow != null) { guiWindow.setProgressBar( - "Waiting for Sequence Database Fetchers to initialise", + MessageManager.getString("status.waiting_sequence_database_fetchers_init"), Thread.currentThread().hashCode()); } // initting happening on another thread - so wait around to see if it @@ -95,7 +97,7 @@ public class SequenceFetcher extends JPanel implements Runnable if (guiWindow != null) { guiWindow.setProgressBar( - "Waiting for Sequence Database Fetchers to initialise", + MessageManager.getString("status.waiting_sequence_database_fetchers_init"), Thread.currentThread().hashCode()); } } @@ -113,7 +115,7 @@ public class SequenceFetcher extends JPanel implements Runnable */ if (guiWindow != null) { - guiWindow.setProgressBar("Initialising Sequence Database Fetchers", + guiWindow.setProgressBar(MessageManager.getString("status.init_sequence_database_fetchers"), Thread.currentThread().hashCode()); } dasRegistry = jalview.bin.Cache.getDasSourceRegistry(); @@ -122,7 +124,7 @@ public class SequenceFetcher extends JPanel implements Runnable jalview.ws.SequenceFetcher sf = new jalview.ws.SequenceFetcher(); if (guiWindow != null) { - guiWindow.setProgressBar("Initialising Sequence Database Fetchers", + guiWindow.setProgressBar(MessageManager.getString("status.init_sequence_database_fetchers"), Thread.currentThread().hashCode()); } lastDasSourceRegistry = (dasRegistry.getDasRegistryURL() + dasRegistry @@ -142,6 +144,7 @@ public class SequenceFetcher extends JPanel implements Runnable Thread sf = new Thread(new Runnable() { + @Override public void run() { if (getSequenceFetcherSingleton(guiWindow) != null) @@ -152,13 +155,14 @@ public class SequenceFetcher extends JPanel implements Runnable { javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JOptionPane .showInternalMessageDialog( Desktop.desktop, - "Could not create the sequence fetcher client. Check error logs for details.", - "Couldn't create SequenceFetcher", + MessageManager.getString("warn.couldnt_create_sequence_fetcher_client"), + MessageManager.getString("label.couldnt_create_sequence_fetcher"), JOptionPane.ERROR_MESSAGE); } }); @@ -215,8 +219,7 @@ public class SequenceFetcher extends JPanel implements Runnable private String getFrameTitle() { - return ((alignFrame == null) ? "New " : "Additional ") - + "Sequence Fetcher"; + return ((alignFrame == null) ? MessageManager.getString("label.new_sequence_fetcher") : MessageManager.getString("label.additional_sequence_fetcher")); } private void jbInit() throws Exception @@ -227,40 +230,46 @@ public class SequenceFetcher extends JPanel implements Runnable dbeg.setFont(new java.awt.Font("Verdana", Font.BOLD, 11)); jLabel1.setFont(new java.awt.Font("Verdana", Font.ITALIC, 11)); jLabel1.setHorizontalAlignment(SwingConstants.CENTER); - jLabel1.setText("Separate multiple accession ids with semi colon \";\""); + jLabel1.setText(MessageManager + .getString("label.separate_multiple_accession_ids")); replacePunctuation.setHorizontalAlignment(SwingConstants.CENTER); replacePunctuation .setFont(new java.awt.Font("Verdana", Font.ITALIC, 11)); - replacePunctuation.setText("Replace commas with semi-colons"); - ok.setText("OK"); + replacePunctuation.setText(MessageManager + .getString("label.replace_commas_semicolons")); + ok.setText(MessageManager.getString("action.ok")); ok.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { ok_actionPerformed(); } }); - clear.setText("Clear"); + clear.setText(MessageManager.getString("action.clear")); clear.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { clear_actionPerformed(); } }); - example.setText("Example"); + example.setText(MessageManager.getString("label.example")); example.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { example_actionPerformed(); } }); - close.setText("Close"); + close.setText(MessageManager.getString("action.close")); close.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { close_actionPerformed(e); @@ -270,6 +279,7 @@ public class SequenceFetcher extends JPanel implements Runnable textArea.setLineWrap(true); textArea.addKeyListener(new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) @@ -289,6 +299,7 @@ public class SequenceFetcher extends JPanel implements Runnable database.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { try @@ -298,9 +309,12 @@ public class SequenceFetcher extends JPanel implements Runnable + database.getSelectedSources().size() + " others)" : "")); String eq = database.getExampleQueries(); - dbeg.setText("Example query: " + eq); - boolean enablePunct=!(eq != null && eq.indexOf(",") > -1); - for (DbSourceProxy dbs:database.getSelectedSources()) { + dbeg.setText(MessageManager.formatMessage( + "label.example_query_param", new String[] + { eq })); + boolean enablePunct = !(eq != null && eq.indexOf(",") > -1); + for (DbSourceProxy dbs : database.getSelectedSources()) + { if (dbs instanceof jalview.ws.dbsources.das.datamodel.DasSequenceSource) { enablePunct = false; @@ -399,7 +413,8 @@ public class SequenceFetcher extends JPanel implements Runnable public void ok_actionPerformed() { - database.setEnabled(false); + databaseButt.setEnabled(false); + example.setEnabled(false); textArea.setEnabled(false); ok.setEnabled(false); close.setEnabled(false); @@ -410,12 +425,14 @@ public class SequenceFetcher extends JPanel implements Runnable private void resetDialog() { - database.setEnabled(true); + databaseButt.setEnabled(true); + example.setEnabled(true); textArea.setEnabled(true); ok.setEnabled(true); close.setEnabled(true); } + @Override public void run() { String error = ""; @@ -450,7 +467,7 @@ public class SequenceFetcher extends JPanel implements Runnable return; } // indicate if successive sources should be merged into one alignment. - boolean addToLast=false; + boolean addToLast = false; ArrayList aresultq = new ArrayList(), presultTitle = new ArrayList(); ArrayList presult = new ArrayList(), aresult = new ArrayList(); Iterator proxies = database.getSelectedSources() @@ -476,8 +493,7 @@ public class SequenceFetcher extends JPanel implements Runnable try { // update status - guiWindow.setProgressBar("Fetching " + nqueries - + " sequence queries from " + proxy.getDbName(), Thread + guiWindow.setProgressBar(MessageManager.formatMessage("status.fetching_sequence_queries_from", new String[]{Integer.valueOf(nqueries).toString(),proxy.getDbName()}), Thread .currentThread().hashCode()); isAliSource = proxy.isA(DBRefSource.ALIGNMENTDB); if (proxy.getAccessionSeparator() == null) @@ -565,6 +581,24 @@ public class SequenceFetcher extends JPanel implements Runnable { DBRefEntry dbr = new DBRefEntry(), found[] = null; dbr.setSource(proxy.getDbSource()); + dbr.setVersion(null); + if (proxy.getAccessionValidator() != null) + { + Regex vgr = proxy.getAccessionValidator(); + vgr.search(q); + if (vgr.numSubs() > 0) + { + dbr.setAccessionId(vgr.stringMatched(1)); + } + else + { + dbr.setAccessionId(vgr.stringMatched()); + } + } + else + { + dbr.setAccessionId(q); + } boolean rfound = false; for (int r = 0; r < rs.length; r++) { @@ -622,7 +656,7 @@ public class SequenceFetcher extends JPanel implements Runnable AlignmentI ar = null; if (isAliSource) { - addToLast=false; + addToLast = false; // new window for each result while (aresult.size() > 0) { @@ -633,11 +667,11 @@ public class SequenceFetcher extends JPanel implements Runnable } else { - String titl=null; - if (addToLast && presult.size()>0) + String titl = null; + if (addToLast && presult.size() > 0) { - ar=presult.remove(presult.size()-1); - titl=presultTitle.remove(presultTitle.size()-1); + ar = presult.remove(presult.size() - 1); + titl = presultTitle.remove(presultTitle.size() - 1); } // concatenate all results in one window while (aresult.size() > 0) @@ -652,14 +686,16 @@ public class SequenceFetcher extends JPanel implements Runnable } ; } - addToLast=true; + addToLast = true; presult.add(ar); presultTitle.add(titl); } } - guiWindow.setProgressBar("Finished querying", Thread.currentThread().hashCode()); + guiWindow.setProgressBar(MessageManager.getString("status.finshed_querying"), Thread.currentThread() + .hashCode()); } - guiWindow.setProgressBar((presult.size()>0) ? "Parsing results.":"Processing ..", Thread.currentThread().hashCode()); + guiWindow.setProgressBar((presult.size() > 0) ? MessageManager.getString("status.parsing_results") + : MessageManager.getString("status.processing"), Thread.currentThread().hashCode()); // process results while (presult.size() > 0) { @@ -673,14 +709,14 @@ public class SequenceFetcher extends JPanel implements Runnable sb.append("Didn't retrieve the following " + (nextfetch.size() == 1 ? "query" : nextfetch.size() + " queries") + ": \n"); - int l = sb.length(),lr=0; + int l = sb.length(), lr = 0; for (String s : nextfetch) { if (l != sb.length()) { sb.append("; "); } - if (lr-sb.length()>40) + if (lr - sb.length() > 40) { sb.append("\n"); } @@ -772,7 +808,8 @@ public class SequenceFetcher extends JPanel implements Runnable Desktop.addInternalFrame(af, title, AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); - af.statusBar.setText("Successfully pasted alignment file"); + af.statusBar.setText(MessageManager + .getString("label.successfully_pasted_alignment_file")); try { @@ -809,10 +846,12 @@ public class SequenceFetcher extends JPanel implements Runnable resetDialog(); javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JOptionPane.showInternalMessageDialog(Desktop.desktop, error, - "Error Retrieving Data", JOptionPane.WARNING_MESSAGE); + MessageManager.getString("label.error_retrieving_data"), + JOptionPane.WARNING_MESSAGE); } }); }