X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=fc6fb0d0a27d856d8a5dd0e40bac43aaa48b45d3;hb=e24933a537e0f640c75d4685c468615872bc77fc;hp=2f4ace389c67435ea503c1e3098731f0e2a0f982;hpb=f09bee67bc24f1e401b4834f8ecb14812620568c;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index 2f4ace3..fc6fb0d 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,10 +20,8 @@ */ package jalview.gui; -import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefEntry; -import jalview.datamodel.DBRefSource; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.io.FormatAdapter; @@ -55,8 +53,6 @@ import javax.swing.JTextArea; import javax.swing.SwingConstants; import javax.swing.tree.DefaultMutableTreeNode; -import com.stevesoft.pat.Regex; - public class SequenceFetcher extends JPanel implements Runnable { JLabel dbeg = new JLabel(); @@ -116,6 +112,7 @@ public class SequenceFetcher extends JPanel implements Runnable private static Thread initingThread = null; int debounceTrap = 0; + /** * Blocking method that initialises and returns the shared instance of the * SequenceFetcher client @@ -131,9 +128,11 @@ public class SequenceFetcher extends JPanel implements Runnable { if (guiWindow != null) { - guiWindow.setProgressBar( - MessageManager.getString("status.waiting_sequence_database_fetchers_init"), - Thread.currentThread().hashCode()); + guiWindow + .setProgressBar( + MessageManager + .getString("status.waiting_sequence_database_fetchers_init"), + Thread.currentThread().hashCode()); } // initting happening on another thread - so wait around to see if it // finishes. @@ -150,9 +149,11 @@ public class SequenceFetcher extends JPanel implements Runnable } if (guiWindow != null) { - guiWindow.setProgressBar( - MessageManager.getString("status.waiting_sequence_database_fetchers_init"), - Thread.currentThread().hashCode()); + guiWindow + .setProgressBar( + MessageManager + .getString("status.waiting_sequence_database_fetchers_init"), + Thread.currentThread().hashCode()); } } if (sfetch == null @@ -169,7 +170,8 @@ public class SequenceFetcher extends JPanel implements Runnable */ if (guiWindow != null) { - guiWindow.setProgressBar(MessageManager.getString("status.init_sequence_database_fetchers"), + guiWindow.setProgressBar(MessageManager + .getString("status.init_sequence_database_fetchers"), Thread.currentThread().hashCode()); } dasRegistry = jalview.bin.Cache.getDasSourceRegistry(); @@ -178,8 +180,7 @@ public class SequenceFetcher extends JPanel implements Runnable jalview.ws.SequenceFetcher sf = new jalview.ws.SequenceFetcher(); if (guiWindow != null) { - guiWindow.setProgressBar(MessageManager.getString("status.init_sequence_database_fetchers"), - Thread.currentThread().hashCode()); + guiWindow.setProgressBar(null, Thread.currentThread().hashCode()); } lastDasSourceRegistry = (dasRegistry.getDasRegistryURL() + dasRegistry .getLocalSourceString()).hashCode(); @@ -190,9 +191,11 @@ public class SequenceFetcher extends JPanel implements Runnable return sfetch; } + private IProgressIndicator progressIndicator; + public SequenceFetcher(IProgressIndicator guiIndic) { - final IProgressIndicator guiWindow = guiIndic; + this.progressIndicator = guiIndic; final SequenceFetcher us = this; // launch initialiser thread Thread sf = new Thread(new Runnable() @@ -201,9 +204,9 @@ public class SequenceFetcher extends JPanel implements Runnable @Override public void run() { - if (getSequenceFetcherSingleton(guiWindow) != null) + if (getSequenceFetcherSingleton(progressIndicator) != null) { - us.initGui(guiWindow); + us.initGui(progressIndicator); } else { @@ -215,8 +218,10 @@ public class SequenceFetcher extends JPanel implements Runnable JOptionPane .showInternalMessageDialog( Desktop.desktop, - MessageManager.getString("warn.couldnt_create_sequence_fetcher_client"), - MessageManager.getString("label.couldnt_create_sequence_fetcher"), + MessageManager + .getString("warn.couldnt_create_sequence_fetcher_client"), + MessageManager + .getString("label.couldnt_create_sequence_fetcher"), JOptionPane.ERROR_MESSAGE); } }); @@ -273,7 +278,9 @@ public class SequenceFetcher extends JPanel implements Runnable private String getFrameTitle() { - return ((alignFrame == null) ? MessageManager.getString("label.new_sequence_fetcher") : MessageManager.getString("label.additional_sequence_fetcher")); + return ((alignFrame == null) ? MessageManager + .getString("label.new_sequence_fetcher") : MessageManager + .getString("label.additional_sequence_fetcher")); } private void jbInit() throws Exception @@ -359,18 +366,19 @@ public class SequenceFetcher extends JPanel implements Runnable { debounceTrap++; String currentSelection = database.getSelectedItem(); - if (!currentSelection.equalsIgnoreCase("pdb")) { - otherSourceAction(); + otherSourceAction(); } - if (currentSelection.equalsIgnoreCase("pdb") && ((debounceTrap % 2) == 0)) + if (currentSelection.equalsIgnoreCase("pdb") + && (database.action == KeyEvent.VK_ENTER || ((debounceTrap % 2) == 0))) { pdbSourceAction(); } - + database.action = -1; } }); + dbeg.setText(""); jPanel2.add(databaseButt, java.awt.BorderLayout.NORTH); jPanel2.add(dbeg, java.awt.BorderLayout.CENTER); @@ -390,7 +398,7 @@ public class SequenceFetcher extends JPanel implements Runnable private void pdbSourceAction() { databaseButt.setText(database.getSelectedItem()); - new EBIFetchPanel(this); + new PDBSearchPanel(this); frame.dispose(); } @@ -404,8 +412,7 @@ public class SequenceFetcher extends JPanel implements Runnable : "")); String eq = database.getExampleQueries(); dbeg.setText(MessageManager.formatMessage( - "label.example_query_param", new String[] - { eq })); + "label.example_query_param", new String[] { eq })); boolean enablePunct = !(eq != null && eq.indexOf(",") > -1); for (DbSourceProxy dbs : database.getSelectedSources()) { @@ -443,8 +450,6 @@ public class SequenceFetcher extends JPanel implements Runnable jPanel3.repaint(); } - - public void close_actionPerformed(ActionEvent e) { try @@ -510,6 +515,7 @@ public class SequenceFetcher extends JPanel implements Runnable resetDialog(); return; } + // TODO: Refactor to GUI independent code and write tests. // indicate if successive sources should be merged into one alignment. boolean addToLast = false; ArrayList aresultq = new ArrayList(), presultTitle = new ArrayList(); @@ -537,9 +543,14 @@ public class SequenceFetcher extends JPanel implements Runnable try { // update status - 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); + guiWindow + .setProgressBar(MessageManager.formatMessage( + "status.fetching_sequence_queries_from", + new String[] { + Integer.valueOf(nqueries).toString(), + proxy.getDbName() }), Thread.currentThread() + .hashCode()); + isAliSource = proxy.isAlignmentSource(); if (proxy.getAccessionSeparator() == null) { while (en.hasNext()) @@ -626,34 +637,19 @@ 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); - } + String accId = proxy.getAccessionIdFromQuery(q); + dbr.setAccessionId(accId); boolean rfound = false; for (int r = 0; r < rs.length; r++) { - if (rs[r] != null - && (found = DBRefUtils.searchRefs( - rs[r].getDBRef(), dbr)) != null - && found.length > 0) + if (rs[r] != null) { - rfound = true; - rs[r] = null; - continue; + found = DBRefUtils.searchRefs(rs[r].getDBRefs(), accId); + if (found != null && found.length > 0) + { + rfound = true; + rs[r] = null; + } } } if (!rfound) @@ -735,11 +731,15 @@ public class SequenceFetcher extends JPanel implements Runnable presultTitle.add(titl); } } - guiWindow.setProgressBar(MessageManager.getString("status.finshed_querying"), Thread.currentThread() + guiWindow.setProgressBar(MessageManager + .getString("status.finshed_querying"), Thread.currentThread() .hashCode()); } - guiWindow.setProgressBar((presult.size() > 0) ? MessageManager.getString("status.parsing_results") - : MessageManager.getString("status.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) { @@ -773,8 +773,8 @@ public class SequenceFetcher extends JPanel implements Runnable AlignmentI parseResult(String result, String title) { - String format = new IdentifyFile().Identify(result, "Paste"); - Alignment sequences = null; + String format = new IdentifyFile().identify(result, "Paste"); + AlignmentI sequences = null; if (FormatAdapter.isValidFormat(format)) { sequences = null; @@ -816,6 +816,10 @@ public class SequenceFetcher extends JPanel implements Runnable if (al != null && al.getHeight() > 0) { + if (title == null) + { + title = getDefaultRetrievalTitle(); + } if (alignFrame == null) { AlignFrame af = new AlignFrame(al, AlignFrame.DEFAULT_WIDTH, @@ -828,10 +832,6 @@ public class SequenceFetcher extends JPanel implements Runnable // Alignments? } - if (title == null) - { - title = getDefaultRetrievalTitle(); - } SequenceFeature[] sfs = null; List alsqs; synchronized (alsqs = al.getSequences()) @@ -865,21 +865,7 @@ public class SequenceFetcher extends JPanel implements Runnable } else { - for (int i = 0; i < al.getHeight(); i++) - { - alignFrame.viewport.getAlignment().addSequence( - al.getSequenceAt(i)); // this - // also - // creates - // dataset - // sequence - // entries - } - alignFrame.viewport.setEndSeq(alignFrame.viewport.getAlignment() - .getHeight()); - alignFrame.viewport.getAlignment().getWidth(); - alignFrame.viewport.firePropertyChange("alignment", null, - alignFrame.viewport.getAlignment().getSequences()); + alignFrame.viewport.addAlignment(al, title); } } return al; @@ -899,4 +885,14 @@ public class SequenceFetcher extends JPanel implements Runnable } }); } + + public IProgressIndicator getProgressIndicator() + { + return progressIndicator; + } + + public void setProgressIndicator(IProgressIndicator progressIndicator) + { + this.progressIndicator = progressIndicator; + } }