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