c3063a8bffa7008544e8f92966022c3498db6dce
[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,String type,\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, type);\r
44         pdbcanvas.setPDBFile(pdbfile);\r
45         }\r
46         catch(Exception ex){\r
47           pdbcanvas.errorLoading = true;\r
48           pdbcanvas.repaint();\r
49         }\r
50       }\r
51 \r
52 \r
53       private void jbInit()\r
54           throws Exception\r
55       {\r
56         this.setMenuBar(jMenuBar1);\r
57         fileMenu.setLabel("File");\r
58         coloursMenu.setLabel("Colours");\r
59         mapping.setLabel("View Mapping");\r
60         mapping.addActionListener(new ActionListener()\r
61         {\r
62           public void actionPerformed(ActionEvent e)\r
63           {\r
64             mapping_actionPerformed();\r
65           }\r
66         });\r
67         wire.setLabel("Wireframe");\r
68         wire.addItemListener(new ItemListener()\r
69         {\r
70           public void itemStateChanged(ItemEvent e)\r
71           {\r
72             wire_actionPerformed();\r
73           }\r
74         });\r
75         depth.setState(true);\r
76         depth.setLabel("Depthcue");\r
77         depth.addItemListener(new ItemListener()\r
78         {\r
79           public void itemStateChanged(ItemEvent e)\r
80           {\r
81             depth_actionPerformed();\r
82           }\r
83         });\r
84         zbuffer.setState(true);\r
85         zbuffer.setLabel("Z Buffering");\r
86         zbuffer.addItemListener(new ItemListener()\r
87         {\r
88           public void itemStateChanged(ItemEvent e)\r
89           {\r
90             zbuffer_actionPerformed();\r
91           }\r
92         });\r
93         charge.setLabel("Charge & Cysteine");\r
94         charge.addActionListener(new ActionListener()\r
95         {\r
96           public void actionPerformed(ActionEvent e)\r
97           {\r
98             charge_actionPerformed();\r
99           }\r
100         });\r
101         hydro.setLabel("Hydrophobicity");\r
102         hydro.addActionListener(new ActionListener()\r
103         {\r
104           public void actionPerformed(ActionEvent e)\r
105           {\r
106             hydro_actionPerformed();\r
107           }\r
108         });\r
109         chain.setLabel("By Chain");\r
110         chain.addActionListener(new ActionListener()\r
111         {\r
112           public void actionPerformed(ActionEvent e)\r
113           {\r
114             chain_actionPerformed();\r
115           }\r
116         });\r
117         seqButton.setLabel("By Sequence");\r
118         seqButton.addActionListener(new ActionListener()\r
119         {\r
120           public void actionPerformed(ActionEvent e){\r
121             seqButton_actionPerformed();\r
122           }\r
123         });\r
124     allchains.setLabel("All Chains Visible");\r
125     allchains.addItemListener(new ItemListener()\r
126     {\r
127       public void itemStateChanged(ItemEvent itemEvent)\r
128       {\r
129         allchains_itemStateChanged(itemEvent);\r
130       }\r
131     });\r
132     jMenuBar1.add(fileMenu);\r
133         jMenuBar1.add(coloursMenu);\r
134         fileMenu.add(mapping);;\r
135 \r
136         coloursMenu.add(seqButton);\r
137         coloursMenu.add(chain);\r
138     coloursMenu.add(hydro);\r
139     coloursMenu.add(charge);\r
140     coloursMenu.addSeparator();\r
141         coloursMenu.add(wire);\r
142         coloursMenu.add(depth);\r
143         coloursMenu.add(zbuffer);\r
144     coloursMenu.add(allchains);\r
145     allchains.setState(true);\r
146   }\r
147 \r
148       MenuBar jMenuBar1 = new MenuBar();\r
149       Menu fileMenu = new Menu();\r
150       Menu coloursMenu = new Menu();\r
151       MenuItem mapping = new MenuItem();\r
152       CheckboxGroup bg = new CheckboxGroup();\r
153       CheckboxMenuItem wire = new CheckboxMenuItem();\r
154       CheckboxMenuItem depth = new CheckboxMenuItem();\r
155       CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
156 \r
157       MenuItem charge = new MenuItem();\r
158       MenuItem hydro = new MenuItem();\r
159       MenuItem chain = new MenuItem();\r
160       MenuItem seqButton = new MenuItem();\r
161 \r
162      CheckboxMenuItem allchains = new CheckboxMenuItem();\r
163 \r
164   public void charge_actionPerformed()\r
165       {\r
166         clearButtonGroup();\r
167         pdbcanvas.pdb.setChargeColours();\r
168         pdbcanvas.redrawneeded=true;\r
169         pdbcanvas.repaint();\r
170       }\r
171 \r
172       public void hydro_actionPerformed()\r
173       {\r
174         clearButtonGroup();\r
175         pdbcanvas.pdb.setHydrophobicityColours();\r
176         pdbcanvas.redrawneeded=true;\r
177         pdbcanvas.repaint();\r
178       }\r
179 \r
180       public void chain_actionPerformed()\r
181       {\r
182         clearButtonGroup();\r
183         pdbcanvas.pdb.setChainColours();\r
184         pdbcanvas.redrawneeded=true;\r
185         pdbcanvas.repaint();\r
186       }\r
187 \r
188       public void zbuffer_actionPerformed()\r
189       {\r
190         pdbcanvas.zbuffer = ! pdbcanvas.zbuffer;\r
191         pdbcanvas.redrawneeded=true;\r
192         pdbcanvas.repaint();\r
193       }\r
194 \r
195       public void depth_actionPerformed()\r
196       {\r
197       pdbcanvas.depthcue = ! pdbcanvas.depthcue;\r
198       pdbcanvas.redrawneeded=true;\r
199         pdbcanvas.repaint();\r
200       }\r
201 \r
202       public void wire_actionPerformed()\r
203       {\r
204         pdbcanvas.wire = ! pdbcanvas.wire;\r
205         pdbcanvas.redrawneeded=true;\r
206         pdbcanvas.repaint();\r
207       }\r
208 \r
209       public void seqButton_actionPerformed()\r
210       {\r
211         clearButtonGroup();\r
212         pdbcanvas.bysequence = true;\r
213         pdbcanvas.updateSeqColours();\r
214         pdbcanvas.repaint();\r
215       }\r
216 \r
217       void clearButtonGroup()\r
218       {\r
219        pdbcanvas.bysequence = false;\r
220        pdbcanvas.bymolecule = false;\r
221       }\r
222 \r
223       public void mapping_actionPerformed()\r
224       {\r
225         jalview.appletgui.CutAndPasteTransfer cap\r
226             = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
227         Frame frame = new Frame();\r
228         frame.add(cap);\r
229         jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500, 600);\r
230         cap.setText(pdbcanvas.mappingDetails.toString());\r
231       }\r
232 \r
233       public void allchains_itemStateChanged(ItemEvent itemEvent)\r
234       {\r
235         pdbcanvas.setAllchainsVisible(allchains.getState());\r
236       }\r
237 }\r