set chains available
[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                          String [] chains,\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, chains, 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();\r
92 \r
93     }\r
94     else if (evt.getSource() == zappo)\r
95     {\r
96       pdbcanvas.setColours(new ZappoColourScheme());\r
97     }\r
98     else if (evt.getSource() == taylor)\r
99     {\r
100       pdbcanvas.setColours(new TaylorColourScheme());\r
101     }\r
102     else if (evt.getSource() == hydro)\r
103     {\r
104       pdbcanvas.setColours(new HydrophobicColourScheme());\r
105     }\r
106     else if (evt.getSource() == helix)\r
107     {\r
108       pdbcanvas.setColours(new HelixColourScheme());\r
109     }\r
110     else if (evt.getSource() == strand)\r
111     {\r
112       pdbcanvas.setColours(new StrandColourScheme());\r
113     }\r
114     else if (evt.getSource() == turn)\r
115     {\r
116       pdbcanvas.setColours(new TurnColourScheme());\r
117     }\r
118     else if (evt.getSource() == buried)\r
119     {\r
120       pdbcanvas.setColours(new BuriedColourScheme());\r
121     }\r
122     else if (evt.getSource() == user)\r
123     {\r
124       pdbcanvas.bysequence = false;\r
125       new jalview.appletgui.UserDefinedColours(pdbcanvas);\r
126     }\r
127 \r
128     pdbcanvas.redrawneeded = true;\r
129     pdbcanvas.repaint();\r
130 \r
131   }\r
132 \r
133   public void itemStateChanged(ItemEvent evt)\r
134   {\r
135     if (evt.getSource() == allchains)\r
136     {\r
137       pdbcanvas.setAllchainsVisible(allchains.getState());\r
138     }\r
139     else if (evt.getSource() == wire)\r
140     {\r
141           pdbcanvas.wire = !pdbcanvas.wire;\r
142     }\r
143     else if (evt.getSource() == depth)\r
144     {\r
145       pdbcanvas.depthcue = !pdbcanvas.depthcue;\r
146     }\r
147     else if (evt.getSource() == zbuffer)\r
148     {\r
149       pdbcanvas.zbuffer = !pdbcanvas.zbuffer;\r
150     }\r
151     pdbcanvas.redrawneeded = true;\r
152     pdbcanvas.repaint();\r
153   }\r
154 \r
155   private void jbInit()\r
156       throws Exception\r
157   {\r
158     setMenuBar(jMenuBar1);\r
159     fileMenu.setLabel("File");\r
160     coloursMenu.setLabel("Colours");\r
161     mapping.setLabel("View Mapping");\r
162     mapping.addActionListener(this);\r
163     wire.setLabel("Wireframe");\r
164     wire.addItemListener(this);\r
165     depth.setState(true);\r
166     depth.setLabel("Depthcue");\r
167     depth.addItemListener(this);\r
168     zbuffer.setState(true);\r
169     zbuffer.setLabel("Z Buffering");\r
170     zbuffer.addItemListener(this);\r
171     charge.setLabel("Charge & Cysteine");\r
172     charge.addActionListener(this);\r
173     hydro.setLabel("Hydrophobicity");\r
174     hydro.addActionListener(this);\r
175     chain.setLabel("By Chain");\r
176     chain.addActionListener(this);\r
177     seqButton.setLabel("By Sequence");\r
178     seqButton.addActionListener(this);\r
179     allchains.setLabel("All Chains Visible");\r
180     allchains.addItemListener(this);\r
181     viewMenu.setLabel("View");\r
182     zappo.setLabel("Zappo");\r
183     zappo.addActionListener(this);\r
184     taylor.setLabel("Taylor");\r
185     taylor.addActionListener(this);\r
186     helix.setLabel("Helix Propensity");\r
187     helix.addActionListener(this);\r
188     strand.setLabel("Strand Propensity");\r
189     strand.addActionListener(this);\r
190     turn.setLabel("Turn Propensity");\r
191     turn.addActionListener(this);\r
192     buried.setLabel("Buried Index");\r
193     buried.addActionListener(this);\r
194     user.setLabel("User Defined...");\r
195     user.addActionListener(this);\r
196     jMenuBar1.add(fileMenu);\r
197     jMenuBar1.add(coloursMenu);\r
198     jMenuBar1.add(viewMenu);\r
199     fileMenu.add(mapping); ;\r
200 \r
201     coloursMenu.add(seqButton);\r
202     coloursMenu.add(chain);\r
203     coloursMenu.add(charge);\r
204     coloursMenu.add(zappo);\r
205     coloursMenu.add(taylor);\r
206     coloursMenu.add(hydro);\r
207     coloursMenu.add(helix);\r
208     coloursMenu.add(strand);\r
209     coloursMenu.add(turn);\r
210     coloursMenu.add(buried);\r
211     coloursMenu.add(user);\r
212     viewMenu.add(wire);\r
213     viewMenu.add(depth);\r
214     viewMenu.add(zbuffer);\r
215     viewMenu.add(allchains);\r
216     allchains.setState(true);\r
217   }\r
218 \r
219   MenuBar jMenuBar1 = new MenuBar();\r
220   Menu fileMenu = new Menu();\r
221   Menu coloursMenu = new Menu();\r
222   MenuItem mapping = new MenuItem();\r
223   CheckboxGroup bg = new CheckboxGroup();\r
224   CheckboxMenuItem wire = new CheckboxMenuItem();\r
225   CheckboxMenuItem depth = new CheckboxMenuItem();\r
226   CheckboxMenuItem zbuffer = new CheckboxMenuItem();\r
227 \r
228   MenuItem charge = new MenuItem();\r
229   MenuItem hydro = new MenuItem();\r
230   MenuItem chain = new MenuItem();\r
231   MenuItem seqButton = new MenuItem();\r
232 \r
233   CheckboxMenuItem allchains = new CheckboxMenuItem();\r
234   Menu viewMenu = new Menu();\r
235   MenuItem turn = new MenuItem();\r
236   MenuItem strand = new MenuItem();\r
237   MenuItem helix = new MenuItem();\r
238   MenuItem taylor = new MenuItem();\r
239   MenuItem zappo = new MenuItem();\r
240   MenuItem buried = new MenuItem();\r
241   MenuItem user = new MenuItem();\r
242 \r
243 \r
244 //End StructureListener\r
245 ////////////////////////////\r
246 \r
247 \r
248 }\r