package nl.tudelft.bw4t.scenariogui.editor.gui;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
/**
* The MenuBar class extends JMenuBar. Used in the ScenarioEditor Frame.
*/
public class MenuBar extends JMenuBar {
private static final long serialVersionUID = -7693079154027274860L;
private String lastFileLocation;
private JMenuItem fileNew, fileOpen, fileSave, fileSaveAs, exportGOAL, fileExit;
/**
* Construct a menu bar for the Scenario Editor.
*/
public MenuBar() {
JMenu file;
// Build the menu.
file = new JMenu("File");
// Bind alt+f to menu
file.setMnemonic(KeyEvent.VK_F);
add(file);
// Create the menu items.
fileNew = new JMenuItem("New");
fileNew.setToolTipText("New configuration file");
file.add(fileNew);
fileOpen = new JMenuItem("Open..");
fileOpen.setToolTipText("Open configuration file");
file.add(fileOpen);
String toolTipText = "Save configuration file";
fileSave = new JMenuItem("Save");
fileSave.setToolTipText(toolTipText);
file.add(fileSave);
fileSaveAs = new JMenuItem("Save As..");
fileSaveAs.setToolTipText(toolTipText);
file.add(fileSaveAs);
file.addSeparator();
exportGOAL = new JMenuItem("Export as MAS Project");
exportGOAL.setToolTipText("Export to Scenario as a MAS project");
file.add(exportGOAL);
file.addSeparator();
fileExit = new JMenuItem("Exit");
fileExit.setToolTipText("Exit application");
file.add(fileExit);
}
public final JMenuItem getMenuItemFileNew() {
return fileNew;
}
public final JMenuItem getMenuItemFileOpen() {
return fileOpen;
}
public final JMenuItem getMenuItemFileSave() {
return fileSave;
}
public final JMenuItem getMenuItemFileSaveAs() {
return fileSaveAs;
}
public final JMenuItem getMenuItemFileExit() {
return fileExit;
}
public final JMenuItem getMenuItemFileExport() {
return exportGOAL;
}
public final String getLastFileLocation() {
return lastFileLocation;
}
/**
* hasLastFileLocation checks if the current configuration has a
* known file location which can be used.
* @return if this configuration has a known file location
*/
public final boolean hasLastFileLocation() {
return lastFileLocation != null;
}
public final void setLastFileLocation(final String fileLocation) {
this.lastFileLocation = fileLocation;
}
public void addExitController(ActionListener controller) {
getMenuItemFileExit().addActionListener(controller);
}
public void addNewController(ActionListener controller) {
getMenuItemFileNew().addActionListener(controller);
}
public void addOpenController(ActionListener controller) {
getMenuItemFileOpen().addActionListener(controller);
}
public void addSaveController(ActionListener controller) {
getMenuItemFileSave().addActionListener(controller);
}
public void addSaveAsController(ActionListener controller) {
getMenuItemFileSaveAs().addActionListener(controller);
}
public void addExportController(ActionListener controller) {
getMenuItemFileExport().addActionListener(controller);
}
}