No longer use ref to seqcanvas for painting
[jalview.git] / src / MCview / AppletPDBViewer.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer\r
3  * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  *\r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  *\r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  *\r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 package MCview;\r
20 \r
21 import java.awt.*;\r
22 import java.awt.event.*;\r
23 \r
24 import jalview.appletgui.*;\r
25 import jalview.datamodel.*;\r
26 import jalview.schemes.*;\r
27 import jalview.structure.StructureListener;\r
28 import jalview.structure.*;\r
29 \r
30 public class AppletPDBViewer\r
31     extends Frame implements ActionListener, ItemListener\r
32 {\r
33   AppletPDBCanvas pdbcanvas;\r
34 \r
35   public AppletPDBViewer(PDBEntry pdbentry,\r
36                          SequenceI[] seq,\r
37                          AlignmentPanel ap,\r
38                          String protocol)\r
39   {\r
40     try\r
41     {\r
42       jbInit();\r
43     }\r
44     catch (Exception ex)\r
45     {\r
46       ex.printStackTrace();\r
47     }\r
48 \r
49     pdbcanvas = new AppletPDBCanvas(pdbentry, seq, ap, protocol);\r
50 \r
51 \r
52     add(pdbcanvas, BorderLayout.CENTER);\r
53 \r
54     StringBuffer title = new StringBuffer(seq[0].getName()\r
55                                           + ":"\r
56                                           + pdbcanvas.pdbentry.getFile());\r
57 \r
58     jalview.bin.JalviewLite.addFrame(this, title.toString(), 400, 400);\r
59 \r
60   }\r
61 \r
62 \r
63 \r
64   public void actionPerformed(ActionEvent evt)\r
65   {\r
66     if (evt.getSource() == mapping)\r
67     {\r
68       jalview.appletgui.CutAndPasteTransfer cap\r
69           = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
70       Frame frame = new Frame();\r
71       frame.add(cap);\r
72       jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500,\r
73                                        600);\r
74       cap.setText(pdbcanvas.mappingDetails.toString());\r
75 \r
76     }\r
77     else if (evt.getSource() == charge)\r
78     {\r
79       pdbcanvas.bysequence = false;\r
80       pdbcanvas.pdb.setChargeColours();\r
81     }\r
82 \r
83     else if (evt.getSource() == chain)\r
84     {\r
85       pdbcanvas.bysequence = false;\r
86       pdbcanvas.pdb.setChainColours();\r
87     }\r
88     else if (evt.getSource() == seqButton)\r
89     {\r
90       pdbcanvas.bysequence = true;\r
91       pdbcanvas.colourBySequence(pdbcanvas.ap.getSequenceRenderer(),\r
92                                  pdbcanvas.ap.av.getShowSequenceFeatures() ?\r
93                                  pdbcanvas.ap.getFeatureRenderer() : null);\r
94 \r
95     }\r
96     else if (evt.getSource() == zappo)\r
97     {\r
98       pdbcanvas.setColours(new ZappoColourScheme());\r
99     }\r
100     else if (evt.getSource() == taylor)\r
101     {\r
102       pdbcanvas.setColours(new TaylorColourScheme());\r
103     }\r
104     else if (evt.getSource() == hydro)\r
105     {\r
106       pdbcanvas.setColours(new HydrophobicColourScheme());\r
107     }\r
108     else if (evt.getSource() == helix)\r
109     {\r
110       pdbcanvas.setColours(new HelixColourScheme());\r
111     }\r
112     else if (evt.getSource() == strand)\r
113     {\r
114       pdbcanvas.setColours(new StrandColourScheme());\r
115     }\r
116     else if (evt.getSource() == turn)\r
117     {\r
118       pdbcanvas.setColours(new TurnColourScheme());\r
119     }\r
120     else if (evt.getSource() == buried)\r
121     {\r
122       pdbcanvas.setColours(new BuriedColourScheme());\r
123     }\r
124     else if (evt.getSource() == user)\r
125     {\r
126       pdbcanvas.bysequence = false;\r
127       new jalview.appletgui.UserDefinedColours(pdbcanvas);\r
128     }\r
129 \r
130     pdbcanvas.redrawneeded = true;\r
131     pdbcanvas.repaint();\r
132 \r
133   }\r
134 \r
135   public void itemStateChanged(ItemEvent evt)\r
136   {\r
137     if (evt.getSource() == allchains)\r
138     {\r
139       pdbcanvas.setAllchainsVisible(allchains.getState());\r
140     }\r
141     else if (evt.getSource() == wire)\r
142     {\r
143           pdbcanvas.wire = !pdbcanvas.wire;\r
144     }\r
145     else if (evt.getSource() == depth)\r
146     {\r
147       pdbcanvas.depthcue = !pdbcanvas.depthcue;\r
148     }\r
149     else if (evt.getSource() == zbuffer)\r
150     {\r
151       pdbcanvas.zbuffer = !pdbcanvas.zbuffer;\r
152     }\r
153     pdbcanvas.redrawneeded = true;\r
154     pdbcanvas.repaint();\r
155   }\r
156 \r
157   private void jbInit()\r
158       throws Exception\r
159   {\r
160     setMenuBar(jMenuBar1);\r
161     fileMenu.setLabel("File");\r
162     coloursMenu.setLabel("Colours");\r
163     mapping.setLabel("View Mapping");\r
164     mapping.addActionListener(this);\r
165     wire.setLabel("Wireframe");\r
166     wire.addItemListener(this);\r
167     depth.setState(true);\r
168     depth.setLabel("Depthcue");\r
169     depth.addItemListener(this);\r
170     zbuffer.setState(true);\r
171     zbuffer.setLabel("Z Buffering");\r
172     zbuffer.addItemListener(this);\r
173     charge.setLabel("Charge & Cysteine");\r
174     charge.addActionListener(this);\r
175     hydro.setLabel("Hydrophobicity");\r
176     hydro.addActionListener(this);\r
177     chain.setLabel("By Chain");\r
178     chain.addActionListener(this);\r
179     seqButton.setLabel("By Sequence");\r
180     seqButton.addActionListener(this);\r
181     allchains.setLabel("All Chains Visible");\r
182     allchains.addItemListener(this);\r
183     viewMenu.setLabel("View");\r
184     zappo.setLabel("Zappo");\r
185     zappo.addActionListener(this);\r
186     taylor.setLabel("Taylor");\r
187     taylor.addActionListener(this);\r
188     helix.setLabel("Helix Propensity");\r
189     helix.addActionListener(this);\r
190     strand.setLabel("Strand Propensity");\r
191     strand.addActionListener(this);\r
192     turn.setLabel("Turn Propensity");\r
193     turn.addActionListener(this);\r
194     buried.setLabel("Buried Index");\r
195     buried.addActionListener(this);\r
196     user.setLabel("User Defined...");\r
197     user.addActionListener(this);\r
198     jMenuBar1.add(fileMenu);\r
199     jMenuBar1.add(coloursMenu);\r
200     jMenuBar1.add(viewMenu);\r
201     fileMenu.add(mapping); ;\r
202 \r
203     coloursMenu.add(seqButton);\r
204     coloursMenu.add(chain);\r
205     coloursMenu.add(charge);\r
206     coloursMenu.add(zappo);\r
207     coloursMenu.add(taylor);\r
208     coloursMenu.add(hydro);\r
209     coloursMenu.add(helix);\r
210     coloursMenu.add(strand);\r
211     coloursMenu.add(turn);\r
212     coloursMenu.add(buried);\r
213     coloursMenu.add(user);\r
214     viewMenu.add(wire);\r
215     viewMenu.add(depth);\r
216     viewMenu.add(zbuffer);\r
217     viewMenu.add(allchains);\r
218     allchains.setState(true);\r
219   }\r
220 \r
221   MenuBar jMenuBar1 = new MenuBar();\r
222   Menu fileMenu = new Menu();\r
223   Menu coloursMenu = new Menu();\r
224   MenuItem mapping = new MenuItem();\r
225   CheckboxGroup bg = new CheckboxGroup();\r
226   CheckboxMenuItem wire = new CheckboxMenuItem();\r
227   CheckboxMenuItem depth = new CheckboxMenuItem();\r
228   CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
229 \r
230   MenuItem charge = new MenuItem();\r
231   MenuItem hydro = new MenuItem();\r
232   MenuItem chain = new MenuItem();\r
233   MenuItem seqButton = new MenuItem();\r
234 \r
235   CheckboxMenuItem allchains = new CheckboxMenuItem();\r
236   Menu viewMenu = new Menu();\r
237   MenuItem turn = new MenuItem();\r
238   MenuItem strand = new MenuItem();\r
239   MenuItem helix = new MenuItem();\r
240   MenuItem taylor = new MenuItem();\r
241   MenuItem zappo = new MenuItem();\r
242   MenuItem buried = new MenuItem();\r
243   MenuItem user = new MenuItem();\r
244 \r
245 \r
246 //End StructureListener\r
247 ////////////////////////////\r
248 \r
249 \r
250 }\r