+ }
+ else if (currentView == VIEWS_PHYRE2_PREDICTION)
+ {
+ SequenceI userSelectedSeq = ((AssociateSeqOptions) phyre2InputAssSeqPanel
+ .getCmb_assSeq().getSelectedItem()).getSequence();
+ if (userSelectedSeq != null)
+ {
+ selectedSequence = userSelectedSeq;
+ }
+ int templateColIndex = getPhyreResultTable()
+ .getColumn("Template").getModelIndex();
+ int[] selectedRows = getPhyreResultTable().getSelectedRows();
+ PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
+ int count = 0;
+ for (int row : selectedRows)
+ {
+ String templateId = getPhyreResultTable().getValueAt(row,
+ templateColIndex).toString();
+ String structureFile = phyre2ResultDirectory + templateId;
+ String fastaMapping = phyre2ResultDirectory
+ + templateId.replaceAll(".pdb", ".fasta");
+ // System.out.println("structure file >>>>> " + structureFile);
+ // System.out.println("fasta mapping >>>>> " + fastaMapping);
+ pdbEntriesToView[count++] = new AssociateStructureFileWithSeq()
+ .associateStructureWithSeq(structureFile,
+ DataSourceType.FILE, selectedSequence, true,
+ Desktop.instance);
+ ssm.registerPhyre2Template(structureFile, fastaMapping);
+ }
+
+ final StructureSelectionManager ssm = ap
+ .getStructureSelectionManager();
+ final long progressSessionId = System.currentTimeMillis();
+ ssm.setProgressSessionId(progressSessionId);
+
+ SequenceI[] sequences = new SequenceI[] { selectedSequence };
+
+ ssm.setProgressBar(MessageManager
+ .getString("status.launching_3d_structure_viewer"));
+ final StructureViewer sViewer = new StructureViewer(ssm);
+ if (pdbEntriesToView.length > 1)
+ {
+ ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
+ for (SequenceI seq : sequences)
+ {
+ seqsMap.add(new SequenceI[] { seq });
+ }
+ SequenceI[][] collatedSeqs = seqsMap
+ .toArray(new SequenceI[0][0]);
+ ssm.setProgressBar(null);
+ ssm.setProgressBar(MessageManager
+ .getString("status.fetching_3d_structures_for_selected_entries"));
+ sViewer.viewStructures(pdbEntriesToView, collatedSeqs, ap);
+ }
+ else
+ {
+ ssm.setProgressBar(null);
+ ssm.setProgressBar(MessageManager.formatMessage(
+ "status.fetching_3d_structures_for",
+ pdbEntriesToView[0].getId()));
+ sViewer.viewStructures(pdbEntriesToView[0], sequences, ap);
+ }
+ }
+ closeAction(preferredHeight);