/*
* #######################################################
*
* Copyright (c) 2013, A. Weinberger. All rights reserved.
* --------------------------------------------------------
*/
package ale.view.gui.editor;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import javax.swing.BorderFactory;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import ale.controller.Main;
import ale.model.skin.Skin;
import ale.view.gui.GUIConstants;
import ale.view.gui.util.GUIStrings;
final class EditorMenuBar extends JMenuBar {
private static final long serialVersionUID = 1L;
public EditorMenuBar(Skin skin) {
create(skin);
}
private void create(final Skin skin) {
String tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_FILE);
JMenu fileMenu = new JMenu(tmp);
fileMenu.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
this.add(fileMenu);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_MENUBAR_NEW);
JMenuItem newMenuItem = new JMenuItem(tmp);
newMenuItem.setAccelerator(KeyStroke.getKeyStroke('N', InputEvent.CTRL_DOWN_MASK));
newMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Main.showQuitConfirmationDialog(skin, true, false);
}
});
Dimension menuitemDimension = newMenuItem.getPreferredSize();
menuitemDimension.width = GUIConstants.DEFAULT_MENUITEM_WIDTH;
newMenuItem.setPreferredSize(menuitemDimension);
fileMenu.add(newMenuItem);
fileMenu.addSeparator();
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_MENUBAR_SAVE);
JMenuItem saveMenuItem = new JMenuItem(tmp);
saveMenuItem.setAccelerator(KeyStroke.getKeyStroke('S', InputEvent.CTRL_DOWN_MASK));
saveMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Main.save(skin);
}
});
fileMenu.add(saveMenuItem);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_MENUBAR_SAVEAS);
JMenuItem saveAsMenuItem = new JMenuItem(tmp);
saveAsMenuItem.setAccelerator(KeyStroke.getKeyStroke('S', InputEvent.CTRL_MASK + InputEvent.ALT_MASK));
saveAsMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.showSaveAsDialog(skin);
}
});
fileMenu.add(saveAsMenuItem);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_MENUBAR_APPLY);
JMenuItem applyMenuItem = new JMenuItem(tmp);
applyMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.save(skin);
Main.showApplySkinDialog(skin.getFilename());
}
});
fileMenu.add(applyMenuItem);
fileMenu.addSeparator();
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_EDITOR_MENUBAR_TOCHOOSER);
JMenuItem closeMenuItem = new JMenuItem(tmp);
closeMenuItem.setAccelerator(KeyStroke.getKeyStroke('W', InputEvent.CTRL_MASK));
closeMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.showQuitConfirmationDialog(skin, false, true);
}
});
fileMenu.add(closeMenuItem);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_EXIT);
JMenuItem exitMenuItem = new JMenuItem(tmp);
exitMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.showQuitConfirmationDialog(skin, false, false);
}
});
fileMenu.add(exitMenuItem);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_SETTINGS);
JMenu settingsMenu = new JMenu(tmp);
this.add(settingsMenu);
JMenuItem settingsMenuItem = new JMenuItem(tmp);
settingsMenuItem.setPreferredSize(menuitemDimension);
settingsMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.showSettingsDialog();
}
});
settingsMenu.add(settingsMenuItem);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_HELP);
JMenu helpMenu = new JMenu(tmp);
this.add(helpMenu);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_DOCS);
JMenuItem docsMenuItem = new JMenuItem(tmp);
docsMenuItem.setAccelerator(KeyStroke.getKeyStroke('H', InputEvent.CTRL_DOWN_MASK));
docsMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.showHelpDocs();
}
});
helpMenu.add(docsMenuItem);
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_WEB);
JMenuItem webMenuItem = new JMenuItem(tmp);
webMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.showWebsite();
}
});
helpMenu.add(webMenuItem);
helpMenu.addSeparator();
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_BACKUP);
JMenuItem backupMenuItem = new JMenuItem(tmp);
backupMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Main.applyBackup();
}
});
helpMenu.add(backupMenuItem);
helpMenu.addSeparator();
tmp = GUIStrings.keyToLocatedString(GUIStrings.KEY_MENUBAR_ABOUT);
JMenuItem aboutMenuItem = new JMenuItem(tmp);
aboutMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Main.showAboutDialog();
}
});
helpMenu.add(aboutMenuItem);
}
}