JAL-4366 JAL-4371 refactor and fix up code inferring potential PDB IDs & Chaincode...
[jalview.git] / src / jalview / gui / structurechooser / PDBStructureChooserQuerySource.java
index 76479e2..2aa0401 100644 (file)
@@ -31,7 +31,6 @@ import java.util.Objects;
 import java.util.Set;
 
 import javax.swing.JTable;
-import javax.swing.table.TableModel;
 
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
@@ -46,6 +45,7 @@ import jalview.fts.core.FTSRestRequest;
 import jalview.fts.core.FTSRestResponse;
 import jalview.fts.service.pdb.PDBFTSRestClient;
 import jalview.jbgui.FilterOption;
+import jalview.struture.PDBEntryUtils;
 import jalview.util.MessageManager;
 
 /**
@@ -71,7 +71,7 @@ public class PDBStructureChooserQuerySource
             PDBFTSRestClient.getInstance());
 
   }
-
+  
   /**
    * Builds a query string for a given sequences using its DBRef entries
    * 
@@ -86,16 +86,19 @@ public class PDBStructureChooserQuerySource
     boolean isUniProtRefsFound = false;
     StringBuilder queryBuilder = new StringBuilder();
     Set<String> seqRefs = new LinkedHashSet<>();
-
+    SequenceI ds = seq.getDatasetSequence();
+    while (ds.getDatasetSequence()!=null) {
+      ds = ds.getDatasetSequence();
+    }
+    
     /*
      * note PDBs as DBRefEntry so they are not duplicated in query
      */
     Set<String> pdbids = new HashSet<>();
-
-    if (seq.getAllPDBEntries() != null
-            && queryBuilder.length() < MAX_QLENGTH)
+    if (queryBuilder.length() < MAX_QLENGTH)
     {
-      for (PDBEntry entry : seq.getAllPDBEntries())
+      Set<PDBEntry> gatheredEntries = PDBEntryUtils.gatherPDBEntries(seq, true); 
+      for (PDBEntry entry : gatheredEntries)
       {
         if (isValidSeqName(entry.getId()))
         {
@@ -105,8 +108,8 @@ public class PDBStructureChooserQuerySource
           pdbids.add(id);
         }
       }
-    }
-
+    } 
+    
     List<DBRefEntry> refs = seq.getDBRefs();
     if (refs != null && refs.size() != 0)
     {
@@ -142,7 +145,7 @@ public class PDBStructureChooserQuerySource
         }
       }
     }
-
+    
     if (!isPDBRefsFound && !isUniProtRefsFound)
     {
       String seqName = seq.getName();
@@ -348,7 +351,6 @@ public class PDBStructureChooserQuerySource
     PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
     int count = 0;
     int idColumnIndex = -1;
-    boolean fromTDB = true;
     idColumnIndex = restable.getColumn("PDB Id").getModelIndex();
 
     for (int row : selectedRows)