JAL-1807 explicit imports (MCview)
[jalview.git] / src / MCview / AppletPDBViewer.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ 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 jalview.appletgui.AlignmentPanel;
24 import jalview.appletgui.CutAndPasteTransfer;
25 import jalview.appletgui.EmbmenuFrame;
26 import jalview.bin.JalviewLite;
27 import jalview.datamodel.PDBEntry;
28 import jalview.datamodel.SequenceI;
29 import jalview.schemes.BuriedColourScheme;
30 import jalview.schemes.HelixColourScheme;
31 import jalview.schemes.HydrophobicColourScheme;
32 import jalview.schemes.StrandColourScheme;
33 import jalview.schemes.TaylorColourScheme;
34 import jalview.schemes.TurnColourScheme;
35 import jalview.schemes.ZappoColourScheme;
36 import jalview.util.MessageManager;
37
38 import java.awt.BorderLayout;
39 import java.awt.CheckboxGroup;
40 import java.awt.CheckboxMenuItem;
41 import java.awt.Frame;
42 import java.awt.Menu;
43 import java.awt.MenuBar;
44 import java.awt.MenuItem;
45 import java.awt.event.ActionEvent;
46 import java.awt.event.ActionListener;
47 import java.awt.event.ItemEvent;
48 import java.awt.event.ItemListener;
49
50 public class AppletPDBViewer extends EmbmenuFrame implements
51         ActionListener, ItemListener
52 {
53   AppletPDBCanvas pdbcanvas;
54
55   public AppletPDBViewer(PDBEntry pdbentry, SequenceI[] seq,
56           String[] chains, AlignmentPanel ap, String protocol)
57   {
58     try
59     {
60       jbInit();
61     } catch (Exception ex)
62     {
63       ex.printStackTrace();
64     }
65
66     pdbcanvas = new AppletPDBCanvas(pdbentry, seq, chains, ap, protocol);
67
68     embedMenuIfNeeded(pdbcanvas);
69     add(pdbcanvas, BorderLayout.CENTER);
70
71     StringBuffer title = new StringBuffer(seq[0].getName() + ":"
72             + pdbcanvas.pdbentry.getFile());
73
74     JalviewLite.addFrame(this, title.toString(), 400, 400);
75
76   }
77
78   public void actionPerformed(ActionEvent evt)
79   {
80     if (evt.getSource() == mapping)
81     {
82       CutAndPasteTransfer cap = new CutAndPasteTransfer(false, null);
83       Frame frame = new Frame();
84       frame.add(cap);
85       JalviewLite.addFrame(frame,
86               MessageManager.getString("label.pdb_sequence_mapping"), 500,
87               600);
88       cap.setText(pdbcanvas.mappingDetails.toString());
89
90     }
91     else if (evt.getSource() == charge)
92     {
93       pdbcanvas.bysequence = false;
94       pdbcanvas.pdb.setChargeColours();
95     }
96
97     else if (evt.getSource() == chain)
98     {
99       pdbcanvas.bysequence = false;
100       pdbcanvas.pdb.setChainColours();
101     }
102     else if (evt.getSource() == seqButton)
103     {
104       pdbcanvas.bysequence = true;
105       pdbcanvas.colourBySequence();
106
107     }
108     else if (evt.getSource() == zappo)
109     {
110       pdbcanvas.setColours(new ZappoColourScheme());
111     }
112     else if (evt.getSource() == taylor)
113     {
114       pdbcanvas.setColours(new TaylorColourScheme());
115     }
116     else if (evt.getSource() == hydro)
117     {
118       pdbcanvas.setColours(new HydrophobicColourScheme());
119     }
120     else if (evt.getSource() == helix)
121     {
122       pdbcanvas.setColours(new HelixColourScheme());
123     }
124     else if (evt.getSource() == strand)
125     {
126       pdbcanvas.setColours(new StrandColourScheme());
127     }
128     else if (evt.getSource() == turn)
129     {
130       pdbcanvas.setColours(new TurnColourScheme());
131     }
132     else if (evt.getSource() == buried)
133     {
134       pdbcanvas.setColours(new BuriedColourScheme());
135     }
136     else if (evt.getSource() == user)
137     {
138       pdbcanvas.bysequence = false;
139       new jalview.appletgui.UserDefinedColours(pdbcanvas);
140     }
141
142     pdbcanvas.redrawneeded = true;
143     pdbcanvas.repaint();
144
145   }
146
147   public void itemStateChanged(ItemEvent evt)
148   {
149     if (evt.getSource() == allchains)
150     {
151       pdbcanvas.setAllchainsVisible(allchains.getState());
152     }
153     else if (evt.getSource() == wire)
154     {
155       pdbcanvas.wire = !pdbcanvas.wire;
156     }
157     else if (evt.getSource() == depth)
158     {
159       pdbcanvas.depthcue = !pdbcanvas.depthcue;
160     }
161     else if (evt.getSource() == zbuffer)
162     {
163       pdbcanvas.zbuffer = !pdbcanvas.zbuffer;
164     }
165     pdbcanvas.redrawneeded = true;
166     pdbcanvas.repaint();
167   }
168
169   private void jbInit() throws Exception
170   {
171     setMenuBar(jMenuBar1);
172     fileMenu.setLabel(MessageManager.getString("action.file"));
173     coloursMenu.setLabel(MessageManager.getString("label.colours"));
174     mapping.setLabel(MessageManager.getString("label.view_mapping"));
175     mapping.addActionListener(this);
176     wire.setLabel(MessageManager.getString("label.wireframe"));
177     wire.addItemListener(this);
178     depth.setState(true);
179     depth.setLabel(MessageManager.getString("label.depthcue"));
180     depth.addItemListener(this);
181     zbuffer.setState(true);
182     zbuffer.setLabel(MessageManager.getString("label.z_buffering"));
183     zbuffer.addItemListener(this);
184     charge.setLabel(MessageManager.getString("label.charge_cysteine"));
185     charge.addActionListener(this);
186     hydro.setLabel(MessageManager.getString("label.hydrophobicity"));
187     hydro.addActionListener(this);
188     chain.setLabel(MessageManager.getString("action.by_chain"));
189     chain.addActionListener(this);
190     seqButton.setLabel(MessageManager.getString("action.by_sequence"));
191     seqButton.addActionListener(this);
192     allchains
193             .setLabel(MessageManager.getString("label.all_chains_visible"));
194     allchains.addItemListener(this);
195     viewMenu.setLabel(MessageManager.getString("action.view"));
196     zappo.setLabel(MessageManager.getString("label.zappo"));
197     zappo.addActionListener(this);
198     taylor.setLabel(MessageManager.getString("label.taylor"));
199     taylor.addActionListener(this);
200     helix.setLabel(MessageManager.getString("label.helix_propensity"));
201     helix.addActionListener(this);
202     strand.setLabel(MessageManager.getString("label.strand_propensity"));
203     strand.addActionListener(this);
204     turn.setLabel(MessageManager.getString("label.turn_propensity"));
205     turn.addActionListener(this);
206     buried.setLabel(MessageManager.getString("label.buried_index"));
207     buried.addActionListener(this);
208     user.setLabel(MessageManager.getString("action.user_defined"));
209     user.addActionListener(this);
210     jMenuBar1.add(fileMenu);
211     jMenuBar1.add(coloursMenu);
212     jMenuBar1.add(viewMenu);
213     fileMenu.add(mapping);
214     ;
215
216     coloursMenu.add(seqButton);
217     coloursMenu.add(chain);
218     coloursMenu.add(charge);
219     coloursMenu.add(zappo);
220     coloursMenu.add(taylor);
221     coloursMenu.add(hydro);
222     coloursMenu.add(helix);
223     coloursMenu.add(strand);
224     coloursMenu.add(turn);
225     coloursMenu.add(buried);
226     coloursMenu.add(user);
227     viewMenu.add(wire);
228     viewMenu.add(depth);
229     viewMenu.add(zbuffer);
230     viewMenu.add(allchains);
231     allchains.setState(true);
232   }
233
234   MenuBar jMenuBar1 = new MenuBar();
235
236   Menu fileMenu = new Menu();
237
238   Menu coloursMenu = new Menu();
239
240   MenuItem mapping = new MenuItem();
241
242   CheckboxGroup bg = new CheckboxGroup();
243
244   CheckboxMenuItem wire = new CheckboxMenuItem();
245
246   CheckboxMenuItem depth = new CheckboxMenuItem();
247
248   CheckboxMenuItem zbuffer = new CheckboxMenuItem();
249
250   MenuItem charge = new MenuItem();
251
252   MenuItem hydro = new MenuItem();
253
254   MenuItem chain = new MenuItem();
255
256   MenuItem seqButton = new MenuItem();
257
258   CheckboxMenuItem allchains = new CheckboxMenuItem();
259
260   Menu viewMenu = new Menu();
261
262   MenuItem turn = new MenuItem();
263
264   MenuItem strand = new MenuItem();
265
266   MenuItem helix = new MenuItem();
267
268   MenuItem taylor = new MenuItem();
269
270   MenuItem zappo = new MenuItem();
271
272   MenuItem buried = new MenuItem();
273
274   MenuItem user = new MenuItem();
275
276   // End StructureListener
277   // //////////////////////////
278
279 }