Trouble with featureRenderers fixed
[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 \r
28 \r
29 public class AppletPDBViewer\r
30     extends Frame implements ActionListener, ItemListener\r
31 {\r
32   AppletPDBCanvas pdbcanvas;\r
33 \r
34   public AppletPDBViewer(PDBEntry pdbentry,\r
35                          SequenceI[] seq,\r
36                          AlignmentPanel ap,\r
37                          String protocol)\r
38   {\r
39     try\r
40     {\r
41       jbInit();\r
42     }\r
43     catch (Exception ex)\r
44     {\r
45       ex.printStackTrace();\r
46     }\r
47 \r
48     pdbcanvas = new AppletPDBCanvas(pdbentry, seq, ap, protocol);\r
49 \r
50 \r
51     add(pdbcanvas, BorderLayout.CENTER);\r
52 \r
53     System.out.println(seq[0].getName()+" ASFA");\r
54 \r
55     StringBuffer title = new StringBuffer(seq[0].getName()\r
56                                           + ":"\r
57                                           + pdbcanvas.pdbentry.getFile());\r
58 \r
59     jalview.bin.JalviewLite.addFrame(this, title.toString(), 400, 400);\r
60 \r
61   }\r
62 \r
63 \r
64 \r
65   public void actionPerformed(ActionEvent evt)\r
66   {\r
67     if (evt.getSource() == mapping)\r
68     {\r
69       jalview.appletgui.CutAndPasteTransfer cap\r
70           = new jalview.appletgui.CutAndPasteTransfer(false, null);\r
71       Frame frame = new Frame();\r
72       frame.add(cap);\r
73       jalview.bin.JalviewLite.addFrame(frame, "PDB - Sequence Mapping", 500,\r
74                                        600);\r
75       cap.setText(pdbcanvas.mappingDetails.toString());\r
76 \r
77     }\r
78     else if (evt.getSource() == charge)\r
79     {\r
80       pdbcanvas.bysequence = false;\r
81       pdbcanvas.pdb.setChargeColours();\r
82     }\r
83 \r
84     else if (evt.getSource() == chain)\r
85     {\r
86       pdbcanvas.bysequence = false;\r
87       pdbcanvas.pdb.setChainColours();\r
88     }\r
89     else if (evt.getSource() == seqButton)\r
90     {\r
91       pdbcanvas.bysequence = true;\r
92       pdbcanvas.colourBySequence(pdbcanvas.ap.getSequenceRenderer(),\r
93                                  pdbcanvas.ap.av.getShowSequenceFeatures() ?\r
94                                  pdbcanvas.ap.getFeatureRenderer() : null);\r
95 \r
96     }\r
97     else if (evt.getSource() == zappo)\r
98     {\r
99       pdbcanvas.setColours(new ZappoColourScheme());\r
100     }\r
101     else if (evt.getSource() == taylor)\r
102     {\r
103       pdbcanvas.setColours(new TaylorColourScheme());\r
104     }\r
105     else if (evt.getSource() == hydro)\r
106     {\r
107       pdbcanvas.setColours(new HydrophobicColourScheme());\r
108     }\r
109     else if (evt.getSource() == helix)\r
110     {\r
111       pdbcanvas.setColours(new HelixColourScheme());\r
112     }\r
113     else if (evt.getSource() == strand)\r
114     {\r
115       pdbcanvas.setColours(new StrandColourScheme());\r
116     }\r
117     else if (evt.getSource() == turn)\r
118     {\r
119       pdbcanvas.setColours(new TurnColourScheme());\r
120     }\r
121     else if (evt.getSource() == buried)\r
122     {\r
123       pdbcanvas.setColours(new BuriedColourScheme());\r
124     }\r
125     else if (evt.getSource() == user)\r
126     {\r
127       pdbcanvas.bysequence = false;\r
128       new jalview.appletgui.UserDefinedColours(pdbcanvas);\r
129     }\r
130 \r
131     pdbcanvas.redrawneeded = true;\r
132     pdbcanvas.repaint();\r
133 \r
134   }\r
135 \r
136   public void itemStateChanged(ItemEvent evt)\r
137   {\r
138     if (evt.getSource() == allchains)\r
139     {\r
140       pdbcanvas.setAllchainsVisible(allchains.getState());\r
141     }\r
142     else if (evt.getSource() == wire)\r
143     {\r
144           pdbcanvas.wire = !pdbcanvas.wire;\r
145     }\r
146     else if (evt.getSource() == depth)\r
147     {\r
148       pdbcanvas.depthcue = !pdbcanvas.depthcue;\r
149     }\r
150     else if (evt.getSource() == zbuffer)\r
151     {\r
152       pdbcanvas.zbuffer = !pdbcanvas.zbuffer;\r
153     }\r
154     pdbcanvas.redrawneeded = true;\r
155     pdbcanvas.repaint();\r
156   }\r
157 \r
158   private void jbInit()\r
159       throws Exception\r
160   {\r
161     setMenuBar(jMenuBar1);\r
162     fileMenu.setLabel("File");\r
163     coloursMenu.setLabel("Colours");\r
164     mapping.setLabel("View Mapping");\r
165     mapping.addActionListener(this);\r
166     wire.setLabel("Wireframe");\r
167     wire.addItemListener(this);\r
168     depth.setState(true);\r
169     depth.setLabel("Depthcue");\r
170     depth.addItemListener(this);\r
171     zbuffer.setState(true);\r
172     zbuffer.setLabel("Z Buffering");\r
173     zbuffer.addItemListener(this);\r
174     charge.setLabel("Charge & Cysteine");\r
175     charge.addActionListener(this);\r
176     hydro.setLabel("Hydrophobicity");\r
177     hydro.addActionListener(this);\r
178     chain.setLabel("By Chain");\r
179     chain.addActionListener(this);\r
180     seqButton.setLabel("By Sequence");\r
181     seqButton.addActionListener(this);\r
182     allchains.setLabel("All Chains Visible");\r
183     allchains.addItemListener(this);\r
184     viewMenu.setLabel("View");\r
185     zappo.setLabel("Zappo");\r
186     zappo.addActionListener(this);\r
187     taylor.setLabel("Taylor");\r
188     taylor.addActionListener(this);\r
189     helix.setLabel("Helix Propensity");\r
190     helix.addActionListener(this);\r
191     strand.setLabel("Strand Propensity");\r
192     strand.addActionListener(this);\r
193     turn.setLabel("Turn Propensity");\r
194     turn.addActionListener(this);\r
195     buried.setLabel("Buried Index");\r
196     buried.addActionListener(this);\r
197     user.setLabel("User Defined...");\r
198     user.addActionListener(this);\r
199     jMenuBar1.add(fileMenu);\r
200     jMenuBar1.add(coloursMenu);\r
201     jMenuBar1.add(viewMenu);\r
202     fileMenu.add(mapping); ;\r
203 \r
204     coloursMenu.add(seqButton);\r
205     coloursMenu.add(chain);\r
206     coloursMenu.add(charge);\r
207     coloursMenu.add(zappo);\r
208     coloursMenu.add(taylor);\r
209     coloursMenu.add(hydro);\r
210     coloursMenu.add(helix);\r
211     coloursMenu.add(strand);\r
212     coloursMenu.add(turn);\r
213     coloursMenu.add(buried);\r
214     coloursMenu.add(user);\r
215     viewMenu.add(wire);\r
216     viewMenu.add(depth);\r
217     viewMenu.add(zbuffer);\r
218     viewMenu.add(allchains);\r
219     allchains.setState(true);\r
220   }\r
221 \r
222   MenuBar jMenuBar1 = new MenuBar();\r
223   Menu fileMenu = new Menu();\r
224   Menu coloursMenu = new Menu();\r
225   MenuItem mapping = new MenuItem();\r
226   CheckboxGroup bg = new CheckboxGroup();\r
227   CheckboxMenuItem wire = new CheckboxMenuItem();\r
228   CheckboxMenuItem depth = new CheckboxMenuItem();\r
229   CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
230 \r
231   MenuItem charge = new MenuItem();\r
232   MenuItem hydro = new MenuItem();\r
233   MenuItem chain = new MenuItem();\r
234   MenuItem seqButton = new MenuItem();\r
235 \r
236   CheckboxMenuItem allchains = new CheckboxMenuItem();\r
237   Menu viewMenu = new Menu();\r
238   MenuItem turn = new MenuItem();\r
239   MenuItem strand = new MenuItem();\r
240   MenuItem helix = new MenuItem();\r
241   MenuItem taylor = new MenuItem();\r
242   MenuItem zappo = new MenuItem();\r
243   MenuItem buried = new MenuItem();\r
244   MenuItem user = new MenuItem();\r
245 \r
246 \r
247 //End StructureListener\r
248 ////////////////////////////\r
249 \r
250 \r
251 }\r