Destroy Alignment when closing frame
[jalview.git] / src / jalview / jbgui / GDesktop.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer\r
3  * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4  *\r
5  * This program is free software; you can redistribute it and/or\r
6  * modify it under the terms of the GNU General Public License\r
7  * as published by the Free Software Foundation; either version 2\r
8  * of the License, or (at your option) any later version.\r
9  *\r
10  * This program is distributed in the hope that it will be useful,\r
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13  * GNU General Public License for more details.\r
14  *\r
15  * You should have received a copy of the GNU General Public License\r
16  * along with this program; if not, write to the Free Software\r
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18  */\r
19 package jalview.jbgui;\r
20 \r
21 import java.awt.*;\r
22 import java.awt.event.*;\r
23 import javax.swing.*;\r
24 \r
25 /**\r
26  * DOCUMENT ME!\r
27  *\r
28  * @author $author$\r
29  * @version $Revision$\r
30  */\r
31 public class GDesktop\r
32     extends JFrame\r
33 {\r
34   protected static JMenu windowMenu = new JMenu();\r
35   JMenuBar desktopMenubar = new JMenuBar();\r
36   JMenu FileMenu = new JMenu();\r
37   JMenu HelpMenu = new JMenu();\r
38   protected JMenu VamsasMenu = new JMenu();\r
39   JMenuItem inputLocalFileMenuItem = new JMenuItem();\r
40   JMenuItem inputURLMenuItem = new JMenuItem();\r
41   JMenuItem inputTextboxMenuItem = new JMenuItem();\r
42   JMenuItem quit = new JMenuItem();\r
43   JMenuItem aboutMenuItem = new JMenuItem();\r
44   JMenuItem documentationMenuItem = new JMenuItem();\r
45   FlowLayout flowLayout1 = new FlowLayout();\r
46   JMenu toolsMenu = new JMenu();\r
47   JMenuItem preferences = new JMenuItem();\r
48   JMenuItem saveState = new JMenuItem();\r
49   JMenuItem loadState = new JMenuItem();\r
50   JMenu inputMenu = new JMenu();\r
51   protected JMenuItem vamsasLoad = new JMenuItem();\r
52   JMenuItem inputSequence = new JMenuItem();\r
53   protected JMenuItem vamsasStop = new JMenuItem();\r
54   JMenuItem closeAll = new JMenuItem();\r
55   JMenuItem raiseRelated = new JMenuItem();\r
56   JMenuItem minimizeAssociated = new JMenuItem();\r
57 \r
58   /**\r
59    * Creates a new GDesktop object.\r
60    */\r
61   public GDesktop()\r
62   {\r
63     try\r
64     {\r
65       jbInit();\r
66       this.setJMenuBar(desktopMenubar);\r
67     }\r
68     catch (Exception e)\r
69     {\r
70       e.printStackTrace();\r
71     }\r
72 \r
73     if (!System.getProperty("os.name").startsWith("Mac"))\r
74     {\r
75       FileMenu.setMnemonic('F');\r
76       inputLocalFileMenuItem.setMnemonic('L');\r
77       VamsasMenu.setMnemonic('V');\r
78       inputURLMenuItem.setMnemonic('U');\r
79       inputTextboxMenuItem.setMnemonic('C');\r
80       quit.setMnemonic('Q');\r
81       saveState.setMnemonic('S');\r
82       loadState.setMnemonic('L');\r
83       inputMenu.setMnemonic('I');\r
84     }\r
85   }\r
86 \r
87   /**\r
88    * DOCUMENT ME!\r
89    *\r
90    * @throws Exception DOCUMENT ME!\r
91    */\r
92   private void jbInit()\r
93       throws Exception\r
94   {\r
95     FileMenu.setText("File");\r
96     HelpMenu.setText("Help");\r
97     VamsasMenu.setText("Vamsas");\r
98     VamsasMenu.setToolTipText("Share data with other vamsas applications.");\r
99     inputLocalFileMenuItem.setText("from File");\r
100     inputLocalFileMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(\r
101         java.awt.event.KeyEvent.VK_O,\r
102         Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false));\r
103     inputLocalFileMenuItem.addActionListener(new java.awt.event.ActionListener()\r
104     {\r
105       public void actionPerformed(ActionEvent e)\r
106       {\r
107         inputLocalFileMenuItem_actionPerformed(null);\r
108       }\r
109     });\r
110     inputURLMenuItem.setText("from URL");\r
111     inputURLMenuItem.addActionListener(new java.awt.event.ActionListener()\r
112     {\r
113       public void actionPerformed(ActionEvent e)\r
114       {\r
115         inputURLMenuItem_actionPerformed(null);\r
116       }\r
117     });\r
118     inputTextboxMenuItem.setText("from Textbox");\r
119     inputTextboxMenuItem.addActionListener(new java.awt.event.ActionListener()\r
120     {\r
121       public void actionPerformed(ActionEvent e)\r
122       {\r
123         inputTextboxMenuItem_actionPerformed(null);\r
124       }\r
125     });\r
126     quit.setText("Quit");\r
127     quit.addActionListener(new java.awt.event.ActionListener()\r
128     {\r
129       public void actionPerformed(ActionEvent e)\r
130       {\r
131         quit();\r
132       }\r
133     });\r
134     aboutMenuItem.setText("About");\r
135     aboutMenuItem.addActionListener(new java.awt.event.ActionListener()\r
136     {\r
137       public void actionPerformed(ActionEvent e)\r
138       {\r
139         aboutMenuItem_actionPerformed(e);\r
140       }\r
141     });\r
142     documentationMenuItem.setText("Documentation");\r
143     documentationMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(\r
144         java.awt.event.KeyEvent.VK_F1, 0, false));\r
145     documentationMenuItem.addActionListener(new java.awt.event.ActionListener()\r
146     {\r
147       public void actionPerformed(ActionEvent e)\r
148       {\r
149         documentationMenuItem_actionPerformed(e);\r
150       }\r
151     });\r
152     this.getContentPane().setLayout(flowLayout1);\r
153     windowMenu.setText("Window");\r
154     preferences.setText("Preferences...");\r
155     preferences.addActionListener(new ActionListener()\r
156     {\r
157       public void actionPerformed(ActionEvent e)\r
158       {\r
159         preferences_actionPerformed(e);\r
160       }\r
161     });\r
162     toolsMenu.setText("Tools");\r
163     saveState.setText("Save Project");\r
164     saveState.addActionListener(new ActionListener()\r
165     {\r
166       public void actionPerformed(ActionEvent e)\r
167       {\r
168         saveState_actionPerformed(e);\r
169       }\r
170     });\r
171     loadState.setText("Load Project");\r
172     loadState.addActionListener(new ActionListener()\r
173     {\r
174       public void actionPerformed(ActionEvent e)\r
175       {\r
176         loadState_actionPerformed(e);\r
177       }\r
178     });\r
179     inputMenu.setText("Input Alignment");\r
180     vamsasLoad.setText("Start Vamsas Session...");\r
181     vamsasLoad.setVisible(false);\r
182     vamsasLoad.addActionListener(new ActionListener()\r
183     {\r
184       public void actionPerformed(ActionEvent e)\r
185       {\r
186         vamsasLoad_actionPerformed(e);\r
187       }\r
188     });\r
189     inputSequence.setText("Fetch Sequence(s)...");\r
190     inputSequence.addActionListener(new ActionListener()\r
191     {\r
192       public void actionPerformed(ActionEvent e)\r
193       {\r
194         inputSequence_actionPerformed(e);\r
195       }\r
196     });\r
197     vamsasStop.setText("Stop Vamsas Session");\r
198     vamsasStop.setVisible(false);\r
199     vamsasStop.addActionListener(new ActionListener()\r
200     {\r
201       public void actionPerformed(ActionEvent e)\r
202       {\r
203         vamsasStop_actionPerformed(e);\r
204       }\r
205     });\r
206     closeAll.setText("Close All");\r
207     closeAll.addActionListener(new ActionListener()\r
208     {\r
209       public void actionPerformed(ActionEvent e)\r
210       {\r
211         closeAll_actionPerformed(e);\r
212       }\r
213     });\r
214     raiseRelated.setText("Raise Associated Windows");\r
215     raiseRelated.addActionListener(new ActionListener()\r
216     {\r
217       public void actionPerformed(ActionEvent e)\r
218       {\r
219         raiseRelated_actionPerformed(e);\r
220       }\r
221     });\r
222     minimizeAssociated.setText("Minimize Associated Windows");\r
223     minimizeAssociated.addActionListener(new ActionListener()\r
224     {\r
225       public void actionPerformed(ActionEvent e)\r
226       {\r
227         minimizeAssociated_actionPerformed(e);\r
228       }\r
229     });\r
230     desktopMenubar.add(FileMenu);\r
231     desktopMenubar.add(toolsMenu);\r
232     VamsasMenu.setVisible(false);\r
233     desktopMenubar.add(VamsasMenu);\r
234     desktopMenubar.add(HelpMenu);\r
235     desktopMenubar.add(windowMenu);\r
236     FileMenu.add(inputMenu);\r
237     FileMenu.add(inputSequence);\r
238     FileMenu.addSeparator();\r
239     FileMenu.add(saveState);\r
240     FileMenu.add(loadState);\r
241     FileMenu.addSeparator();\r
242     FileMenu.add(quit);\r
243     HelpMenu.add(aboutMenuItem);\r
244     HelpMenu.add(documentationMenuItem);\r
245     VamsasMenu.add(vamsasLoad);\r
246     VamsasMenu.add(vamsasStop);\r
247     toolsMenu.add(preferences);\r
248     inputMenu.add(inputLocalFileMenuItem);\r
249     inputMenu.add(inputURLMenuItem);\r
250     inputMenu.add(inputTextboxMenuItem);\r
251     windowMenu.add(closeAll);\r
252     windowMenu.add(raiseRelated);\r
253     windowMenu.add(minimizeAssociated);\r
254     windowMenu.addSeparator();\r
255     //    inputMenu.add(vamsasLoad);\r
256   }\r
257 \r
258   /**\r
259    * DOCUMENT ME!\r
260    *\r
261    * @param e DOCUMENT ME!\r
262    */\r
263   protected void inputLocalFileMenuItem_actionPerformed(jalview.gui.\r
264       AlignViewport av)\r
265   {\r
266   }\r
267 \r
268   /**\r
269    * DOCUMENT ME!\r
270    *\r
271    * @param e DOCUMENT ME!\r
272    */\r
273   protected void inputURLMenuItem_actionPerformed(jalview.gui.AlignViewport av)\r
274   {\r
275   }\r
276 \r
277   /**\r
278    * DOCUMENT ME!\r
279    *\r
280    * @param e DOCUMENT ME!\r
281    */\r
282   protected void inputTextboxMenuItem_actionPerformed(jalview.gui.AlignViewport\r
283       av)\r
284   {\r
285   }\r
286 \r
287   /**\r
288    * DOCUMENT ME!\r
289    */\r
290   protected void quit()\r
291   {\r
292   }\r
293 \r
294   /**\r
295    * DOCUMENT ME!\r
296    *\r
297    * @param e DOCUMENT ME!\r
298    */\r
299   protected void aboutMenuItem_actionPerformed(ActionEvent e)\r
300   {\r
301   }\r
302 \r
303   /**\r
304    * DOCUMENT ME!\r
305    *\r
306    * @param e DOCUMENT ME!\r
307    */\r
308   protected void documentationMenuItem_actionPerformed(ActionEvent e)\r
309   {\r
310   }\r
311 \r
312   /**\r
313    * DOCUMENT ME!\r
314    *\r
315    * @param e DOCUMENT ME!\r
316    */\r
317   public void SaveState_actionPerformed(ActionEvent e)\r
318   {\r
319   }\r
320 \r
321   /**\r
322    * DOCUMENT ME!\r
323    *\r
324    * @param e DOCUMENT ME!\r
325    */\r
326   protected void preferences_actionPerformed(ActionEvent e)\r
327   {\r
328   }\r
329 \r
330   /**\r
331    * DOCUMENT ME!\r
332    *\r
333    * @param e DOCUMENT ME!\r
334    */\r
335   public void saveState_actionPerformed(ActionEvent e)\r
336   {\r
337   }\r
338 \r
339   /**\r
340    * DOCUMENT ME!\r
341    *\r
342    * @param e DOCUMENT ME!\r
343    */\r
344   public void loadState_actionPerformed(ActionEvent e)\r
345   {\r
346   }\r
347 \r
348   /**\r
349    * DOCUMENT ME!\r
350    *\r
351    * @param e DOCUMENT ME!\r
352    */\r
353   public void loadJalviewAlign_actionPerformed(ActionEvent e)\r
354   {\r
355   }\r
356 \r
357   public void vamsasLoad_actionPerformed(ActionEvent e)\r
358   {\r
359 \r
360   }\r
361 \r
362   public void inputSequence_actionPerformed(ActionEvent e)\r
363   {\r
364 \r
365   }\r
366 \r
367   public void vamsasStop_actionPerformed(ActionEvent e)\r
368   {\r
369 \r
370   }\r
371 \r
372   public void closeAll_actionPerformed(ActionEvent e)\r
373   {\r
374 \r
375   }\r
376 \r
377   public void raiseRelated_actionPerformed(ActionEvent e)\r
378   {\r
379 \r
380   }\r
381 \r
382   public void minimizeAssociated_actionPerformed(ActionEvent e)\r
383   {\r
384 \r
385   }\r
386 }\r