package nl.tudelft.bw4t.environmentstore.editor.menu.controller;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.JFileChooser;
import nl.tudelft.bw4t.environmentstore.editor.controller.MapPanelController;
import nl.tudelft.bw4t.environmentstore.editor.menu.view.MenuBar;
import nl.tudelft.bw4t.environmentstore.editor.model.MapConverter;
import nl.tudelft.bw4t.environmentstore.main.controller.EnvironmentStoreController;
import nl.tudelft.bw4t.environmentstore.main.view.EnvironmentStore;
import nl.tudelft.bw4t.map.MapFormatException;
/**
* Menu option to open an existing map
*/
public class MenuOptionOpen extends AbstractMenuOption {
/**
* Constructor for MenuOptionOpen
* @param newView the menu the option is on
* @param controller evironment controller
*/
public MenuOptionOpen(MenuBar newView, EnvironmentStoreController controller) {
super(newView, controller);
}
/**
* Gets called when the menu item save as is pressed.
*
* @param e
* The action event.
*/
public void actionPerformed(final ActionEvent e) {
// Open configuration file
JFileChooser fileChooser = getCurrentFileChooser();
fileChooser.setFileFilter(FileFilters.mapFilter());
EnvironmentStore current = getEnvironmentStoreController()
.getMainView();
if (fileChooser.showOpenDialog(current) == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
MapPanelController mc = super.getEnvironmentStoreController().getMapController();
mc.setModel(MapConverter.loadMap(file));
} catch (MapFormatException e1) {
EnvironmentStore.showDialog("File cannot be read.");
}
}
}
}