X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPDBSearchPanel.java;h=9b94c2713303272ee50925ab0adf39ee12cb8a66;hb=9b881d499996272c2a9063016836e9b5f6f66d60;hp=63c376136b11df14683819d637c5857538abdc5a;hpb=aa301778c8e8d9edc8889de2a6474dbb7575ab19;p=jalview.git diff --git a/src/jalview/gui/PDBSearchPanel.java b/src/jalview/gui/PDBSearchPanel.java index 63c3761..9b94c27 100644 --- a/src/jalview/gui/PDBSearchPanel.java +++ b/src/jalview/gui/PDBSearchPanel.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. * @@ -54,68 +54,77 @@ public class PDBSearchPanel extends GPDBSearchPanel .getProgressIndicator(); } - /** * Action performed when an input is detected on txt_search field. */ @Override public void txt_search_ActionPerformed() { - errorWarning.setLength(0); - lbl_warning.setVisible(false); - btn_ok.setEnabled(false); - boolean allowEmptySequence = false; - mainFrame.setTitle(MessageManager - .getString("label.pdb_sequence_getcher")); - tbl_summary.setModel(new DefaultTableModel()); - if (txt_search.getText().trim().length() > 0) + new Thread() { - long startTime = System.currentTimeMillis(); - - String searchTarget = ((PDBDocField) cmb_searchTarget - .getSelectedItem()).getCode(); - - wantedFields = PDBDocFieldPreferences - .getSearchSummaryFields(); - - String searchTerm = decodeSearchTerm(txt_search.getText(), - searchTarget); - - PDBRestRequest request = new PDBRestRequest(); - request.setAllowEmptySeq(allowEmptySequence); - request.setResponseSize(100); - request.setFieldToSearchBy("(" + searchTarget + ":"); - request.setSearchTerm(searchTerm + ")"); - request.setWantedFields(wantedFields); - // System.out.println(">>>>>>>>>>>>>> " + request.getQuery()); - PDBRestClient pdbRestCleint = new PDBRestClient(); - PDBRestResponse resultList; - try - { - resultList = pdbRestCleint.executeRequest(request); - } catch (Exception e) + @Override + public void run() { - // System.out.println(">>>>>>>>>>>>>>>" + e.getMessage()); - e.printStackTrace(); - errorWarning.append(e.getMessage()); - checkForErrors(); - return; - } + lbl_loading.setVisible(false); + errorWarning.setLength(0); + lbl_warning.setVisible(false); + btn_ok.setEnabled(false); + boolean allowEmptySequence = false; + mainFrame.setTitle(MessageManager + .getString("label.pdb_sequence_getcher")); + tbl_summary.setModel(new DefaultTableModel()); + if (txt_search.getText().trim().length() > 0) + { + lbl_loading.setVisible(true); + long startTime = System.currentTimeMillis(); - if (resultList.getSearchSummary() != null) - { - tbl_summary.setModel(PDBRestResponse.getTableModel(request, - resultList.getSearchSummary())); - } + String searchTarget = ((PDBDocField) cmb_searchTarget + .getSelectedItem()).getCode(); - long endTime = System.currentTimeMillis(); - int resultSetCount = resultList.getNumberOfItemsFound(); - String result = (resultSetCount > 1) ? MessageManager - .getString("label.results") : MessageManager - .getString("label.result"); - mainFrame.setTitle(frameTitle + " - " + resultSetCount + " " + result - + " (" + (endTime - startTime) + " milli secs)"); - } + wantedFields = PDBDocFieldPreferences.getSearchSummaryFields(); + + String searchTerm = decodeSearchTerm(txt_search.getText(), + searchTarget); + + PDBRestRequest request = new PDBRestRequest(); + request.setAllowEmptySeq(allowEmptySequence); + request.setResponseSize(100); + request.setFieldToSearchBy("(" + searchTarget + ":"); + request.setSearchTerm(searchTerm + ")"); + request.setWantedFields(wantedFields); + // System.out.println(">>>>>>>>>>>>>> " + request.getQuery()); + PDBRestClient pdbRestCleint = new PDBRestClient(); + PDBRestResponse resultList; + try + { + resultList = pdbRestCleint.executeRequest(request); + } catch (Exception e) + { + // e.printStackTrace(); + errorWarning.append(e.getMessage()); + checkForErrors(); + return; + } + + if (resultList.getSearchSummary() != null) + { + tbl_summary.setModel(PDBRestResponse.getTableModel(request, + resultList.getSearchSummary())); + } + + PDBRestResponse.configureTableColumn(tbl_summary, wantedFields); + + long endTime = System.currentTimeMillis(); + int resultSetCount = resultList.getNumberOfItemsFound(); + String result = (resultSetCount > 1) ? MessageManager + .getString("label.results") : MessageManager + .getString("label.result"); + mainFrame.setTitle(frameTitle + " - " + resultSetCount + " " + + result + " (" + (endTime - startTime) + " milli secs)"); + lbl_loading.setVisible(false); + } + } + }.start(); } public static String decodeSearchTerm(String enteredText, @@ -154,7 +163,6 @@ public class PDBSearchPanel extends GPDBSearchPanel return foundSearchTerms; } - @Override public void btn_ok_ActionPerformed() { @@ -174,6 +182,7 @@ public class PDBSearchPanel extends GPDBSearchPanel mainFrame.dispose(); } + @Override public void transferToSequenceFetcher(String ids) { // mainFrame.dispose(); @@ -188,6 +197,7 @@ public class PDBSearchPanel extends GPDBSearchPanel public void loadSelectedPDBSequencesToAlignment() { // mainFrame.dispose(); + disableActionButtons(); StringBuilder selectedIds = new StringBuilder(); HashSet selectedIdsSet = new HashSet(); int pdbIdCol = PDBRestClient.getPDBIdColumIndex(wantedFields, false); @@ -210,6 +220,36 @@ public class PDBSearchPanel extends GPDBSearchPanel seqFetcher.textArea.setText(ids); Thread worker = new Thread(seqFetcher); worker.start(); + delayAndEnableActionButtons(); + + } + + private void disableActionButtons() + { + btn_ok.setEnabled(false); + btn_back.setEnabled(false); + btn_cancel.setEnabled(false); + } + + private void delayAndEnableActionButtons() + { + new Thread() + { + @Override + public void run() + { + try + { + Thread.sleep(1500); + } catch (InterruptedException e) + { + e.printStackTrace(); + } + btn_ok.setEnabled(true); + btn_back.setEnabled(true); + btn_cancel.setEnabled(true); + } + }.start(); } public static String getPDBIdwithSpecifiedChain(String pdbId, @@ -241,6 +281,7 @@ public class PDBSearchPanel extends GPDBSearchPanel /** * Populates search target combo-box options */ + @Override public void populateCmbSearchTargetOptions() { List searchableTargets = new ArrayList(); @@ -273,6 +314,7 @@ public class PDBSearchPanel extends GPDBSearchPanel lbl_warning.setVisible(false); if (errorWarning.length() > 0) { + lbl_loading.setVisible(false); lbl_warning.setToolTipText(JvSwingUtils.wrapTooltip(true, errorWarning.toString())); lbl_warning.setVisible(true);