X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=bbe2f68da9860f500215db3e2fce5304fa644c1a;hb=37de9310bec3501cbc6381e0c3dcb282fcaad812;hp=e25991335d3edd7167ccc2d4ccfd64f8105a09dd;hpb=32f233c6bf8f0715e35f1b6ed6025f7c30aa8573;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index e259913..bbe2f68 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -116,8 +116,6 @@ public class SequenceFetcher extends JPanel implements Runnable private static Thread initingThread = null; - int debounceTrap = 0; - public JTextArea getTextArea() { return textArea; @@ -169,9 +167,8 @@ public class SequenceFetcher extends JPanel implements Runnable if (sfetch == null || dasRegistry != Cache.getDasSourceRegistry() || lastDasSourceRegistry != (Cache.getDasSourceRegistry() - .getDasRegistryURL() + Cache - .getDasSourceRegistry().getLocalSourceString()) - .hashCode()) + .getDasRegistryURL() + Cache.getDasSourceRegistry() + .getLocalSourceString()).hashCode()) { _initingFetcher = true; initingThread = Thread.currentThread(); @@ -202,7 +199,8 @@ public class SequenceFetcher extends JPanel implements Runnable } private IProgressIndicator progressIndicator; - private boolean _isConstructing=false; + + private volatile boolean _isConstructing = false; private List newAlframes = null; @@ -214,7 +212,7 @@ public class SequenceFetcher extends JPanel implements Runnable public SequenceFetcher(IProgressIndicator guiIndic, final String selectedDb, final String queryString) { - this._isConstructing=true; + this._isConstructing = true; this.progressIndicator = guiIndic; final SequenceFetcher us = this; // launch initialiser thread @@ -227,7 +225,7 @@ public class SequenceFetcher extends JPanel implements Runnable if (getSequenceFetcherSingleton(progressIndicator) != null) { us.initGui(progressIndicator, selectedDb, queryString); - us._isConstructing=false; + us._isConstructing = false; } else { @@ -253,20 +251,26 @@ public class SequenceFetcher extends JPanel implements Runnable }); sf.start(); } + /** - * blocking call which creates a new sequence fetcher panel, configures it and presses the OK button with the given database and query. + * blocking call which creates a new sequence fetcher panel, configures it and + * presses the OK button with the given database and query. + * * @param database * @param query */ public static List fetchAndShow(String database, String query) { - final SequenceFetcher sf = new SequenceFetcher(Desktop.instance, database, query); + final SequenceFetcher sf = new SequenceFetcher(Desktop.instance, + database, query); while (sf._isConstructing) { - try { Thread.sleep(50); + try + { + Thread.sleep(50); } catch (Exception q) { - return Collections.EMPTY_LIST; + return Collections.emptyList(); } } sf.newAlframes = new ArrayList(); @@ -283,7 +287,7 @@ public class SequenceFetcher extends JPanel implements Runnable { }; - + /** * initialise the database and query for this fetcher panel * @@ -302,13 +306,21 @@ public class SequenceFetcher extends JPanel implements Runnable try { List sp = sfetch.getSourceProxy(selectedDb); - if (sp == null || sp.size() != 1) + for (DbSourceProxy sourcep : sp) + { + if (sourcep.getTier() == 0) + { + database.selection = Arrays + .asList(new DbSourceProxy[] { sourcep }); + break; + } + } + if (database.selection == null || database.selection.size() == 0) { System.err.println("Ignoring fetch parameter db='" + selectedDb + "'"); return false; } - database.selection = sp; textArea.setText(queryString); } catch (Exception q) { @@ -444,7 +456,6 @@ public class SequenceFetcher extends JPanel implements Runnable jPanel1.add(example); jPanel1.add(clear); jPanel1.add(close); - jPanel3.add(jPanel2, java.awt.BorderLayout.CENTER); jPanel2.setLayout(borderLayout3); databaseButt = /*database.getDatabaseSelectorButton(); final JButton viewdbs =*/new JButton( @@ -465,7 +476,6 @@ public class SequenceFetcher extends JPanel implements Runnable @Override public void actionPerformed(ActionEvent e) { - debounceTrap++; String currentSelection = database.getSelectedItem(); if (currentSelection == null) { @@ -474,13 +484,11 @@ public class SequenceFetcher extends JPanel implements Runnable showPanel(); - if (currentSelection.equalsIgnoreCase("pdb") - && (database.action == KeyEvent.VK_ENTER || ((debounceTrap % 2) == 0))) + if ("pdb".equalsIgnoreCase(currentSelection)) { pdbSourceAction(); } - else if (currentSelection.equalsIgnoreCase("uniprot") - && (database.action == KeyEvent.VK_ENTER || ((debounceTrap % 2) == 0))) + else if ("uniprot".equalsIgnoreCase(currentSelection)) { uniprotSourceAction(); } @@ -520,6 +528,7 @@ public class SequenceFetcher extends JPanel implements Runnable new UniprotFTSPanel(this); frame.dispose(); } + private void otherSourceAction() { try @@ -909,8 +918,8 @@ public class SequenceFetcher extends JPanel implements Runnable } catch (Exception e) { Cache.log.info( - "Error retrieving " + accession - + " from " + proxy.getDbName(), e); + "Error retrieving " + accession + " from " + + proxy.getDbName(), e); } return success; } @@ -1029,8 +1038,7 @@ public class SequenceFetcher extends JPanel implements Runnable try { - af.setMaximum(Cache.getDefault("SHOW_FULLSCREEN", - false)); + af.setMaximum(Cache.getDefault("SHOW_FULLSCREEN", false)); } catch (Exception ex) { }