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 public class JalviewChimeraView
23 * @throws java.lang.Exception
25 @BeforeClass(alwaysRun = true)
26 public static void setUpBeforeClass() throws Exception
28 jalview.bin.Jalview.main(new String[]
29 { "-noquestionnaire -nonews -props", "test/src/jalview/ext/rbvi/chimera/testProps.jvprops" });
33 * @throws java.lang.Exception
36 public static void tearDownAfterClass() throws Exception
38 jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
41 @Test(groups ={ "Functional" })
42 public void testSingleSeqViewJMol()
44 Cache.setProperty(Preferences.STRUCTURE_DISPLAY, ViewerType.JMOL.name());
45 String inFile = "examples/1gaq.txt";
46 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
47 inFile, FormatAdapter.FILE);
48 assertTrue("Didn't read input file " + inFile, af != null);
49 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
51 SequenceI dsq = sq.getDatasetSequence();
52 while (dsq.getDatasetSequence() != null)
54 dsq = dsq.getDatasetSequence();
56 if (dsq.getAllPDBEntries() != null && dsq.getAllPDBEntries().size() > 0)
58 for (int q = 0; q < dsq.getAllPDBEntries().size(); q++)
60 final StructureViewer structureViewer = new StructureViewer(af
61 .getViewport().getStructureSelectionManager());
62 structureViewer.setViewerType(ViewerType.JMOL);
63 JalviewStructureDisplayI jmolViewer = structureViewer
64 .viewStructures(dsq.getAllPDBEntries().elementAt(q),
66 { sq }, af.getCurrentView().getAlignPanel());
68 * Wait for viewer load thread to complete
72 while (!jmolViewer.getBinding().isFinishedInit())
76 } catch (InterruptedException e)
80 jmolViewer.closeViewer(true);
81 // todo: break here means only once through this loop?
89 @Test(groups ={ "Functional" })
90 public void testSingleSeqViewChimera()
92 Cache.setProperty(Preferences.STRUCTURE_DISPLAY,
93 ViewerType.CHIMERA.name());
94 String inFile = "examples/1gaq.txt";
95 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
96 inFile, FormatAdapter.FILE);
97 assertTrue("Didn't read input file " + inFile, af != null);
98 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
100 System.out.println("** sq=" + sq.getName());
101 SequenceI dsq = sq.getDatasetSequence();
102 while (dsq.getDatasetSequence() != null)
104 dsq = dsq.getDatasetSequence();
106 if (dsq.getAllPDBEntries() != null && dsq.getAllPDBEntries().size() > 0)
108 for (int q = 0; q < dsq.getAllPDBEntries().size(); q++)
110 final StructureViewer structureViewer = new StructureViewer(af
111 .getViewport().getStructureSelectionManager());
112 structureViewer.setViewerType(ViewerType.CHIMERA);
113 JalviewStructureDisplayI chimeraViewer = structureViewer
114 .viewStructures(dsq.getAllPDBEntries().elementAt(q),
116 { sq }, af.getCurrentView().getAlignPanel());
118 * Wait for viewer load thread to complete
120 while (!chimeraViewer.getBinding().isFinishedInit())
125 } catch (InterruptedException e)
129 assertEquals(1, chimeraViewer.getBinding().getPdbCount());
130 chimeraViewer.closeViewer(true);
131 // todo: break here means only once through this loop?