X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPDBSearchPanel.java;h=964a7d85178e09f7e9ba17fe7ed9332d0b5ad771;hb=bccb3f12a82f40bea6836bd7dcb4b45abd45b0be;hp=514406af7915713117f70e80eaff488863d5ec74;hpb=c9764f63ef34188eee34d2a6958efdc3d2f74e71;p=jalview.git diff --git a/src/jalview/gui/PDBSearchPanel.java b/src/jalview/gui/PDBSearchPanel.java index 514406a..964a7d8 100644 --- a/src/jalview/gui/PDBSearchPanel.java +++ b/src/jalview/gui/PDBSearchPanel.java @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.HashSet; import java.util.List; import javax.swing.table.DefaultTableModel; @@ -60,6 +61,9 @@ public class PDBSearchPanel extends GPDBSearchPanel @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")); @@ -85,7 +89,20 @@ public class PDBSearchPanel extends GPDBSearchPanel request.setWantedFields(wantedFields); // System.out.println(">>>>>>>>>>>>>> " + request.getQuery()); PDBRestClient pdbRestCleint = new PDBRestClient(); - PDBRestResponse resultList = pdbRestCleint.executeRequest(request); + PDBRestResponse resultList; + try + { + resultList = pdbRestCleint.executeRequest(request); + } catch (Exception e) + { + // System.out.println(">>>>>>>>>>>>>>>" + e.getMessage()); + // JOptionPane.showMessageDialog(this, e.getMessage(), + // "PDB Web-service Error", JOptionPane.ERROR_MESSAGE); + errorWarning.append(e.getMessage()); + checkForErrors(); + return; + } + if (resultList.getSearchSummary() != null) { tbl_summary.setModel(PDBRestResponse.getTableModel(request, @@ -158,23 +175,35 @@ public class PDBSearchPanel extends GPDBSearchPanel mainFrame.dispose(); } + public void transferToSequenceFetcher(String ids) + { + // mainFrame.dispose(); + seqFetcher.textArea.setText(ids); + Thread worker = new Thread(seqFetcher); + worker.start(); + } + /** * Add the discovered/selected sequences to a target alignment window */ public void loadSelectedPDBSequencesToAlignment() { - mainFrame.dispose(); + // mainFrame.dispose(); StringBuilder selectedIds = new StringBuilder(); + HashSet selectedIdsSet = new HashSet(); int pdbIdCol = PDBRestClient.getPDBIdColumIndex(wantedFields, false); int[] selectedRows = tbl_summary.getSelectedRows(); for (int summaryRow : selectedRows) { String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdCol) .toString(); - String searchTerm = txt_search.getText(); - selectedIds.append(getPDBIdwithSpecifiedChain(pdbIdStr, searchTerm)) - .append(";"); + selectedIdsSet.add(getPDBIdwithSpecifiedChain(pdbIdStr, searchTerm)); + } + + for (String selectedId : selectedIdsSet) + { + selectedIds.append(selectedId).append(";"); } String ids = selectedIds.toString(); @@ -240,4 +269,14 @@ public class PDBSearchPanel extends GPDBSearchPanel } } + public void checkForErrors() + { + lbl_warning.setVisible(false); + if (errorWarning.length() > 0) + { + lbl_warning.setToolTipText(JvSwingUtils.wrapTooltip(true, + errorWarning.toString())); + lbl_warning.setVisible(true); + } + } }