Jalview.isJS() --> Platform.isJS(), DBRefEntry[] --> List<DBRefEntry>
[jalview.git] / src / jalview / gui / StructureChooser.java
index 97ff404..23b7fcf 100644 (file)
@@ -83,7 +83,7 @@ public class StructureChooser extends GStructureChooser
 
   private FTSRestRequest lastPdbRequest;
 
-  private FTSRestClientI pdbRestCleint;
+  private FTSRestClientI pdbRestClient;
 
   private String selectedPdbFileName;
 
@@ -217,7 +217,7 @@ public class StructureChooser extends GStructureChooser
   void fetchStructuresMetaData()
   {
     long startTime = System.currentTimeMillis();
-    pdbRestCleint = PDBFTSRestClient.getInstance();
+    pdbRestClient = PDBFTSRestClient.getInstance();
     Collection<FTSDataColumnI> wantedFields = pdbDocFieldPrefs
             .getStructureSummaryFields();
 
@@ -239,7 +239,7 @@ public class StructureChooser extends GStructureChooser
       FTSRestResponse resultList;
       try
       {
-        resultList = pdbRestCleint.executeRequest(pdbRequest);
+        resultList = pdbRestClient.executeRequest(pdbRequest);
       } catch (Exception e)
       {
         e.printStackTrace();
@@ -337,10 +337,12 @@ public class StructureChooser extends GStructureChooser
       }
     }
 
-    if (seq.getDBRefs() != null && seq.getDBRefs().length != 0)
+    List<DBRefEntry> refs = seq.getDBRefs();
+    if (refs != null && refs.size() != 0)
     {
-      for (DBRefEntry dbRef : seq.getDBRefs())
+      for (int ib = 0, nb = refs.size(); ib < nb; ib++)
       {
+         DBRefEntry dbRef = refs.get(ib);
         if (isValidSeqName(getDBRefId(dbRef))
                 && queryBuilder.length() < MAX_QLENGTH)
         {
@@ -461,7 +463,7 @@ public class StructureChooser extends GStructureChooser
       public void run()
       {
         long startTime = System.currentTimeMillis();
-        pdbRestCleint = PDBFTSRestClient.getInstance();
+        pdbRestClient = PDBFTSRestClient.getInstance();
         lbl_loading.setVisible(true);
         Collection<FTSDataColumnI> wantedFields = pdbDocFieldPrefs
                 .getStructureSummaryFields();
@@ -497,7 +499,7 @@ public class StructureChooser extends GStructureChooser
           FTSRestResponse resultList;
           try
           {
-            resultList = pdbRestCleint.executeRequest(pdbRequest);
+            resultList = pdbRestClient.executeRequest(pdbRequest);
           } catch (Exception e)
           {
             e.printStackTrace();
@@ -1192,19 +1194,26 @@ public class StructureChooser extends GStructureChooser
             && !discoveredStructuresSet.isEmpty();
   }
 
+  protected int PDB_ID_MIN = 3;// or: (Jalview.isJS() ? 3 : 1); // Bob proposes this. 
+  // Doing a search for "1" or "1c" is valuable?
+  // Those work but are enormously slow.
+
   @Override
   protected void txt_search_ActionPerformed()
   {
+    String text = txt_search.getText().trim();
+       if (text.length() >= PDB_ID_MIN) 
     new Thread()
     {
-      @Override
+
+       @Override
       public void run()
       {
         errorWarning.setLength(0);
         isValidPBDEntry = false;
-        if (txt_search.getText().length() > 0)
+        if (text.length() > 0)
         {
-          String searchTerm = txt_search.getText().toLowerCase();
+          String searchTerm = text.toLowerCase();
           searchTerm = searchTerm.split(":")[0];
           // System.out.println(">>>>> search term : " + searchTerm);
           List<FTSDataColumnI> wantedFields = new ArrayList<>();
@@ -1215,12 +1224,12 @@ public class StructureChooser extends GStructureChooser
           pdbRequest.setWantedFields(wantedFields);
           pdbRequest.setSearchTerm(searchTerm + ")");
           pdbRequest.setAssociatedSequence(selectedSequence);
-          pdbRestCleint = PDBFTSRestClient.getInstance();
-          wantedFields.add(pdbRestCleint.getPrimaryKeyColumn());
+          pdbRestClient = PDBFTSRestClient.getInstance();
+          wantedFields.add(pdbRestClient.getPrimaryKeyColumn());
           FTSRestResponse resultList;
           try
           {
-            resultList = pdbRestCleint.executeRequest(pdbRequest);
+            resultList = pdbRestClient.executeRequest(pdbRequest);
           } catch (Exception e)
           {
             errorWarning.append(e.getMessage());