@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);
}
}
/**
+ * 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
*