+ List<SequenceI> seqs = new ArrayList<SequenceI>();
+ if (pdbs == null || pdbs.length == 0)
+ {
+ return null;
+ }
+ int i = 0;
+ String firstFile = pdbs[0].getFile();
+ for (PDBEntry pdb : pdbs)
+ {
+ String pdbFile = pdb.getFile();
+ if (pdbFile == null || !pdbFile.equals(firstFile))
+ {
+ return null;
+ }
+ SequenceI[] pdbseqs = seqsForPdbs[i++];
+ if (pdbseqs != null)
+ {
+ for (SequenceI sq : pdbseqs)
+ {
+ seqs.add(sq);
+ }
+ }
+ }
+ return viewStructures(pdbs[0], seqs.toArray(new SequenceI[seqs.size()]),
+ ap);
+ }
+
+ public JalviewStructureDisplayI viewStructures(PDBEntry pdb,
+ SequenceI[] seqsForPdb, AlignmentPanel ap)
+ {
+ return viewStructures(getViewerType(), pdb, seqsForPdb, ap);
+ }
+
+ protected JalviewStructureDisplayI viewStructures(ViewerType viewerType,
+ PDBEntry[] pdbs, SequenceI[][] seqsForPdbs, AlignmentPanel ap)
+ {
+ PDBEntry[] pdbsForFile = getUniquePdbFiles(pdbs);