+ ////LOAD STRUCTURES
+ if(loadTreesAndStructures)
+ {
+ for (int i = 0; i < JSEQ.length; i++)
+ {
+ if (JSEQ[i].getPdbidsCount() > 0)
+ {
+ Pdbids[] ids = JSEQ[i].getPdbids();
+ for (int p = 0; p < ids.length; p++)
+ {
+ for (int s = 0; s < ids[p].getStructureStateCount(); s++)
+ {
+ jalview.datamodel.PDBEntry jpdb = new jalview.datamodel.PDBEntry();
+
+ jpdb.setFile(loadPDBFile(ids[p].getFile(), ids[p].getId()));
+ jpdb.setId(ids[p].getId());
+
+ int x = ids[p].getStructureState(s).getXpos();
+ int y = ids[p].getStructureState(s).getYpos();
+ int width = ids[p].getStructureState(s).getWidth();
+ int height = ids[p].getStructureState(s).getHeight();
+
+ java.awt.Component comp = Desktop.desktop.getComponentAt(x, y);
+
+ String pdbFile = loadPDBFile(file, ids[p].getId());
+
+ jalview.datamodel.SequenceI[] seq = new jalview.datamodel.SequenceI[]
+ {
+ al.getSequenceAt(i)};
+
+ if (comp == null ||
+ (comp.getWidth() != width && comp.getHeight() != height))
+ {
+ String state = ids[p].getStructureState(s).getContent();
+
+ StringBuffer newFileLoc = new StringBuffer(state.substring(0,
+ state.indexOf("\"", state.indexOf("load")) + 1));
+
+ newFileLoc.append(jpdb.getFile());
+ newFileLoc.append(state.substring(
+ state.indexOf("\"", state.indexOf("load \"") + 6)));
+
+ new AppJMol(pdbFile,
+ ids[p].getId(),
+ seq,
+ af.alignPanel,
+ newFileLoc.toString(),
+ new java.awt.Rectangle(x, y, width, height));
+
+ }
+ else if(comp!=null)
+ {
+ StructureSelectionManager.getStructureSelectionManager()
+ .setMapping(seq, pdbFile,
+ jalview.io.AppletFormatAdapter.FILE);
+
+ ( (AppJMol) comp).addSequence(seq);
+ }
+ }
+ }
+ }
+ }