JAL-4311 populate PDBEntry with 3d-beacons confidence score type/version - just need...
[jalview.git] / src / jalview / gui / StructureChooser.java
index 8135019..9942fcf 100644 (file)
@@ -1249,22 +1249,17 @@ public class StructureChooser extends GStructureChooser
       @Override
       public void run()
       {
-        FilterOption selectedFilterOpt = ((FilterOption) cmb_filterOption
-                .getSelectedItem());
+        FilterOption selectedFilterOpt = getSelectedFilterOption();
         String currentView = selectedFilterOpt.getView();
         JTable restable = (currentView == VIEWS_FILTER) ? getResultTable()
                 : tbl_local_pdb;
 
         if (currentView == VIEWS_FILTER)
         {
-          int[] selectedRows = restable.getSelectedRows();
-          PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
-          List<SequenceI> selectedSeqsToView = new ArrayList<>();
-          pdbEntriesToView = data.collectSelectedRows(restable,
-                  selectedRows, selectedSeqsToView);
 
-          SequenceI[] selectedSeqs = selectedSeqsToView
-                  .toArray(new SequenceI[selectedSeqsToView.size()]);
+          Object[] seqsAndPdb = collectSelectedSeqsAndPDBEntries();
+          SequenceI[] selectedSeqs=(SequenceI[]) seqsAndPdb[0];
+          PDBEntry[] pdbEntriesToView = (PDBEntry[])seqsAndPdb[1];
           sViewer = launchStructureViewer(ssm, pdbEntriesToView, ap,
                   selectedSeqs);
         }
@@ -1375,6 +1370,34 @@ public class StructureChooser extends GStructureChooser
   }
 
   /**
+   * collect selected structures from FTS search (PDB and TDB queries)
+   * @return Object[] { SequenceI[], PDBEntry[] } or null 
+   */
+  protected Object[] collectSelectedSeqsAndPDBEntries()
+  {
+    if (getSelectedFilterOption()==null || getSelectedFilterOption().getView() != VIEWS_FILTER)
+    {
+      return null;
+    }
+    JTable restable = getResultTable();
+    int[] selectedRows = restable.getSelectedRows();
+    PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
+    List<SequenceI> selectedSeqsToView = new ArrayList<>();
+    pdbEntriesToView = data.collectSelectedRows(restable,
+            selectedRows, selectedSeqsToView);
+
+    SequenceI[] selectedSeqs = selectedSeqsToView
+            .toArray(new SequenceI[selectedSeqsToView.size()]);
+    return new Object[] { selectedSeqs,pdbEntriesToView};
+  }
+
+  private FilterOption getSelectedFilterOption()
+  {
+    return ((FilterOption) cmb_filterOption
+            .getSelectedItem());
+  }
+
+  /**
    * Answers a structure viewer (new or existing) configured to superimpose
    * added structures or not according to the user's choice
    *