X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=ea2d50dcd2bf5636b56d061d60f74a3506cd0ed9;hb=55ea4d59b2f4ce51f8310047dd1f8898697dde0c;hp=ebba2e5be7779ebf643cdb7013555a2b9b085a46;hpb=97a1f5a89f698f1117dbd6606c5a24089b582440;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index ebba2e5..ea2d50d 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -35,6 +35,8 @@ import jalview.fts.core.FTSDataColumnPreferences; import jalview.fts.core.FTSRestRequest; import jalview.fts.core.FTSRestResponse; import jalview.fts.service.pdb.PDBFTSRestClient; +import jalview.gui.structurechooser.PDBStructureChooserQuerySource; +import jalview.gui.structurechooser.StructureChooserQuerySource; import jalview.io.DataSourceType; import jalview.jbgui.GStructureChooser; import jalview.jbgui.GStructureChooser.FilterOption; @@ -102,7 +104,7 @@ public class StructureChooser extends GStructureChooser { // which FTS engine to use data = StructureChooserQuerySource - .getPDBfts(); + .getTDBfts(); initDialog(); this.ap = ap; @@ -243,6 +245,12 @@ public class StructureChooser extends GStructureChooser { resultList = data.fetchStructuresMetaData(seq, wantedFields, selectedFilterOpt, !chk_invertFilter.isSelected()); + // null response means the FTSengine didn't yield a query for this + // consider designing a special exception if we really wanted to be OOCrazy + if (resultList==null) + { + continue; + } } catch (Exception e) { e.printStackTrace(); @@ -735,36 +743,11 @@ public class StructureChooser extends GStructureChooser if (currentView == VIEWS_FILTER) { - int pdbIdColIndex = restable.getColumn("PDB Id").getModelIndex(); - int refSeqColIndex = restable.getColumn("Ref Sequence") - .getModelIndex(); int[] selectedRows = restable.getSelectedRows(); PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length]; - int count = 0; List selectedSeqsToView = new ArrayList<>(); - for (int row : selectedRows) - { - String pdbIdStr = restable.getValueAt(row, pdbIdColIndex) - .toString(); - SequenceI selectedSeq = (SequenceI) restable.getValueAt(row, - refSeqColIndex); - selectedSeqsToView.add(selectedSeq); - PDBEntry pdbEntry = selectedSeq.getPDBEntry(pdbIdStr); - if (pdbEntry == null) - { - pdbEntry = getFindEntry(pdbIdStr, - selectedSeq.getAllPDBEntries()); - } + pdbEntriesToView = data.collectSelectedRows(restable,selectedRows,selectedSeqsToView); - if (pdbEntry == null) - { - pdbEntry = new PDBEntry(); - pdbEntry.setId(pdbIdStr); - pdbEntry.setType(PDBEntry.Type.PDB); - selectedSeq.getDatasetSequence().addPDBId(pdbEntry); - } - pdbEntriesToView[count++] = pdbEntry; - } SequenceI[] selectedSeqs = selectedSeqsToView .toArray(new SequenceI[selectedSeqsToView.size()]); sViewer = launchStructureViewer(ssm, pdbEntriesToView, ap, @@ -872,21 +855,6 @@ public class StructureChooser extends GStructureChooser } } - private PDBEntry getFindEntry(String id, Vector pdbEntries) - { - Objects.requireNonNull(id); - Objects.requireNonNull(pdbEntries); - PDBEntry foundEntry = null; - for (PDBEntry entry : pdbEntries) - { - if (entry.getId().equalsIgnoreCase(id)) - { - return entry; - } - } - return foundEntry; - } - /** * Answers a structure viewer (new or existing) configured to superimpose * added structures or not according to the user's choice