X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=faebb1a76d2cd34b395337a7caec5ca52889c63c;hb=8f2bef6f91e7a6e47e41e78a82f45f7e406ef90a;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
*/