JAL-1526 simple function to write a snapshot of the desktop.
[jalview.git] / src / jalview / jbgui / GDesktop.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 jalview.jbgui;
22
23 import jalview.util.MessageManager;
24
25 import java.awt.*;
26 import java.awt.event.*;
27
28 import javax.swing.*;
29
30 /**
31  * DOCUMENT ME!
32  * 
33  * @author $author$
34  * @version $Revision$
35  */
36 public class GDesktop extends JFrame
37 {
38   protected static JMenu windowMenu = new JMenu();
39
40   JMenuBar desktopMenubar = new JMenuBar();
41
42   JMenu FileMenu = new JMenu();
43
44   JMenu HelpMenu = new JMenu();
45
46   protected JMenu VamsasMenu = new JMenu();
47
48   protected JMenu VamsasStMenu = new JMenu();
49
50   JMenuItem inputLocalFileMenuItem = new JMenuItem();
51
52   JMenuItem inputURLMenuItem = new JMenuItem();
53
54   JMenuItem inputTextboxMenuItem = new JMenuItem();
55
56   JMenuItem quit = new JMenuItem();
57
58   JMenuItem aboutMenuItem = new JMenuItem();
59
60   JMenuItem documentationMenuItem = new JMenuItem();
61
62   FlowLayout flowLayout1 = new FlowLayout();
63
64   protected JMenu toolsMenu = new JMenu();
65
66   JMenuItem preferences = new JMenuItem();
67
68   JMenuItem saveState = new JMenuItem();
69
70   JMenuItem loadState = new JMenuItem();
71   
72   JMenu inputMenu = new JMenu();
73
74   protected JMenuItem vamsasStart = new JMenuItem();
75
76   protected JMenuItem vamsasImport = new JMenuItem();
77
78   protected JMenuItem vamsasSave = new JMenuItem();
79
80   JMenuItem inputSequence = new JMenuItem();
81
82   protected JMenuItem vamsasStop = new JMenuItem();
83
84   JMenuItem closeAll = new JMenuItem();
85
86   JMenuItem raiseRelated = new JMenuItem();
87
88   JMenuItem minimizeAssociated = new JMenuItem();
89
90   protected JCheckBoxMenuItem showMemusage = new JCheckBoxMenuItem();
91
92   JMenuItem garbageCollect = new JMenuItem();
93
94   protected JCheckBoxMenuItem showConsole = new JCheckBoxMenuItem();
95
96   protected JCheckBoxMenuItem showNews = new JCheckBoxMenuItem();
97   
98   protected JMenuItem snapShotWindow = new JMenuItem();
99   /**
100    * Creates a new GDesktop object.
101    */
102   public GDesktop()
103   {
104     try
105     {
106       jbInit();
107       this.setJMenuBar(desktopMenubar);
108     } catch (Exception e)
109     {
110       e.printStackTrace();
111     }
112
113     if (!new jalview.util.Platform().isAMac())
114     {
115       FileMenu.setMnemonic('F');
116       inputLocalFileMenuItem.setMnemonic('L');
117       VamsasMenu.setMnemonic('V');
118       inputURLMenuItem.setMnemonic('U');
119       inputTextboxMenuItem.setMnemonic('C');
120       quit.setMnemonic('Q');
121       saveState.setMnemonic('S');
122       loadState.setMnemonic('L');
123       inputMenu.setMnemonic('I');
124     }
125   }
126
127   /**
128    * DOCUMENT ME!
129    * 
130    * @throws Exception
131    *           DOCUMENT ME!
132    */
133   private void jbInit() throws Exception
134   {
135
136     FileMenu.setText(MessageManager.getString("action.file"));
137     HelpMenu.setText(MessageManager.getString("action.help"));
138     VamsasMenu.setText("Vamsas");
139     VamsasMenu.setToolTipText(MessageManager
140             .getString("label.share_data_vamsas_applications"));
141     VamsasStMenu.setText(MessageManager.getString("label.connect_to"));
142     VamsasStMenu.setToolTipText(MessageManager
143             .getString("label.join_existing_vamsas_session"));
144     inputLocalFileMenuItem.setText(MessageManager
145             .getString("label.load_tree_from_file"));
146     inputLocalFileMenuItem.setAccelerator(javax.swing.KeyStroke
147             .getKeyStroke(java.awt.event.KeyEvent.VK_O, Toolkit
148                     .getDefaultToolkit().getMenuShortcutKeyMask(), false));
149     inputLocalFileMenuItem
150             .addActionListener(new java.awt.event.ActionListener()
151             {
152               public void actionPerformed(ActionEvent e)
153               {
154                 inputLocalFileMenuItem_actionPerformed(null);
155               }
156             });
157     inputURLMenuItem.setText(MessageManager.getString("label.from_url"));
158     inputURLMenuItem.addActionListener(new java.awt.event.ActionListener()
159     {
160       public void actionPerformed(ActionEvent e)
161       {
162         inputURLMenuItem_actionPerformed(null);
163       }
164     });
165     inputTextboxMenuItem.setText(MessageManager
166             .getString("label.from_textbox"));
167     inputTextboxMenuItem
168             .addActionListener(new java.awt.event.ActionListener()
169             {
170               public void actionPerformed(ActionEvent e)
171               {
172                 inputTextboxMenuItem_actionPerformed(null);
173               }
174             });
175     quit.setText(MessageManager.getString("action.quit"));
176     quit.addActionListener(new java.awt.event.ActionListener()
177     {
178       public void actionPerformed(ActionEvent e)
179       {
180         quit();
181       }
182     });
183     aboutMenuItem.setText(MessageManager.getString("label.about"));
184     aboutMenuItem.addActionListener(new java.awt.event.ActionListener()
185     {
186       public void actionPerformed(ActionEvent e)
187       {
188         aboutMenuItem_actionPerformed(e);
189       }
190     });
191     documentationMenuItem.setText(MessageManager
192             .getString("label.documentation"));
193     documentationMenuItem.setAccelerator(javax.swing.KeyStroke
194             .getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0, false));
195     documentationMenuItem
196             .addActionListener(new java.awt.event.ActionListener()
197             {
198               public void actionPerformed(ActionEvent e)
199               {
200                 documentationMenuItem_actionPerformed(e);
201               }
202             });
203     this.getContentPane().setLayout(flowLayout1);
204     windowMenu.setText(MessageManager.getString("label.window"));
205     preferences.setText(MessageManager.getString("label.preferences")
206             + "...");
207     preferences.addActionListener(new ActionListener()
208     {
209       public void actionPerformed(ActionEvent e)
210       {
211         preferences_actionPerformed(e);
212       }
213     });
214     toolsMenu.setText(MessageManager.getString("label.tools"));
215     saveState.setText(MessageManager.getString("action.save_project"));
216     saveState.addActionListener(new ActionListener()
217     {
218       public void actionPerformed(ActionEvent e)
219       {
220         saveState_actionPerformed(e);
221       }
222     });
223     loadState.setText(MessageManager.getString("action.load_project"));
224     loadState.addActionListener(new ActionListener()
225     {
226       public void actionPerformed(ActionEvent e)
227       {
228         loadState_actionPerformed(e);
229       }
230     });
231     inputMenu.setText(MessageManager.getString("label.input_alignment"));
232     vamsasStart.setText(MessageManager
233             .getString("label.new_vamsas_session") + "...");
234     vamsasStart.setVisible(false);
235     vamsasStart.addActionListener(new ActionListener()
236     {
237       public void actionPerformed(ActionEvent e)
238       {
239         vamsasStart_actionPerformed(e);
240       }
241     });
242     vamsasImport.setText(MessageManager
243             .getString("label.load_vamsas_session") + "...");
244     vamsasImport.setVisible(false);
245     vamsasImport.addActionListener(new ActionListener()
246     {
247       public void actionPerformed(ActionEvent e)
248       {
249         vamsasImport_actionPerformed(e);
250       }
251     });
252     vamsasSave.setText(MessageManager
253             .getString("label.save_vamsas_session") + "...");
254     vamsasSave.setVisible(false);
255     vamsasSave.addActionListener(new ActionListener()
256     {
257       public void actionPerformed(ActionEvent e)
258       {
259         vamsasSave_actionPerformed(e);
260       }
261     });
262     inputSequence.setText(MessageManager.getString("label.fetch_sequences")
263             + "...");
264     inputSequence.addActionListener(new ActionListener()
265     {
266       public void actionPerformed(ActionEvent e)
267       {
268         inputSequence_actionPerformed(e);
269       }
270     });
271     vamsasStop.setText(MessageManager
272             .getString("label.stop_vamsas_session"));
273     vamsasStop.setVisible(false);
274     vamsasStop.addActionListener(new ActionListener()
275     {
276       public void actionPerformed(ActionEvent e)
277       {
278         vamsasStop_actionPerformed(e);
279       }
280     });
281     closeAll.setText(MessageManager.getString("action.close_all"));
282     closeAll.addActionListener(new ActionListener()
283     {
284       public void actionPerformed(ActionEvent e)
285       {
286         closeAll_actionPerformed(e);
287       }
288     });
289     raiseRelated.setText(MessageManager
290             .getString("action.raise_associated_windows"));
291     raiseRelated.addActionListener(new ActionListener()
292     {
293       public void actionPerformed(ActionEvent e)
294       {
295         raiseRelated_actionPerformed(e);
296       }
297     });
298     minimizeAssociated.setText(MessageManager
299             .getString("action.minimize_associated_windows"));
300     minimizeAssociated.addActionListener(new ActionListener()
301     {
302       public void actionPerformed(ActionEvent e)
303       {
304         minimizeAssociated_actionPerformed(e);
305       }
306     });
307     garbageCollect.setText(MessageManager
308             .getString("label.collect_garbage"));
309     garbageCollect.addActionListener(new ActionListener()
310     {
311       public void actionPerformed(ActionEvent e)
312       {
313         garbageCollect_actionPerformed(e);
314       }
315     });
316     showMemusage.setText(MessageManager
317             .getString("label.show_memory_usage"));
318     showMemusage.addActionListener(new ActionListener()
319     {
320       public void actionPerformed(ActionEvent e)
321       {
322         showMemusage_actionPerformed(e);
323       }
324     });
325     showConsole
326             .setText(MessageManager.getString("label.show_java_console"));
327     showConsole.addActionListener(new ActionListener()
328     {
329       public void actionPerformed(ActionEvent e)
330       {
331         showConsole_actionPerformed(e);
332       }
333     });
334     showNews.setText(MessageManager.getString("label.show_jalview_news"));
335     showNews.addActionListener(new ActionListener()
336     {
337       public void actionPerformed(ActionEvent e)
338       {
339         showNews_actionPerformed(e);
340       }
341     });
342     snapShotWindow.setText(MessageManager.getString("label.take_snapshot"));
343     snapShotWindow.addActionListener(new ActionListener()
344     {
345       public void actionPerformed(ActionEvent e)
346       {
347         snapShotWindow_actionPerformed(e);
348       }
349     });
350     
351     desktopMenubar.add(FileMenu);
352     desktopMenubar.add(toolsMenu);
353     VamsasMenu.setVisible(false);
354     desktopMenubar.add(VamsasMenu);
355     desktopMenubar.add(HelpMenu);
356     desktopMenubar.add(windowMenu);
357     FileMenu.add(inputMenu);
358     FileMenu.add(inputSequence);
359     FileMenu.addSeparator();
360     FileMenu.add(saveState);
361     FileMenu.add(loadState);
362     FileMenu.addSeparator();
363     FileMenu.add(quit);
364     HelpMenu.add(aboutMenuItem);
365     HelpMenu.add(documentationMenuItem);
366     VamsasMenu.add(VamsasStMenu);
367     VamsasStMenu.setVisible(false);
368     VamsasMenu.add(vamsasStart);
369     VamsasMenu.add(vamsasImport);
370     VamsasMenu.add(vamsasSave);
371     VamsasMenu.add(vamsasStop);
372     toolsMenu.add(preferences);
373     toolsMenu.add(showMemusage);
374     toolsMenu.add(showConsole);
375     toolsMenu.add(showNews);
376     toolsMenu.add(garbageCollect);
377     toolsMenu.add(snapShotWindow);
378     inputMenu.add(inputLocalFileMenuItem);
379     inputMenu.add(inputURLMenuItem);
380     inputMenu.add(inputTextboxMenuItem);
381     windowMenu.add(closeAll);
382     windowMenu.add(raiseRelated);
383     windowMenu.add(minimizeAssociated);
384     windowMenu.addSeparator();
385     // inputMenu.add(vamsasLoad);
386   }
387
388   protected void snapShotWindow_actionPerformed(ActionEvent e)
389   {
390     // TODO Auto-generated method stub
391     
392   }
393
394   protected void showConsole_actionPerformed(ActionEvent e)
395   {
396     // TODO Auto-generated method stub
397
398   }
399
400   protected void showNews_actionPerformed(ActionEvent e)
401   {
402     // TODO Auto-generated method stub
403
404   }
405
406   protected void showMemusage_actionPerformed(ActionEvent e)
407   {
408     // TODO Auto-generated method stub
409
410   }
411
412   protected void garbageCollect_actionPerformed(ActionEvent e)
413   {
414     // TODO Auto-generated method stub
415
416   }
417
418   protected void vamsasStMenu_actionPerformed()
419   {
420   }
421
422   public void vamsasSave_actionPerformed(ActionEvent e)
423   {
424   }
425
426   /**
427    * DOCUMENT ME!
428    * 
429    * @param e
430    *          DOCUMENT ME!
431    */
432   protected void inputLocalFileMenuItem_actionPerformed(
433           jalview.gui.AlignViewport av)
434   {
435   }
436
437   /**
438    * DOCUMENT ME!
439    * 
440    * @param e
441    *          DOCUMENT ME!
442    */
443   protected void inputURLMenuItem_actionPerformed(
444           jalview.gui.AlignViewport av)
445   {
446   }
447
448   /**
449    * DOCUMENT ME!
450    * 
451    * @param e
452    *          DOCUMENT ME!
453    */
454   protected void inputTextboxMenuItem_actionPerformed(
455           jalview.gui.AlignViewport av)
456   {
457   }
458
459   /**
460    * DOCUMENT ME!
461    */
462   protected void quit()
463   {
464   }
465
466   /**
467    * DOCUMENT ME!
468    * 
469    * @param e
470    *          DOCUMENT ME!
471    */
472   protected void aboutMenuItem_actionPerformed(ActionEvent e)
473   {
474   }
475
476   /**
477    * DOCUMENT ME!
478    * 
479    * @param e
480    *          DOCUMENT ME!
481    */
482   protected void documentationMenuItem_actionPerformed(ActionEvent e)
483   {
484   }
485
486   /**
487    * DOCUMENT ME!
488    * 
489    * @param e
490    *          DOCUMENT ME!
491    */
492   public void SaveState_actionPerformed(ActionEvent e)
493   {
494   }
495
496   /**
497    * DOCUMENT ME!
498    * 
499    * @param e
500    *          DOCUMENT ME!
501    */
502   protected void preferences_actionPerformed(ActionEvent e)
503   {
504   }
505
506   /**
507    * DOCUMENT ME!
508    * 
509    * @param e
510    *          DOCUMENT ME!
511    */
512   public void saveState_actionPerformed(ActionEvent e)
513   {
514   }
515
516   /**
517    * DOCUMENT ME!
518    * 
519    * @param e
520    *          DOCUMENT ME!
521    */
522   public void loadState_actionPerformed(ActionEvent e)
523   {
524   }
525
526   /**
527    * DOCUMENT ME!
528    * 
529    * @param e
530    *          DOCUMENT ME!
531    */
532   public void loadJalviewAlign_actionPerformed(ActionEvent e)
533   {
534   }
535
536   public void vamsasStart_actionPerformed(ActionEvent e)
537   {
538
539   }
540
541   public void inputSequence_actionPerformed(ActionEvent e)
542   {
543
544   }
545
546   public void vamsasStop_actionPerformed(ActionEvent e)
547   {
548
549   }
550
551   public void closeAll_actionPerformed(ActionEvent e)
552   {
553
554   }
555
556   public void raiseRelated_actionPerformed(ActionEvent e)
557   {
558
559   }
560
561   public void minimizeAssociated_actionPerformed(ActionEvent e)
562   {
563
564   }
565
566   public void vamsasImport_actionPerformed(ActionEvent e)
567   {
568   }
569 }