77bbd8c86b086c695a07e9f32e65d0c0e4d924b3
[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.addActionListener(new ActionListener()\r
91         {\r
92           public void actionPerformed(ActionEvent e)\r
93           {\r
94             charge_actionPerformed();\r
95           }\r
96         });\r
97         hydro.setLabel("Hydrophobicity");\r
98         hydro.addActionListener(new ActionListener()\r
99         {\r
100           public void actionPerformed(ActionEvent e)\r
101           {\r
102             hydro_actionPerformed();\r
103           }\r
104         });\r
105         chain.setLabel("By Chain");\r
106         chain.addActionListener(new ActionListener()\r
107         {\r
108           public void actionPerformed(ActionEvent e)\r
109           {\r
110             chain_actionPerformed();\r
111           }\r
112         });\r
113         seqButton.setLabel("By Sequence");\r
114         seqButton.addActionListener(new ActionListener()\r
115         {\r
116           public void actionPerformed(ActionEvent e){\r
117             seqButton_actionPerformed();\r
118           }\r
119         });\r
120         molecule.setLabel("By Molecule");\r
121         molecule.addItemListener(new ItemListener()\r
122         {\r
123           public void itemStateChanged(ItemEvent e)\r
124           {\r
125             molecule_actionPerformed();\r
126           }\r
127         });\r
128         jMenuBar1.add(fileMenu);\r
129         jMenuBar1.add(coloursMenu);\r
130         fileMenu.add(mapping);;\r
131 \r
132         coloursMenu.add(seqButton);\r
133         coloursMenu.add(chain);\r
134         coloursMenu.add(hydro);\r
135         coloursMenu.add(charge);\r
136         coloursMenu.addSeparator();\r
137         coloursMenu.add(wire);\r
138         coloursMenu.add(depth);\r
139         coloursMenu.add(zbuffer);\r
140         coloursMenu.add(molecule);\r
141 \r
142       }\r
143 \r
144       MenuBar jMenuBar1 = new MenuBar();\r
145       Menu fileMenu = new Menu();\r
146       Menu coloursMenu = new Menu();\r
147       MenuItem mapping = new MenuItem();\r
148       CheckboxGroup bg = new CheckboxGroup();\r
149       CheckboxMenuItem wire = new CheckboxMenuItem();\r
150       CheckboxMenuItem depth = new CheckboxMenuItem();\r
151       CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
152 \r
153       MenuItem charge = new MenuItem();\r
154       MenuItem hydro = new MenuItem();\r
155       MenuItem chain = new MenuItem();\r
156       MenuItem seqButton = new MenuItem();\r
157 \r
158       CheckboxMenuItem molecule = new CheckboxMenuItem();\r
159 \r
160        public void charge_actionPerformed()\r
161       {\r
162         clearButtonGroup();\r
163         pdbcanvas.pdb.setChargeColours();\r
164         pdbcanvas.redrawneeded=true;\r
165         pdbcanvas.repaint();\r
166       }\r
167 \r
168       public void hydro_actionPerformed()\r
169       {\r
170         clearButtonGroup();\r
171         pdbcanvas.pdb.setHydrophobicityColours();\r
172         pdbcanvas.redrawneeded=true;\r
173         pdbcanvas.repaint();\r
174       }\r
175 \r
176       public void chain_actionPerformed()\r
177       {\r
178         clearButtonGroup();\r
179         pdbcanvas.pdb.setChainColours();\r
180         pdbcanvas.redrawneeded=true;\r
181         pdbcanvas.repaint();\r
182       }\r
183 \r
184       public void zbuffer_actionPerformed()\r
185       {\r
186         pdbcanvas.zbuffer = ! pdbcanvas.zbuffer;\r
187         pdbcanvas.redrawneeded=true;\r
188         pdbcanvas.repaint();\r
189       }\r
190 \r
191       public void molecule_actionPerformed()\r
192       {\r
193         pdbcanvas.bymolecule = ! pdbcanvas.bymolecule;\r
194         pdbcanvas.redrawneeded=true;\r
195         pdbcanvas.repaint();\r
196       }\r
197 \r
198       public void depth_actionPerformed()\r
199       {\r
200       pdbcanvas.depthcue = ! pdbcanvas.depthcue;\r
201       pdbcanvas.redrawneeded=true;\r
202         pdbcanvas.repaint();\r
203       }\r
204 \r
205       public void wire_actionPerformed()\r
206       {\r
207         pdbcanvas.wire = ! pdbcanvas.wire;\r
208         pdbcanvas.redrawneeded=true;\r
209         pdbcanvas.repaint();\r
210       }\r
211 \r
212       public void seqButton_actionPerformed()\r
213       {\r
214         clearButtonGroup();\r
215         pdbcanvas.bysequence = true;\r
216         pdbcanvas.updateSeqColours();\r
217       }\r
218 \r
219       void clearButtonGroup()\r
220       {\r
221        pdbcanvas.bysequence = false;\r
222        pdbcanvas.bymolecule = false;\r
223       }\r
224 \r
225       public void mapping_actionPerformed()\r
226       {\r
227         jalview.appletgui.CutAndPasteTransfer cap\r
228             = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
229         Frame frame = new Frame();\r
230         frame.add(cap);\r
231         jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500, 600);\r
232         cap.setText(pdbcanvas.mappingDetails.toString());\r
233       }\r
234     }\r