3f4e42c608bbc24fc8ebc27736f5b80bb24067cb
[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     allchains.setLabel("All Chains Visible");\r
121     allchains.addItemListener(new ItemListener()\r
122     {\r
123       public void itemStateChanged(ItemEvent itemEvent)\r
124       {\r
125         allchains_itemStateChanged(itemEvent);\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(allchains);\r
141     allchains.setState(true);\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 allchains = 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 depth_actionPerformed()\r
192       {\r
193       pdbcanvas.depthcue = ! pdbcanvas.depthcue;\r
194       pdbcanvas.redrawneeded=true;\r
195         pdbcanvas.repaint();\r
196       }\r
197 \r
198       public void wire_actionPerformed()\r
199       {\r
200         pdbcanvas.wire = ! pdbcanvas.wire;\r
201         pdbcanvas.redrawneeded=true;\r
202         pdbcanvas.repaint();\r
203       }\r
204 \r
205       public void seqButton_actionPerformed()\r
206       {\r
207         clearButtonGroup();\r
208         pdbcanvas.bysequence = true;\r
209         pdbcanvas.updateSeqColours();\r
210       }\r
211 \r
212       void clearButtonGroup()\r
213       {\r
214        pdbcanvas.bysequence = false;\r
215        pdbcanvas.bymolecule = false;\r
216       }\r
217 \r
218       public void mapping_actionPerformed()\r
219       {\r
220         jalview.appletgui.CutAndPasteTransfer cap\r
221             = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
222         Frame frame = new Frame();\r
223         frame.add(cap);\r
224         jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500, 600);\r
225         cap.setText(pdbcanvas.mappingDetails.toString());\r
226       }\r
227 \r
228       public void allchains_itemStateChanged(ItemEvent itemEvent)\r
229       {\r
230         pdbcanvas.setAllchainsVisible(allchains.getState());\r
231       }\r
232 }\r