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