Graphical bits moved into files to save jar size
[jalview.git] / src / MCview / AppletPDBViewer.java
1 package MCview;\r
2 \r
3 import java.awt.*;\r
4 \r
5 import java.awt.event.*;\r
6 import jalview.datamodel.*;\r
7 import jalview.appletgui.*;\r
8 import java.awt.event.ActionListener;\r
9 import java.awt.event.ActionEvent;\r
10 \r
11 \r
12 public class AppletPDBViewer extends Frame\r
13 {\r
14       PDBEntry pdb;\r
15       Sequence sequence;\r
16       AppletPDBCanvas pdbcanvas;\r
17 \r
18 \r
19       public AppletPDBViewer(String pdbtext,\r
20                        Sequence seq,\r
21                        SeqCanvas seqcanvas)\r
22       {\r
23         sequence = seq;\r
24 \r
25         try\r
26         {\r
27           jbInit();\r
28         }\r
29         catch (Exception ex)\r
30         {\r
31           ex.printStackTrace();\r
32         }\r
33 \r
34         pdbcanvas = new AppletPDBCanvas(seqcanvas, seq);\r
35 \r
36         add(pdbcanvas, BorderLayout.CENTER);\r
37 \r
38         StringBuffer title = new StringBuffer(sequence.getName() + ":");\r
39 \r
40         jalview.bin.JalviewLite.addFrame(this,title.toString(),400, 400);\r
41 \r
42         try{\r
43         PDBfile pdbfile = new PDBfile(pdbtext, "Paste");\r
44         pdbcanvas.setPDBFile(pdbfile);\r
45         }catch(Exception ex){ex.printStackTrace();}\r
46       }\r
47 \r
48 \r
49       private void jbInit()\r
50           throws Exception\r
51       {\r
52         this.setMenuBar(jMenuBar1);\r
53         fileMenu.setLabel("File");\r
54         coloursMenu.setLabel("Colours");\r
55         mapping.setLabel("View Mapping");\r
56         mapping.addActionListener(new ActionListener()\r
57         {\r
58           public void actionPerformed(ActionEvent e)\r
59           {\r
60             mapping_actionPerformed();\r
61           }\r
62         });\r
63         wire.setLabel("Wireframe");\r
64         wire.addItemListener(new ItemListener()\r
65         {\r
66           public void itemStateChanged(ItemEvent e)\r
67           {\r
68             wire_actionPerformed();\r
69           }\r
70         });\r
71         depth.setState(true);\r
72         depth.setLabel("Depthcue");\r
73         depth.addItemListener(new ItemListener()\r
74         {\r
75           public void itemStateChanged(ItemEvent e)\r
76           {\r
77             depth_actionPerformed();\r
78           }\r
79         });\r
80         zbuffer.setState(true);\r
81         zbuffer.setLabel("Z Buffering");\r
82         zbuffer.addItemListener(new ItemListener()\r
83         {\r
84           public void itemStateChanged(ItemEvent e)\r
85           {\r
86             zbuffer_actionPerformed();\r
87           }\r
88         });\r
89         charge.setLabel("Charge & Cysteine");\r
90         charge.addItemListener(new ItemListener()\r
91         {\r
92           public void itemStateChanged(ItemEvent e)\r
93           {\r
94             charge_actionPerformed();\r
95           }\r
96         });\r
97         hydro.setLabel("Hydrophobicity");\r
98         hydro.addItemListener(new ItemListener()\r
99         {\r
100           public void itemStateChanged(ItemEvent e)\r
101           {\r
102             hydro_actionPerformed();\r
103           }\r
104         });\r
105         chain.setLabel("By Chain");\r
106         chain.addItemListener(new ItemListener()\r
107         {\r
108           public void itemStateChanged(ItemEvent e)\r
109           {\r
110             chain_actionPerformed();\r
111           }\r
112         });\r
113         seqButton.setState(true);\r
114         seqButton.setLabel("By Sequence");\r
115         seqButton.addItemListener(new ItemListener()\r
116         {\r
117           public void itemStateChanged(ItemEvent e)\r
118           {\r
119             seqButton_actionPerformed();\r
120           }\r
121         });\r
122         molecule.setLabel("By Molecule");\r
123         molecule.addItemListener(new ItemListener()\r
124         {\r
125           public void itemStateChanged(ItemEvent e)\r
126           {\r
127             molecule_actionPerformed();\r
128           }\r
129         });\r
130         jMenuBar1.add(fileMenu);\r
131         jMenuBar1.add(coloursMenu);\r
132         fileMenu.add(mapping);;\r
133 \r
134         coloursMenu.add(seqButton);\r
135         coloursMenu.add(chain);\r
136         coloursMenu.add(hydro);\r
137         coloursMenu.add(charge);\r
138         coloursMenu.addSeparator();\r
139         coloursMenu.add(wire);\r
140         coloursMenu.add(depth);\r
141         coloursMenu.add(zbuffer);\r
142         coloursMenu.add(molecule);\r
143 \r
144       }\r
145 \r
146       MenuBar jMenuBar1 = new MenuBar();\r
147       Menu fileMenu = new Menu();\r
148       Menu coloursMenu = new Menu();\r
149       MenuItem mapping = new MenuItem();\r
150       CheckboxGroup bg = new CheckboxGroup();\r
151       CheckboxMenuItem wire = new CheckboxMenuItem();\r
152       CheckboxMenuItem depth = new CheckboxMenuItem();\r
153       CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
154       CheckboxMenuItem charge = new CheckboxMenuItem();\r
155 \r
156 \r
157       CheckboxMenuItem hydro = new CheckboxMenuItem();\r
158       CheckboxMenuItem chain = new CheckboxMenuItem();\r
159       CheckboxMenuItem seqButton = new CheckboxMenuItem();\r
160       CheckboxMenuItem molecule = new CheckboxMenuItem();\r
161 \r
162        public void charge_actionPerformed()\r
163       {\r
164         clearButtonGroup();\r
165         pdbcanvas.pdb.setChargeColours();\r
166         pdbcanvas.redrawneeded=true;\r
167         pdbcanvas.repaint();\r
168       }\r
169 \r
170       public void hydro_actionPerformed()\r
171       {\r
172         clearButtonGroup();\r
173         pdbcanvas.pdb.setHydrophobicityColours();\r
174         pdbcanvas.redrawneeded=true;\r
175         pdbcanvas.repaint();\r
176       }\r
177 \r
178       public void chain_actionPerformed()\r
179       {\r
180         clearButtonGroup();\r
181         pdbcanvas.pdb.setChainColours();\r
182         pdbcanvas.redrawneeded=true;\r
183         pdbcanvas.repaint();\r
184       }\r
185 \r
186       public void zbuffer_actionPerformed()\r
187       {\r
188         pdbcanvas.zbuffer = ! pdbcanvas.zbuffer;\r
189         pdbcanvas.redrawneeded=true;\r
190         pdbcanvas.repaint();\r
191       }\r
192 \r
193       public void molecule_actionPerformed()\r
194       {\r
195         pdbcanvas.bymolecule = ! pdbcanvas.bymolecule;\r
196         pdbcanvas.redrawneeded=true;\r
197         pdbcanvas.repaint();\r
198       }\r
199 \r
200       public void depth_actionPerformed()\r
201       {\r
202       pdbcanvas.depthcue = ! pdbcanvas.depthcue;\r
203       pdbcanvas.redrawneeded=true;\r
204         pdbcanvas.repaint();\r
205       }\r
206 \r
207       public void wire_actionPerformed()\r
208       {\r
209         pdbcanvas.wire = ! pdbcanvas.wire;\r
210         pdbcanvas.redrawneeded=true;\r
211         pdbcanvas.repaint();\r
212       }\r
213 \r
214       public void seqButton_actionPerformed()\r
215       {\r
216         clearButtonGroup();\r
217         pdbcanvas.bysequence = seqButton.getState();\r
218         pdbcanvas.updateSeqColours();\r
219       }\r
220 \r
221       void clearButtonGroup()\r
222       {\r
223        pdbcanvas.bysequence = false;\r
224        pdbcanvas.bymolecule = false;\r
225       }\r
226 \r
227       public void mapping_actionPerformed()\r
228       {\r
229         jalview.appletgui.CutAndPasteTransfer cap\r
230             = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
231         Frame frame = new Frame();\r
232         frame.add(cap);\r
233         jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500, 600);\r
234         cap.setText(pdbcanvas.mappingDetails.toString());\r
235       }\r
236     }\r