JAL-1503 update version in GPL header
[jalview.git] / src / MCview / AppletPDBViewer.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1)
3  * Copyright (C) 2014 The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10  *  
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  * The Jalview Authors are detailed in the 'AUTHORS' file.
18  */
19 package MCview;
20
21 import java.awt.*;
22 import java.awt.event.*;
23
24 import jalview.appletgui.*;
25 import jalview.datamodel.*;
26 import jalview.schemes.*;
27 import jalview.util.MessageManager;
28
29 public class AppletPDBViewer extends EmbmenuFrame implements
30         ActionListener, ItemListener
31 {
32   AppletPDBCanvas pdbcanvas;
33
34   public AppletPDBViewer(PDBEntry pdbentry, SequenceI[] seq,
35           String[] chains, AlignmentPanel ap, String protocol)
36   {
37     try
38     {
39       jbInit();
40     } catch (Exception ex)
41     {
42       ex.printStackTrace();
43     }
44
45     pdbcanvas = new AppletPDBCanvas(pdbentry, seq, chains, ap, protocol);
46
47     embedMenuIfNeeded(pdbcanvas);
48     add(pdbcanvas, BorderLayout.CENTER);
49
50     StringBuffer title = new StringBuffer(seq[0].getName() + ":"
51             + pdbcanvas.pdbentry.getFile());
52
53     jalview.bin.JalviewLite.addFrame(this, title.toString(), 400, 400);
54
55   }
56
57   public void actionPerformed(ActionEvent evt)
58   {
59     if (evt.getSource() == mapping)
60     {
61       jalview.appletgui.CutAndPasteTransfer cap = new jalview.appletgui.CutAndPasteTransfer(
62               false, null);
63       Frame frame = new Frame();
64       frame.add(cap);
65       jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.pdb_sequence_mapping"),
66               500, 600);
67       cap.setText(pdbcanvas.mappingDetails.toString());
68
69     }
70     else if (evt.getSource() == charge)
71     {
72       pdbcanvas.bysequence = false;
73       pdbcanvas.pdb.setChargeColours();
74     }
75
76     else if (evt.getSource() == chain)
77     {
78       pdbcanvas.bysequence = false;
79       pdbcanvas.pdb.setChainColours();
80     }
81     else if (evt.getSource() == seqButton)
82     {
83       pdbcanvas.bysequence = true;
84       pdbcanvas.colourBySequence();
85
86     }
87     else if (evt.getSource() == zappo)
88     {
89       pdbcanvas.setColours(new ZappoColourScheme());
90     }
91     else if (evt.getSource() == taylor)
92     {
93       pdbcanvas.setColours(new TaylorColourScheme());
94     }
95     else if (evt.getSource() == hydro)
96     {
97       pdbcanvas.setColours(new HydrophobicColourScheme());
98     }
99     else if (evt.getSource() == helix)
100     {
101       pdbcanvas.setColours(new HelixColourScheme());
102     }
103     else if (evt.getSource() == strand)
104     {
105       pdbcanvas.setColours(new StrandColourScheme());
106     }
107     else if (evt.getSource() == turn)
108     {
109       pdbcanvas.setColours(new TurnColourScheme());
110     }
111     else if (evt.getSource() == buried)
112     {
113       pdbcanvas.setColours(new BuriedColourScheme());
114     }
115     else if (evt.getSource() == user)
116     {
117       pdbcanvas.bysequence = false;
118       new jalview.appletgui.UserDefinedColours(pdbcanvas);
119     }
120
121     pdbcanvas.redrawneeded = true;
122     pdbcanvas.repaint();
123
124   }
125
126   public void itemStateChanged(ItemEvent evt)
127   {
128     if (evt.getSource() == allchains)
129     {
130       pdbcanvas.setAllchainsVisible(allchains.getState());
131     }
132     else if (evt.getSource() == wire)
133     {
134       pdbcanvas.wire = !pdbcanvas.wire;
135     }
136     else if (evt.getSource() == depth)
137     {
138       pdbcanvas.depthcue = !pdbcanvas.depthcue;
139     }
140     else if (evt.getSource() == zbuffer)
141     {
142       pdbcanvas.zbuffer = !pdbcanvas.zbuffer;
143     }
144     pdbcanvas.redrawneeded = true;
145     pdbcanvas.repaint();
146   }
147
148   private void jbInit() throws Exception
149   {
150     setMenuBar(jMenuBar1);
151     fileMenu.setLabel(MessageManager.getString("action.file"));
152     coloursMenu.setLabel(MessageManager.getString("label.colours"));
153     mapping.setLabel(MessageManager.getString("label.view_mapping"));
154     mapping.addActionListener(this);
155     wire.setLabel(MessageManager.getString("label.wireframe"));
156     wire.addItemListener(this);
157     depth.setState(true);
158     depth.setLabel(MessageManager.getString("label.depthcue"));
159     depth.addItemListener(this);
160     zbuffer.setState(true);
161     zbuffer.setLabel(MessageManager.getString("label.z_buffering"));
162     zbuffer.addItemListener(this);
163     charge.setLabel(MessageManager.getString("label.charge_cysteine"));
164     charge.addActionListener(this);
165     hydro.setLabel(MessageManager.getString("label.hydrophobicity"));
166     hydro.addActionListener(this);
167     chain.setLabel(MessageManager.getString("action.by_chain"));
168     chain.addActionListener(this);
169     seqButton.setLabel(MessageManager.getString("action.by_sequence"));
170     seqButton.addActionListener(this);
171     allchains.setLabel(MessageManager.getString("label.all_chains_visible"));
172     allchains.addItemListener(this);
173     viewMenu.setLabel(MessageManager.getString("action.view"));
174     zappo.setLabel(MessageManager.getString("label.zappo"));
175     zappo.addActionListener(this);
176     taylor.setLabel(MessageManager.getString("label.taylor"));
177     taylor.addActionListener(this);
178     helix.setLabel(MessageManager.getString("label.helix_propensity"));
179     helix.addActionListener(this);
180     strand.setLabel(MessageManager.getString("label.strand_propensity"));
181     strand.addActionListener(this);
182     turn.setLabel(MessageManager.getString("label.turn_propensity"));
183     turn.addActionListener(this);
184     buried.setLabel(MessageManager.getString("label.buried_index"));
185     buried.addActionListener(this);
186     user.setLabel(MessageManager.getString("action.user_defined"));
187     user.addActionListener(this);
188     jMenuBar1.add(fileMenu);
189     jMenuBar1.add(coloursMenu);
190     jMenuBar1.add(viewMenu);
191     fileMenu.add(mapping);
192     ;
193
194     coloursMenu.add(seqButton);
195     coloursMenu.add(chain);
196     coloursMenu.add(charge);
197     coloursMenu.add(zappo);
198     coloursMenu.add(taylor);
199     coloursMenu.add(hydro);
200     coloursMenu.add(helix);
201     coloursMenu.add(strand);
202     coloursMenu.add(turn);
203     coloursMenu.add(buried);
204     coloursMenu.add(user);
205     viewMenu.add(wire);
206     viewMenu.add(depth);
207     viewMenu.add(zbuffer);
208     viewMenu.add(allchains);
209     allchains.setState(true);
210   }
211
212   MenuBar jMenuBar1 = new MenuBar();
213
214   Menu fileMenu = new Menu();
215
216   Menu coloursMenu = new Menu();
217
218   MenuItem mapping = new MenuItem();
219
220   CheckboxGroup bg = new CheckboxGroup();
221
222   CheckboxMenuItem wire = new CheckboxMenuItem();
223
224   CheckboxMenuItem depth = new CheckboxMenuItem();
225
226   CheckboxMenuItem zbuffer = new CheckboxMenuItem();
227
228   MenuItem charge = new MenuItem();
229
230   MenuItem hydro = new MenuItem();
231
232   MenuItem chain = new MenuItem();
233
234   MenuItem seqButton = new MenuItem();
235
236   CheckboxMenuItem allchains = new CheckboxMenuItem();
237
238   Menu viewMenu = new Menu();
239
240   MenuItem turn = new MenuItem();
241
242   MenuItem strand = new MenuItem();
243
244   MenuItem helix = new MenuItem();
245
246   MenuItem taylor = new MenuItem();
247
248   MenuItem zappo = new MenuItem();
249
250   MenuItem buried = new MenuItem();
251
252   MenuItem user = new MenuItem();
253
254   // End StructureListener
255   // //////////////////////////
256
257 }