1 package jalview.ext.rbvi.chimera;
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertTrue;
6 import jalview.api.structures.JalviewStructureDisplayI;
7 import jalview.bin.Cache;
8 import jalview.datamodel.SequenceI;
9 import jalview.gui.AlignFrame;
10 import jalview.gui.Preferences;
11 import jalview.gui.StructureViewer;
12 import jalview.gui.StructureViewer.ViewerType;
13 import jalview.io.FormatAdapter;
15 import org.testng.annotations.AfterClass;
16 import org.testng.annotations.BeforeClass;
17 import org.testng.annotations.Test;
19 @Test(singleThreaded = true)
20 public class JalviewChimeraView
24 * @throws java.lang.Exception
26 @BeforeClass(alwaysRun = true)
27 public static void setUpBeforeClass() throws Exception
29 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 testSingleSeqViewChimera()
46 Cache.setProperty(Preferences.STRUCTURE_DISPLAY,
47 ViewerType.CHIMERA.name());
48 String inFile = "examples/1gaq.txt";
49 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
50 inFile, FormatAdapter.FILE);
51 assertTrue("Didn't read input file " + inFile, af != null);
52 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
54 System.out.println("** sq=" + sq.getName());
55 SequenceI dsq = sq.getDatasetSequence();
56 while (dsq.getDatasetSequence() != null)
58 dsq = dsq.getDatasetSequence();
60 if (dsq.getAllPDBEntries() != null
61 && dsq.getAllPDBEntries().size() > 0)
63 for (int q = 0; q < dsq.getAllPDBEntries().size(); q++)
65 final StructureViewer structureViewer = new StructureViewer(af
66 .getViewport().getStructureSelectionManager());
67 structureViewer.setViewerType(ViewerType.CHIMERA);
68 JalviewStructureDisplayI chimeraViewer = structureViewer
69 .viewStructures(dsq.getAllPDBEntries().elementAt(q),
70 new SequenceI[] { sq }, af.getCurrentView()
73 * Wait for viewer load thread to complete
75 while (!chimeraViewer.getBinding().isFinishedInit())
80 } catch (InterruptedException e)
84 assertEquals(1, chimeraViewer.getBinding().getPdbCount());
85 chimeraViewer.closeViewer(true);
86 // todo: break here means only once through this loop?