Fixed some broken tests
[jalview.git] / src / jalview / gui / PDBSearchPanel.java
index 514406a..950c6b7 100644 (file)
@@ -33,8 +33,10 @@ 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.JOptionPane;
 import javax.swing.table.DefaultTableModel;
 
 @SuppressWarnings("serial")
@@ -60,6 +62,7 @@ public class PDBSearchPanel extends GPDBSearchPanel
   @Override
   public void txt_search_ActionPerformed()
   {
+    btn_ok.setEnabled(false);
     boolean allowEmptySequence = false;
     mainFrame.setTitle(MessageManager
             .getString("label.pdb_sequence_getcher"));
@@ -85,7 +88,18 @@ 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);
+        return;
+      }
+
       if (resultList.getSearchSummary() != null)
       {
         tbl_summary.setModel(PDBRestResponse.getTableModel(request,
@@ -165,20 +179,24 @@ public class PDBSearchPanel extends GPDBSearchPanel
   {
     mainFrame.dispose();
     StringBuilder selectedIds = new StringBuilder();
+    HashSet<String> selectedIdsSet = new HashSet<String>();
     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();
-    // System.out.println(">>>>>>>>>>>>>>>> selected Ids: " + ids);
+    System.out.println(">>>>>>>>>>>>>>>> selected Ids: " + ids);
     seqFetcher.textArea.setText(ids);
     Thread worker = new Thread(seqFetcher);
     worker.start();