X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=4b9b5a455af07407ce411f5306b484c3b726e480;hb=865a855a4ca87eadb3e5ff284ed32ed307d9c34b;hp=e43f82c8455ea4cce88eeb48ed3b20b6a79cc1d5;hpb=d6509fcf3a8cc90616e18cb22cec97f85c722bb8;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index e43f82c..4b9b5a4 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -1,19 +1,20 @@ /* - * 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.0b1) + * 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. - * + * * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.gui; @@ -25,16 +26,14 @@ 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.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 @@ -142,6 +141,7 @@ public class SequenceFetcher extends JPanel implements Runnable Thread sf = new Thread(new Runnable() { + @Override public void run() { if (getSequenceFetcherSingleton(guiWindow) != null) @@ -152,6 +152,7 @@ public class SequenceFetcher extends JPanel implements Runnable { javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JOptionPane @@ -236,6 +237,7 @@ public class SequenceFetcher extends JPanel implements Runnable ok.setText("OK"); ok.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { ok_actionPerformed(); @@ -244,6 +246,7 @@ public class SequenceFetcher extends JPanel implements Runnable clear.setText("Clear"); clear.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { clear_actionPerformed(); @@ -253,6 +256,7 @@ public class SequenceFetcher extends JPanel implements Runnable example.setText("Example"); example.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { example_actionPerformed(); @@ -261,6 +265,7 @@ public class SequenceFetcher extends JPanel implements Runnable close.setText("Close"); close.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { close_actionPerformed(e); @@ -270,6 +275,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 +295,7 @@ public class SequenceFetcher extends JPanel implements Runnable database.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { try @@ -299,8 +306,9 @@ public class SequenceFetcher extends JPanel implements Runnable + " others)" : "")); String eq = database.getExampleQueries(); dbeg.setText("Example query: " + eq); - boolean enablePunct=!(eq != null && eq.indexOf(",") > -1); - for (DbSourceProxy dbs:database.getSelectedSources()) { + 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 +407,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 +419,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 +461,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() @@ -565,6 +576,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 +651,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 +662,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 +681,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("Finished querying", Thread.currentThread() + .hashCode()); } - guiWindow.setProgressBar((presult.size()>0) ? "Parsing results.":"Processing ..", Thread.currentThread().hashCode()); + guiWindow.setProgressBar((presult.size() > 0) ? "Parsing results." + : "Processing ..", Thread.currentThread().hashCode()); // process results while (presult.size() > 0) { @@ -673,14 +704,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"); } @@ -809,6 +840,7 @@ public class SequenceFetcher extends JPanel implements Runnable resetDialog(); javax.swing.SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JOptionPane.showInternalMessageDialog(Desktop.desktop, error,