X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2Fstructurechooser%2FThreeDBStructureChooserQuerySource.java;h=2c6afe89828f2a21112e6f437e8f08f472185a4c;hb=4f452e7f601b3afc4b6380632586b04d9fa081bb;hp=e5f96be4be2f63159f383d0e7fe0bcc72e022cda;hpb=8498532d3613b633e6a63e7cdbfecd9add16f43b;p=jalview.git diff --git a/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java b/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java index e5f96be..2c6afe8 100644 --- a/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java +++ b/src/jalview/gui/structurechooser/ThreeDBStructureChooserQuerySource.java @@ -157,9 +157,24 @@ public class ThreeDBStructureChooserQuerySource resultList = tdbRestClient.executeRequest(tdbRequest); lastTdbRequest = tdbRequest; + + // Query the PDB and add additional metadata + FTSRestResponse pdbResponse = fetchStructuresMetaDataFor(getPDBQuerySource(), resultList); + FTSRestResponse joinedResp = joinResponses(resultList, + pdbResponse); return resultList; } + PDBStructureChooserQuerySource pdbQuerySource=null; + private PDBStructureChooserQuerySource getPDBQuerySource() + { + if (pdbQuerySource==null) + { + pdbQuerySource = new PDBStructureChooserQuerySource(); + } + return pdbQuerySource; + } + private FTSRestRequest getTDBeaconsRequest(SequenceI seq, Collection wantedFields) { @@ -369,27 +384,31 @@ public class ThreeDBStructureChooserQuerySource int idx_provider = getLastFTSRequest().getFieldIndex("Provider"); // join on int idx_modelId = getLastFTSRequest().getFieldIndex("Model id"); - int pdbIdx = lastPdbRequest.getFieldIndex("pdb_id"); - for (FTSData row : upResponse.getSearchSummary()) + int pdbIdx = lastPdbRequest.getFieldIndex("PDB Id"); + int pdbTitle_idx = lastPdbRequest.getFieldIndex("Title"); + int tdbTitle_idx = getLastFTSRequest().getFieldIndex("Title"); + + List joinedRows = new ArrayList(); + for (final FTSData row : upResponse.getSearchSummary()) { String id = (String) row.getSummaryData()[idx_modelId]; String provider = (String) row.getSummaryData()[idx_provider]; if ("PDBe".equalsIgnoreCase(provider)) { - for (FTSData pdbrow : pdbResponse.getSearchSummary()) + for (final FTSData pdbrow : pdbResponse.getSearchSummary()) { String pdbid = (String) pdbrow.getSummaryData()[pdbIdx]; if (id.equalsIgnoreCase(pdbid)) { - // often multiple entries per PDB ID so we bail after first - // get wanted fields - // append to FTSRestResponse array + row.getSummaryData()[tdbTitle_idx] = pdbrow + .getSummaryData()[pdbTitle_idx]; } } + } else { + row.getSummaryData()[tdbTitle_idx] = "Model from TDB"; } } - // TODO Auto-generated method stub - return null; + return upResponse; } } \ No newline at end of file