2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
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.
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.
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.
21 package jalview.jbgui;
23 import jalview.api.AlignmentViewPanel;
24 import jalview.io.FileFormatException;
25 import jalview.util.MessageManager;
26 import jalview.util.Platform;
28 import java.awt.FlowLayout;
29 import java.awt.event.ActionEvent;
30 import java.awt.event.ActionListener;
32 import javax.swing.JCheckBoxMenuItem;
33 import javax.swing.JFrame;
34 import javax.swing.JMenu;
35 import javax.swing.JMenuBar;
36 import javax.swing.JMenuItem;
44 @SuppressWarnings("serial")
45 public class GDesktop extends JFrame
48 protected static JMenu windowMenu = new JMenu();
50 JMenuBar desktopMenubar = new JMenuBar();
52 JMenu FileMenu = new JMenu();
54 JMenu HelpMenu = new JMenu();
56 protected JMenu VamsasMenu = new JMenu();
58 protected JMenu VamsasStMenu = new JMenu();
60 JMenuItem inputLocalFileMenuItem = new JMenuItem();
62 JMenuItem inputURLMenuItem = new JMenuItem();
64 JMenuItem inputTextboxMenuItem = new JMenuItem();
66 JMenuItem quit = new JMenuItem();
68 JMenuItem aboutMenuItem = new JMenuItem();
70 JMenuItem documentationMenuItem = new JMenuItem();
72 FlowLayout flowLayout1 = new FlowLayout();
74 protected JMenu toolsMenu = new JMenu();
76 JMenuItem preferences = new JMenuItem();
78 JMenuItem saveState = new JMenuItem();
80 JMenuItem saveAsState = new JMenuItem();
82 JMenuItem loadState = new JMenuItem();
84 JMenu inputMenu = new JMenu();
86 protected JMenuItem vamsasStart = new JMenuItem();
88 protected JMenuItem vamsasImport = new JMenuItem();
90 protected JMenuItem vamsasSave = new JMenuItem();
92 JMenuItem inputSequence = new JMenuItem();
94 protected JMenuItem vamsasStop = new JMenuItem();
96 JMenuItem closeAll = new JMenuItem();
98 JMenuItem raiseRelated = new JMenuItem();
100 JMenuItem minimizeAssociated = new JMenuItem();
102 protected JCheckBoxMenuItem showMemusage = new JCheckBoxMenuItem();
104 JMenuItem garbageCollect = new JMenuItem();
106 protected JMenuItem groovyShell;
108 protected JCheckBoxMenuItem experimentalFeatures;
110 protected JCheckBoxMenuItem showConsole = new JCheckBoxMenuItem();
112 protected JCheckBoxMenuItem showNews = new JCheckBoxMenuItem();
114 protected JMenuItem snapShotWindow = new JMenuItem();
117 * Creates a new GDesktop object.
125 this.setJMenuBar(desktopMenubar);
126 } catch (Exception e)
131 if (Platform.allowMnemonics())
133 //BH was !Platform.isAMacAndNotJS()) i.e. "JS or not Mac"
134 // but here we want just not a Mac, period, right?
135 FileMenu.setMnemonic('F');
136 inputLocalFileMenuItem.setMnemonic('L');
137 VamsasMenu.setMnemonic('V');
138 inputURLMenuItem.setMnemonic('U');
139 inputTextboxMenuItem.setMnemonic('C');
140 quit.setMnemonic('Q');
141 saveState.setMnemonic('S');
142 loadState.setMnemonic('L');
143 inputMenu.setMnemonic('I');
153 private void jbInit() throws Exception
155 setName("jalview-desktop");
156 FileMenu.setText(MessageManager.getString("action.file"));
157 HelpMenu.setText(MessageManager.getString("action.help"));
158 VamsasMenu.setText("Vamsas");
159 VamsasMenu.setToolTipText(MessageManager
160 .getString("label.share_data_vamsas_applications"));
161 VamsasStMenu.setText(MessageManager.getString("label.connect_to"));
162 VamsasStMenu.setToolTipText(
163 MessageManager.getString("label.join_existing_vamsas_session"));
164 inputLocalFileMenuItem
165 .setText(MessageManager.getString("label.load_tree_from_file"));
166 inputLocalFileMenuItem.setAccelerator(
167 javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O,
168 jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(),
170 inputLocalFileMenuItem
171 .addActionListener(new java.awt.event.ActionListener()
174 public void actionPerformed(ActionEvent e)
176 inputLocalFileMenuItem_actionPerformed(null);
179 inputURLMenuItem.setText(MessageManager.getString("label.from_url"));
180 inputURLMenuItem.addActionListener(new java.awt.event.ActionListener()
183 public void actionPerformed(ActionEvent e)
187 inputURLMenuItem_actionPerformed(null);
188 } catch (FileFormatException e1)
190 System.err.println("Error loading from URL: " + e1.getMessage());
195 .setText(MessageManager.getString("label.from_textbox"));
197 .addActionListener(new java.awt.event.ActionListener()
200 public void actionPerformed(ActionEvent e)
202 inputTextboxMenuItem_actionPerformed(null);
205 quit.setText(MessageManager.getString("action.quit"));
206 quit.addActionListener(new java.awt.event.ActionListener()
209 public void actionPerformed(ActionEvent e)
214 aboutMenuItem.setText(MessageManager.getString("label.about"));
215 aboutMenuItem.addActionListener(new java.awt.event.ActionListener()
218 public void actionPerformed(ActionEvent e)
220 aboutMenuItem_actionPerformed(e);
223 documentationMenuItem
224 .setText(MessageManager.getString("label.documentation"));
225 documentationMenuItem.setAccelerator(javax.swing.KeyStroke
226 .getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0, false));
227 documentationMenuItem
228 .addActionListener(new java.awt.event.ActionListener()
231 public void actionPerformed(ActionEvent e)
233 documentationMenuItem_actionPerformed();
236 this.getContentPane().setLayout(flowLayout1);
237 windowMenu.setText(MessageManager.getString("label.window"));
238 preferences.setText(MessageManager.getString("label.preferences"));
239 preferences.addActionListener(new ActionListener()
242 public void actionPerformed(ActionEvent e)
244 preferences_actionPerformed(e);
247 toolsMenu.setText(MessageManager.getString("label.tools"));
248 saveState.setText(MessageManager.getString("action.save_project"));
249 saveState.addActionListener(new ActionListener()
252 public void actionPerformed(ActionEvent e)
254 saveState_actionPerformed();
257 saveAsState.setText(MessageManager.getString("action.save_project_as"));
258 saveAsState.addActionListener(new ActionListener()
261 public void actionPerformed(ActionEvent e)
263 saveAsState_actionPerformed(e);
266 loadState.setText(MessageManager.getString("action.load_project"));
267 loadState.addActionListener(new ActionListener()
270 public void actionPerformed(ActionEvent e)
272 loadState_actionPerformed();
275 inputMenu.setText(MessageManager.getString("label.input_alignment"));
277 .setText(MessageManager.getString("label.new_vamsas_session"));
278 vamsasStart.setVisible(false);
279 vamsasStart.addActionListener(new ActionListener()
282 public void actionPerformed(ActionEvent e)
284 vamsasStart_actionPerformed(e);
287 vamsasImport.setText(
288 MessageManager.getString("action.load_vamsas_session"));
289 vamsasImport.setVisible(false);
290 vamsasImport.addActionListener(new ActionListener()
293 public void actionPerformed(ActionEvent e)
295 vamsasImport_actionPerformed(e);
299 MessageManager.getString("action.save_vamsas_session"));
300 vamsasSave.setVisible(false);
301 vamsasSave.addActionListener(new ActionListener()
304 public void actionPerformed(ActionEvent e)
306 vamsasSave_actionPerformed(e);
310 .setText(MessageManager.getString("action.fetch_sequences"));
311 inputSequence.addActionListener(new ActionListener()
314 public void actionPerformed(ActionEvent e)
316 inputSequence_actionPerformed(e);
320 .setText(MessageManager.getString("label.stop_vamsas_session"));
321 vamsasStop.setVisible(false);
322 vamsasStop.addActionListener(new ActionListener()
325 public void actionPerformed(ActionEvent e)
327 vamsasStop_actionPerformed(e);
330 closeAll.setText(MessageManager.getString("action.close_all"));
331 closeAll.addActionListener(new ActionListener()
334 public void actionPerformed(ActionEvent e)
336 closeAll_actionPerformed(e);
339 raiseRelated.setText(
340 MessageManager.getString("action.raise_associated_windows"));
341 raiseRelated.addActionListener(new ActionListener()
344 public void actionPerformed(ActionEvent e)
346 raiseRelated_actionPerformed(e);
349 minimizeAssociated.setText(
350 MessageManager.getString("action.minimize_associated_windows"));
351 minimizeAssociated.addActionListener(new ActionListener()
354 public void actionPerformed(ActionEvent e)
356 minimizeAssociated_actionPerformed(e);
360 .setText(MessageManager.getString("label.collect_garbage"));
361 garbageCollect.addActionListener(new ActionListener()
364 public void actionPerformed(ActionEvent e)
366 garbageCollect_actionPerformed(e);
370 .setText(MessageManager.getString("label.show_memory_usage"));
371 showMemusage.addActionListener(new ActionListener()
374 public void actionPerformed(ActionEvent e)
376 showMemusage_actionPerformed(e);
380 .setText(MessageManager.getString("label.show_java_console"));
381 showConsole.addActionListener(new ActionListener()
384 public void actionPerformed(ActionEvent e)
386 showConsole_actionPerformed(e);
389 showNews.setText(MessageManager.getString("label.show_jalview_news"));
390 showNews.addActionListener(new ActionListener()
393 public void actionPerformed(ActionEvent e)
395 showNews_actionPerformed(e);
398 groovyShell = new JMenuItem();
399 groovyShell.setText(MessageManager.getString("label.groovy_console"));
400 groovyShell.addActionListener(new ActionListener()
403 public void actionPerformed(ActionEvent e)
405 groovyShell_actionPerformed();
408 experimentalFeatures = new JCheckBoxMenuItem();
410 .setText(MessageManager.getString("label.show_experimental"));
411 experimentalFeatures.setToolTipText(
412 MessageManager.getString("label.show_experimental_tip"));
413 experimentalFeatures.addActionListener(new ActionListener()
416 public void actionPerformed(ActionEvent e)
418 showExperimental_actionPerformed(experimentalFeatures.isSelected());
422 snapShotWindow.setText(MessageManager.getString("label.take_snapshot"));
423 snapShotWindow.addActionListener(new ActionListener()
426 public void actionPerformed(ActionEvent e)
428 snapShotWindow_actionPerformed(e);
432 Float specversion = Float.parseFloat(System.getProperty("java.specification.version"));
434 desktopMenubar.add(FileMenu);
435 desktopMenubar.add(toolsMenu);
436 VamsasMenu.setVisible(false);
437 desktopMenubar.add(VamsasMenu);
438 desktopMenubar.add(HelpMenu);
439 desktopMenubar.add(windowMenu);
440 FileMenu.add(inputMenu);
441 FileMenu.add(inputSequence);
442 FileMenu.addSeparator();
443 //FileMenu.add(saveState);
444 FileMenu.add(saveAsState);
445 FileMenu.add(loadState);
446 FileMenu.addSeparator();
448 HelpMenu.add(aboutMenuItem);
449 HelpMenu.add(documentationMenuItem);
450 VamsasMenu.add(VamsasStMenu);
451 VamsasStMenu.setVisible(false);
452 VamsasMenu.add(vamsasStart);
453 VamsasMenu.add(vamsasImport);
454 VamsasMenu.add(vamsasSave);
455 VamsasMenu.add(vamsasStop);
456 if (!Platform.isMac() || specversion < 11)
458 toolsMenu.add(preferences);
460 if (!Platform.isJS())
462 toolsMenu.add(showMemusage);
463 toolsMenu.add(showConsole);
464 toolsMenu.add(showNews);
465 toolsMenu.add(garbageCollect);
466 toolsMenu.add(groovyShell);
468 toolsMenu.add(experimentalFeatures);
469 // toolsMenu.add(snapShotWindow);
470 inputMenu.add(inputLocalFileMenuItem);
471 inputMenu.add(inputURLMenuItem);
472 inputMenu.add(inputTextboxMenuItem);
473 windowMenu.add(closeAll);
474 windowMenu.add(raiseRelated);
475 windowMenu.add(minimizeAssociated);
476 windowMenu.addSeparator();
477 // inputMenu.add(vamsasLoad);
480 protected void showExperimental_actionPerformed(boolean selected)
484 protected void groovyShell_actionPerformed()
488 protected void snapShotWindow_actionPerformed(ActionEvent e)
490 // TODO Auto-generated method stub
494 protected void showConsole_actionPerformed(ActionEvent e)
496 // TODO Auto-generated method stub
500 protected void showNews_actionPerformed(ActionEvent e)
502 // TODO Auto-generated method stub
506 protected void showMemusage_actionPerformed(ActionEvent e)
508 // TODO Auto-generated method stub
512 protected void garbageCollect_actionPerformed(ActionEvent e)
514 // TODO Auto-generated method stub
518 protected void vamsasStMenu_actionPerformed()
522 public void vamsasSave_actionPerformed(ActionEvent e)
532 protected void inputLocalFileMenuItem_actionPerformed(
533 jalview.gui.AlignViewport av)
542 * @throws FileFormatException
544 protected void inputURLMenuItem_actionPerformed(
545 jalview.gui.AlignViewport av) throws FileFormatException
555 protected void inputTextboxMenuItem_actionPerformed(
556 AlignmentViewPanel avp)
563 protected void quit()
565 //System.out.println("********** GDesktop.quit()");
574 protected void aboutMenuItem_actionPerformed(ActionEvent e)
578 protected void documentationMenuItem_actionPerformed()
588 protected void preferences_actionPerformed(ActionEvent e)
598 public void saveState_actionPerformed()
602 public void saveAsState_actionPerformed(ActionEvent e)
612 public void loadState_actionPerformed()
622 public void loadJalviewAlign_actionPerformed(ActionEvent e)
626 public void vamsasStart_actionPerformed(ActionEvent e)
631 public void inputSequence_actionPerformed(ActionEvent e)
636 public void vamsasStop_actionPerformed(ActionEvent e)
641 public void closeAll_actionPerformed(ActionEvent e)
646 public void raiseRelated_actionPerformed(ActionEvent e)
651 public void minimizeAssociated_actionPerformed(ActionEvent e)
656 public void vamsasImport_actionPerformed(ActionEvent e)