587326a7c9d956e952a8ea03d4fdcc6fe65536d2
[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, MessageManager.getString("label.pdb_sequence_mapping"),
68               500, 600);
69       cap.setText(pdbcanvas.mappingDetails.toString());
70
71     }
72     else if (evt.getSource() == charge)
73     {
74       pdbcanvas.bysequence = false;
75       pdbcanvas.pdb.setChargeColours();
76     }
77
78     else if (evt.getSource() == chain)
79     {
80       pdbcanvas.bysequence = false;
81       pdbcanvas.pdb.setChainColours();
82     }
83     else if (evt.getSource() == seqButton)
84     {
85       pdbcanvas.bysequence = true;
86       pdbcanvas.colourBySequence();
87
88     }
89     else if (evt.getSource() == zappo)
90     {
91       pdbcanvas.setColours(new ZappoColourScheme());
92     }
93     else if (evt.getSource() == taylor)
94     {
95       pdbcanvas.setColours(new TaylorColourScheme());
96     }
97     else if (evt.getSource() == hydro)
98     {
99       pdbcanvas.setColours(new HydrophobicColourScheme());
100     }
101     else if (evt.getSource() == helix)
102     {
103       pdbcanvas.setColours(new HelixColourScheme());
104     }
105     else if (evt.getSource() == strand)
106     {
107       pdbcanvas.setColours(new StrandColourScheme());
108     }
109     else if (evt.getSource() == turn)
110     {
111       pdbcanvas.setColours(new TurnColourScheme());
112     }
113     else if (evt.getSource() == buried)
114     {
115       pdbcanvas.setColours(new BuriedColourScheme());
116     }
117     else if (evt.getSource() == user)
118     {
119       pdbcanvas.bysequence = false;
120       new jalview.appletgui.UserDefinedColours(pdbcanvas);
121     }
122
123     pdbcanvas.redrawneeded = true;
124     pdbcanvas.repaint();
125
126   }
127
128   public void itemStateChanged(ItemEvent evt)
129   {
130     if (evt.getSource() == allchains)
131     {
132       pdbcanvas.setAllchainsVisible(allchains.getState());
133     }
134     else if (evt.getSource() == wire)
135     {
136       pdbcanvas.wire = !pdbcanvas.wire;
137     }
138     else if (evt.getSource() == depth)
139     {
140       pdbcanvas.depthcue = !pdbcanvas.depthcue;
141     }
142     else if (evt.getSource() == zbuffer)
143     {
144       pdbcanvas.zbuffer = !pdbcanvas.zbuffer;
145     }
146     pdbcanvas.redrawneeded = true;
147     pdbcanvas.repaint();
148   }
149
150   private void jbInit() throws Exception
151   {
152     setMenuBar(jMenuBar1);
153     fileMenu.setLabel(MessageManager.getString("action.file"));
154     coloursMenu.setLabel(MessageManager.getString("label.colours"));
155     mapping.setLabel(MessageManager.getString("label.view_mapping"));
156     mapping.addActionListener(this);
157     wire.setLabel(MessageManager.getString("label.wireframe"));
158     wire.addItemListener(this);
159     depth.setState(true);
160     depth.setLabel(MessageManager.getString("label.depthcue"));
161     depth.addItemListener(this);
162     zbuffer.setState(true);
163     zbuffer.setLabel(MessageManager.getString("label.z_buffering"));
164     zbuffer.addItemListener(this);
165     charge.setLabel(MessageManager.getString("label.charge_cysteine"));
166     charge.addActionListener(this);
167     hydro.setLabel(MessageManager.getString("label.hydrophobicity"));
168     hydro.addActionListener(this);
169     chain.setLabel(MessageManager.getString("action.by_chain"));
170     chain.addActionListener(this);
171     seqButton.setLabel(MessageManager.getString("action.by_sequence"));
172     seqButton.addActionListener(this);
173     allchains.setLabel(MessageManager.getString("label.all_chains_visible"));
174     allchains.addItemListener(this);
175     viewMenu.setLabel(MessageManager.getString("action.view"));
176     zappo.setLabel(MessageManager.getString("label.zappo"));
177     zappo.addActionListener(this);
178     taylor.setLabel(MessageManager.getString("label.taylor"));
179     taylor.addActionListener(this);
180     helix.setLabel(MessageManager.getString("label.helix_propensity"));
181     helix.addActionListener(this);
182     strand.setLabel(MessageManager.getString("label.strand_propensity"));
183     strand.addActionListener(this);
184     turn.setLabel(MessageManager.getString("label.turn_propensity"));
185     turn.addActionListener(this);
186     buried.setLabel(MessageManager.getString("label.buried_index"));
187     buried.addActionListener(this);
188     user.setLabel(MessageManager.getString("action.user_defined"));
189     user.addActionListener(this);
190     jMenuBar1.add(fileMenu);
191     jMenuBar1.add(coloursMenu);
192     jMenuBar1.add(viewMenu);
193     fileMenu.add(mapping);
194     ;
195
196     coloursMenu.add(seqButton);
197     coloursMenu.add(chain);
198     coloursMenu.add(charge);
199     coloursMenu.add(zappo);
200     coloursMenu.add(taylor);
201     coloursMenu.add(hydro);
202     coloursMenu.add(helix);
203     coloursMenu.add(strand);
204     coloursMenu.add(turn);
205     coloursMenu.add(buried);
206     coloursMenu.add(user);
207     viewMenu.add(wire);
208     viewMenu.add(depth);
209     viewMenu.add(zbuffer);
210     viewMenu.add(allchains);
211     allchains.setState(true);
212   }
213
214   MenuBar jMenuBar1 = new MenuBar();
215
216   Menu fileMenu = new Menu();
217
218   Menu coloursMenu = new Menu();
219
220   MenuItem mapping = new MenuItem();
221
222   CheckboxGroup bg = new CheckboxGroup();
223
224   CheckboxMenuItem wire = new CheckboxMenuItem();
225
226   CheckboxMenuItem depth = new CheckboxMenuItem();
227
228   CheckboxMenuItem zbuffer = new CheckboxMenuItem();
229
230   MenuItem charge = new MenuItem();
231
232   MenuItem hydro = new MenuItem();
233
234   MenuItem chain = new MenuItem();
235
236   MenuItem seqButton = new MenuItem();
237
238   CheckboxMenuItem allchains = new CheckboxMenuItem();
239
240   Menu viewMenu = new Menu();
241
242   MenuItem turn = new MenuItem();
243
244   MenuItem strand = new MenuItem();
245
246   MenuItem helix = new MenuItem();
247
248   MenuItem taylor = new MenuItem();
249
250   MenuItem zappo = new MenuItem();
251
252   MenuItem buried = new MenuItem();
253
254   MenuItem user = new MenuItem();
255
256   // End StructureListener
257   // //////////////////////////
258
259 }