1 package jalview.ext.jmol;
3 import static org.testng.AssertJUnit.assertTrue;
5 import jalview.api.structures.JalviewStructureDisplayI;
6 import jalview.bin.Cache;
7 import jalview.datamodel.SequenceI;
8 import jalview.gui.AlignFrame;
9 import jalview.gui.Preferences;
10 import jalview.gui.StructureViewer;
11 import jalview.gui.StructureViewer.ViewerType;
12 import jalview.io.FormatAdapter;
14 import org.testng.annotations.AfterClass;
15 import org.testng.annotations.BeforeClass;
16 import org.testng.annotations.Test;
18 @Test(singleThreaded = true)
19 public class JmolViewerTest
23 * @throws java.lang.Exception
25 @BeforeClass(alwaysRun = true)
26 public static void setUpBeforeClass() throws Exception
28 jalview.bin.Jalview.main(new String[]
30 "-noquestionnaire -nonews -props",
31 "test/jalview/ext/rbvi/chimera/testProps.jvprops" });
35 * @throws java.lang.Exception
38 public static void tearDownAfterClass() throws Exception
40 jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
43 @Test(groups ={ "Functional" })
44 public void testSingleSeqViewJMol()
46 Cache.setProperty(Preferences.STRUCTURE_DISPLAY, ViewerType.JMOL.name());
47 String inFile = "examples/1gaq.txt";
48 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
49 inFile, FormatAdapter.FILE);
50 assertTrue("Didn't read input file " + inFile, af != null);
51 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
53 SequenceI dsq = sq.getDatasetSequence();
54 while (dsq.getDatasetSequence() != null)
56 dsq = dsq.getDatasetSequence();
58 if (dsq.getAllPDBEntries() != null && dsq.getAllPDBEntries().size() > 0)
60 for (int q = 0; q < dsq.getAllPDBEntries().size(); q++)
62 final StructureViewer structureViewer = new StructureViewer(af
63 .getViewport().getStructureSelectionManager());
64 structureViewer.setViewerType(ViewerType.JMOL);
65 JalviewStructureDisplayI jmolViewer = structureViewer
66 .viewStructures(dsq.getAllPDBEntries().elementAt(q),
68 { sq }, af.getCurrentView().getAlignPanel());
70 * Wait for viewer load thread to complete
74 while (!jmolViewer.getBinding().isFinishedInit())
78 } catch (InterruptedException e)
82 jmolViewer.closeViewer(true);
83 // todo: break here means only once through this loop?