1 package jalview.ext.rbvi.chimera;
3 import static org.junit.Assert.assertTrue;
5 import org.junit.AfterClass;
6 import org.junit.BeforeClass;
9 import jalview.api.structures.JalviewStructureDisplayI;
10 import jalview.datamodel.PDBEntry;
11 import jalview.datamodel.SequenceI;
12 import jalview.gui.AlignFrame;
13 import jalview.gui.StructureViewer;
14 import jalview.gui.StructureViewer.ViewerType;
15 import jalview.io.FormatAdapter;
17 public class JalviewChimeraView
21 * @throws java.lang.Exception
24 public static void setUpBeforeClass() throws Exception
26 jalview.bin.Jalview.main(new String[]
27 { "-noquestionnaire -nonews -props", "test/src/jalview/ext/rbvi/chimera/testProps.jvprops" });
31 * @throws java.lang.Exception
34 public static void tearDownAfterClass() throws Exception
38 jalview.gui.Desktop.instance.closeAll_actionPerformed(null);
41 // ignore NullPointerException thrown by JMol
47 public void testSingleSeqViewJMol()
49 String inFile = "examples/1gaq.txt";
50 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
51 inFile, FormatAdapter.FILE);
52 assertTrue("Didn't read input file " + inFile, af != null);
53 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
55 SequenceI dsq = sq.getDatasetSequence();
56 while (dsq.getDatasetSequence() != null)
58 dsq = dsq.getDatasetSequence();
60 if (dsq.getPDBId() != null && dsq.getPDBId().size() > 0)
62 for (int q = 0; q < dsq.getPDBId().size(); q++)
64 final StructureViewer structureViewer = new StructureViewer(af
65 .getViewport().getStructureSelectionManager());
67 JalviewStructureDisplayI jmolViewer = structureViewer
68 .viewStructures(ViewerType.JMOL, af.getCurrentView()
69 .getAlignPanel(), new PDBEntry[]
70 { (PDBEntry) dsq.getPDBId().elementAt(q) },
75 * Wait for viewer thread to start
80 } catch (InterruptedException e)
84 jmolViewer.closeViewer(true);
85 // todo: break here means only once through this loop?
94 public void testSingleSeqViewChimera()
96 String inFile = "examples/1gaq.txt";
97 AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
98 inFile, FormatAdapter.FILE);
99 assertTrue("Didn't read input file " + inFile, af != null);
100 for (SequenceI sq : af.getViewport().getAlignment().getSequences())
102 SequenceI dsq = sq.getDatasetSequence();
103 while (dsq.getDatasetSequence() != null)
105 dsq = dsq.getDatasetSequence();
107 if (dsq.getPDBId() != null && dsq.getPDBId().size() > 0)
109 for (int q = 0; q < dsq.getPDBId().size(); q++)
111 final StructureViewer structureViewer = new StructureViewer(af
112 .getViewport().getStructureSelectionManager());
114 JalviewStructureDisplayI chimeraViewer = structureViewer
115 .viewStructures(ViewerType.CHIMERA, af.getCurrentView()
116 .getAlignPanel(), new PDBEntry[]
117 { (PDBEntry) dsq.getPDBId().elementAt(q) },
122 * Wait for viewer thread to start
127 } catch (InterruptedException e)
130 chimeraViewer.closeViewer(true);
131 // todo: break here means only once through this loop?