Merge branch 'features/r2_11_2/JAL-3829_3dbeacons' into develop
[jalview.git] / src / jalview / gui / structurechooser / ThreeDBStructureChooserQuerySource.java
index 7a311f8..cdf456c 100644 (file)
@@ -23,6 +23,7 @@ import jalview.fts.core.FTSDataColumnPreferences;
 import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
 import jalview.fts.core.FTSRestRequest;
 import jalview.fts.core.FTSRestResponse;
+import jalview.fts.service.threedbeacons.TDB_FTSData;
 import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
 import jalview.jbgui.FilterOption;
 
@@ -251,9 +252,11 @@ public class ThreeDBStructureChooserQuerySource
     {
       int prov_idx = lastTdbRequest.getFieldIndex("Provider");
       boolean hasPDBe=false;
-      for (FTSData row : tdbEntries)
+      for (FTSData _row : tdbEntries)
       {
-        String provider = (String) row.getSummaryData()[prov_idx];
+        // tdb returns custom object
+        TDB_FTSData row = (TDB_FTSData) _row;
+        String provider = (String) row.getProvider();
         FilterOption providerOpt = new FilterOption(
                 "3DB Provider - " + provider,
                 FILTER_SOURCE_PREFIX + provider, VIEWS_FILTER, false, this);
@@ -547,4 +550,20 @@ public class ThreeDBStructureChooserQuerySource
     return upResponse;
   }
 
+  public TDB_FTSData getFTSDataFor(JTable restable, int selectedRow,
+          Collection<FTSData> discoveredStructuresSet)
+  {
+    int idColumnIndex = restable.getColumn("Model id").getModelIndex();
+    
+    String modelId = (String) restable.getValueAt(selectedRow, idColumnIndex);
+    for (FTSData row:discoveredStructuresSet)
+    {
+      if (row instanceof TDB_FTSData && ((TDB_FTSData)row).getModelId().equals(modelId))
+      {
+        return ((TDB_FTSData)row);
+      }
+    }
+    return null;
+  }
+
 }
\ No newline at end of file