+ final StructureViewerModel data = viewerData.getValue();
+ String chimeraSession = data.getStateData();
+
+ if (new File(chimeraSession).exists())
+ {
+ Set<Entry<File, StructureData>> fileData = data.getFileData()
+ .entrySet();
+ List<PDBEntry> pdbs = new ArrayList<PDBEntry>();
+ List<SequenceI[]> allseqs = new ArrayList<SequenceI[]>();
+ for (Entry<File, StructureData> pdb : fileData)
+ {
+ String filePath = pdb.getValue().getFilePath();
+ String pdbId = pdb.getValue().getPdbId();
+ pdbs.add(new PDBEntry(filePath, pdbId));
+ final List<SequenceI> seqList = pdb.getValue().getSeqList();
+ SequenceI[] seqs = seqList.toArray(new SequenceI[seqList.size()]);
+ allseqs.add(seqs);
+ }
+
+ boolean colourByChimera = data.isColourByViewer();
+ boolean colourBySequence = data.isColourWithAlignPanel();
+
+ // TODO can/should this be done via StructureViewer (like Jmol)?
+ final PDBEntry[] pdbArray = pdbs.toArray(new PDBEntry[pdbs.size()]);
+ final SequenceI[][] seqsArray = allseqs.toArray(new SequenceI[allseqs
+ .size()][]);
+ new ChimeraViewFrame(chimeraSession, af.alignPanel, pdbArray,
+ seqsArray, colourByChimera, colourBySequence);
+ }
+ else
+ {
+ Cache.log.error("Chimera session file " + chimeraSession
+ + " not found");
+ }