Allow single line BLC files
[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     allchains.setLabel("All Chains Visible");\r
129     allchains.addItemListener(new ItemListener()\r
130     {\r
131       public void itemStateChanged(ItemEvent itemEvent)\r
132       {\r
133         allchains_itemStateChanged(itemEvent);\r
134       }\r
135     });\r
136     jMenuBar1.add(fileMenu);\r
137         jMenuBar1.add(coloursMenu);\r
138         fileMenu.add(mapping);;\r
139 \r
140         coloursMenu.add(seqButton);\r
141         coloursMenu.add(chain);\r
142     coloursMenu.add(hydro);\r
143     coloursMenu.add(charge);\r
144     coloursMenu.add(molecule);\r
145     coloursMenu.addSeparator();\r
146         coloursMenu.add(wire);\r
147         coloursMenu.add(depth);\r
148         coloursMenu.add(zbuffer);\r
149     coloursMenu.add(allchains);\r
150     allchains.setState(true);\r
151   }\r
152 \r
153       MenuBar jMenuBar1 = new MenuBar();\r
154       Menu fileMenu = new Menu();\r
155       Menu coloursMenu = new Menu();\r
156       MenuItem mapping = new MenuItem();\r
157       CheckboxGroup bg = new CheckboxGroup();\r
158       CheckboxMenuItem wire = new CheckboxMenuItem();\r
159       CheckboxMenuItem depth = new CheckboxMenuItem();\r
160       CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
161 \r
162       MenuItem charge = new MenuItem();\r
163       MenuItem hydro = new MenuItem();\r
164       MenuItem chain = new MenuItem();\r
165       MenuItem seqButton = new MenuItem();\r
166 \r
167       CheckboxMenuItem molecule = new CheckboxMenuItem();\r
168      CheckboxMenuItem allchains = new CheckboxMenuItem();\r
169 \r
170   public void charge_actionPerformed()\r
171       {\r
172         clearButtonGroup();\r
173         pdbcanvas.pdb.setChargeColours();\r
174         pdbcanvas.redrawneeded=true;\r
175         pdbcanvas.repaint();\r
176       }\r
177 \r
178       public void hydro_actionPerformed()\r
179       {\r
180         clearButtonGroup();\r
181         pdbcanvas.pdb.setHydrophobicityColours();\r
182         pdbcanvas.redrawneeded=true;\r
183         pdbcanvas.repaint();\r
184       }\r
185 \r
186       public void chain_actionPerformed()\r
187       {\r
188         clearButtonGroup();\r
189         pdbcanvas.pdb.setChainColours();\r
190         pdbcanvas.redrawneeded=true;\r
191         pdbcanvas.repaint();\r
192       }\r
193 \r
194       public void zbuffer_actionPerformed()\r
195       {\r
196         pdbcanvas.zbuffer = ! pdbcanvas.zbuffer;\r
197         pdbcanvas.redrawneeded=true;\r
198         pdbcanvas.repaint();\r
199       }\r
200 \r
201       public void molecule_actionPerformed()\r
202       {\r
203         pdbcanvas.bymolecule = ! pdbcanvas.bymolecule;\r
204         pdbcanvas.redrawneeded=true;\r
205         pdbcanvas.repaint();\r
206       }\r
207 \r
208       public void depth_actionPerformed()\r
209       {\r
210       pdbcanvas.depthcue = ! pdbcanvas.depthcue;\r
211       pdbcanvas.redrawneeded=true;\r
212         pdbcanvas.repaint();\r
213       }\r
214 \r
215       public void wire_actionPerformed()\r
216       {\r
217         pdbcanvas.wire = ! pdbcanvas.wire;\r
218         pdbcanvas.redrawneeded=true;\r
219         pdbcanvas.repaint();\r
220       }\r
221 \r
222       public void seqButton_actionPerformed()\r
223       {\r
224         clearButtonGroup();\r
225         pdbcanvas.bysequence = true;\r
226         pdbcanvas.updateSeqColours();\r
227       }\r
228 \r
229       void clearButtonGroup()\r
230       {\r
231        pdbcanvas.bysequence = false;\r
232        pdbcanvas.bymolecule = false;\r
233       }\r
234 \r
235       public void mapping_actionPerformed()\r
236       {\r
237         jalview.appletgui.CutAndPasteTransfer cap\r
238             = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
239         Frame frame = new Frame();\r
240         frame.add(cap);\r
241         jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500, 600);\r
242         cap.setText(pdbcanvas.mappingDetails.toString());\r
243       }\r
244 \r
245       public void allchains_itemStateChanged(ItemEvent itemEvent)\r
246       {\r
247         pdbcanvas.setAllchainsVisible(allchains.getState());\r
248       }\r
249 }\r