1 package jalview.ext.rbvi.chimera;
3 import static org.testng.AssertJUnit.assertTrue;
4 import org.testng.annotations.AfterClass;
5 import org.testng.annotations.Test;
6 import org.testng.annotations.BeforeClass;
7 import jalview.api.structures.JalviewStructureDisplayI;
8 import jalview.datamodel.SequenceI;
9 import jalview.gui.AlignFrame;
10 import jalview.gui.StructureViewer;
11 import jalview.gui.StructureViewer.ViewerType;
12 import jalview.io.FormatAdapter;
14 public class JalviewChimeraView
18 * @throws java.lang.Exception
21 public static void setUpBeforeClass() throws Exception
23 jalview.bin.Jalview.main(new String[]
24 { "-noquestionnaire -nonews -props", "test/src/jalview/ext/rbvi/chimera/testProps.jvprops" });
28 * @throws java.lang.Exception
31 public static void tearDownAfterClass() throws Exception
35 jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
38 // ignore NullPointerException thrown by JMol
44 public void testSingleSeqViewJMol()
46 String inFile = "examples/1gaq.txt";
47 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
48 inFile, FormatAdapter.FILE);
49 assertTrue("Didn't read input file " + inFile, af != null);
50 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
52 SequenceI dsq = sq.getDatasetSequence();
53 while (dsq.getDatasetSequence() != null)
55 dsq = dsq.getDatasetSequence();
57 if (dsq.getPDBId() != null && dsq.getPDBId().size() > 0)
59 for (int q = 0; q < dsq.getPDBId().size(); q++)
61 final StructureViewer structureViewer = new StructureViewer(af
62 .getViewport().getStructureSelectionManager());
63 structureViewer.setViewerType(ViewerType.JMOL);
64 JalviewStructureDisplayI jmolViewer = structureViewer
65 .viewStructures(dsq.getPDBId().elementAt(q),
67 { sq }, af.getCurrentView().getAlignPanel());
69 * Wait for viewer thread to start
74 } catch (InterruptedException e)
78 jmolViewer.closeViewer(true);
79 // todo: break here means only once through this loop?
88 public void testSingleSeqViewChimera()
90 String inFile = "examples/1gaq.txt";
91 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
92 inFile, FormatAdapter.FILE);
93 assertTrue("Didn't read input file " + inFile, af != null);
94 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
96 SequenceI dsq = sq.getDatasetSequence();
97 while (dsq.getDatasetSequence() != null)
99 dsq = dsq.getDatasetSequence();
101 if (dsq.getPDBId() != null && dsq.getPDBId().size() > 0)
103 for (int q = 0; q < dsq.getPDBId().size(); q++)
105 final StructureViewer structureViewer = new StructureViewer(af
106 .getViewport().getStructureSelectionManager());
107 structureViewer.setViewerType(ViewerType.CHIMERA);
108 JalviewStructureDisplayI chimeraViewer = structureViewer
109 .viewStructures(dsq.getPDBId().elementAt(q),
111 { sq }, af.getCurrentView().getAlignPanel());
113 * Wait for viewer thread to start
118 } catch (InterruptedException e)
121 chimeraViewer.closeViewer(true);
122 // todo: break here means only once through this loop?