X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=faebb1a76d2cd34b395337a7caec5ca52889c63c;hb=46d6d8de867a35ce4082c3be437e5f5cdc31ba34;hp=9c51409ae83802cf809f05913ec995ebb727e9b8;hpb=f52f7b378972cc884b5d3e5cc250f89667f558f7;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index 9c51409..faebb1a 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -1,18 +1,18 @@ /* - * 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) + * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * * 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 + * 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 + * + * 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 . */ package jalview.gui; @@ -25,6 +25,9 @@ import java.awt.event.*; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; + +import com.stevesoft.pat.Regex; + import jalview.datamodel.*; import jalview.io.*; import jalview.util.DBRefUtils; @@ -58,7 +61,7 @@ public class SequenceFetcher extends JPanel implements Runnable /** * Blocking method that initialises and returns the shared instance of the * SequenceFetcher client - * + * * @param guiWindow * - where the initialisation delay message should be shown * @return the singleton instance of the sequence fetcher client @@ -179,7 +182,7 @@ public class SequenceFetcher extends JPanel implements Runnable /** * called by thread spawned by constructor - * + * * @param guiWindow */ private void initGui(IProgressIndicator guiWindow) @@ -302,8 +305,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; @@ -402,7 +406,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); @@ -413,7 +418,8 @@ 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); @@ -454,7 +460,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() @@ -569,6 +575,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++) { @@ -626,7 +650,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) { @@ -637,11 +661,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) @@ -656,14 +680,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) { @@ -677,14 +703,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"); } @@ -725,7 +751,7 @@ public class SequenceFetcher extends JPanel implements Runnable } /** - * + * * @return a standard title for any results retrieved using the currently * selected source and settings */