error_popup: protect all menu items from unexpected errors

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@655 d9718cc8-9f43-0410-858b-315f434eb58c
This commit is contained in:
jason@long.name 2013-05-20 16:11:53 +00:00
parent dce768ef45
commit 3abbc599f2

View file

@ -359,48 +359,53 @@ public class MainWindow extends JFrame
JMenuItem menuItem; JMenuItem menuItem;
menuItem = new JMenuItem(strings.getString("menu.game.new")); menuItem = new JMenuItem(strings.getString("menu.game.new"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onNewCityClicked(); onNewCityClicked();
} }
}); }));
gameMenu.add(menuItem); gameMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.game.load")); menuItem = new JMenuItem(strings.getString("menu.game.load"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onLoadGameClicked(); onLoadGameClicked();
} }
}); }));
gameMenu.add(menuItem); gameMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.game.save")); menuItem = new JMenuItem(strings.getString("menu.game.save"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onSaveCityClicked(); onSaveCityClicked();
} }
}); }));
gameMenu.add(menuItem); gameMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.game.save_as")); menuItem = new JMenuItem(strings.getString("menu.game.save_as"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onSaveCityAsClicked(); onSaveCityAsClicked();
} }
}); }));
gameMenu.add(menuItem); gameMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.game.exit")); menuItem = new JMenuItem(strings.getString("menu.game.exit"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
closeWindow(); closeWindow();
} }
}); }));
gameMenu.add(menuItem); gameMenu.add(menuItem);
JMenu optionsMenu = new JMenu(strings.getString("menu.options")); JMenu optionsMenu = new JMenu(strings.getString("menu.options"));
@ -414,106 +419,117 @@ public class MainWindow extends JFrame
{ {
final int level = i; final int level = i;
menuItem = new JRadioButtonMenuItem(strings.getString("menu.difficulty."+level)); menuItem = new JRadioButtonMenuItem(strings.getString("menu.difficulty."+level));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent evt) { public void actionPerformed(ActionEvent evt) {
onDifficultyClicked(level); onDifficultyClicked(level);
} }
}); }));
levelMenu.add(menuItem); levelMenu.add(menuItem);
difficultyMenuItems.put(level, menuItem); difficultyMenuItems.put(level, menuItem);
} }
autoBudgetMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.auto_budget")); autoBudgetMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.auto_budget"));
autoBudgetMenuItem.addActionListener(new ActionListener() { autoBudgetMenuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onAutoBudgetClicked(); onAutoBudgetClicked();
} }
}); }));
optionsMenu.add(autoBudgetMenuItem); optionsMenu.add(autoBudgetMenuItem);
autoBulldozeMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.auto_bulldoze")); autoBulldozeMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.auto_bulldoze"));
autoBulldozeMenuItem.addActionListener(new ActionListener() { autoBulldozeMenuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onAutoBulldozeClicked(); onAutoBulldozeClicked();
} }
}); }));
optionsMenu.add(autoBulldozeMenuItem); optionsMenu.add(autoBulldozeMenuItem);
disastersMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.disasters")); disastersMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.disasters"));
disastersMenuItem.addActionListener(new ActionListener() { disastersMenuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onDisastersClicked(); onDisastersClicked();
} }
}); }));
optionsMenu.add(disastersMenuItem); optionsMenu.add(disastersMenuItem);
soundsMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.sound")); soundsMenuItem = new JCheckBoxMenuItem(strings.getString("menu.options.sound"));
soundsMenuItem.addActionListener(new ActionListener() { soundsMenuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onSoundClicked(); onSoundClicked();
} }
}); }));
optionsMenu.add(soundsMenuItem); optionsMenu.add(soundsMenuItem);
JMenu disastersMenu = new JMenu(strings.getString("menu.disasters")); JMenu disastersMenu = new JMenu(strings.getString("menu.disasters"));
menuBar.add(disastersMenu); menuBar.add(disastersMenu);
menuItem = new JMenuItem(strings.getString("menu.disasters.MONSTER")); menuItem = new JMenuItem(strings.getString("menu.disasters.MONSTER"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onInvokeDisasterClicked(Disaster.MONSTER); onInvokeDisasterClicked(Disaster.MONSTER);
} }
}); }));
disastersMenu.add(menuItem); disastersMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.disasters.FIRE")); menuItem = new JMenuItem(strings.getString("menu.disasters.FIRE"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onInvokeDisasterClicked(Disaster.FIRE); onInvokeDisasterClicked(Disaster.FIRE);
} }
}); }));
disastersMenu.add(menuItem); disastersMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.disasters.FLOOD")); menuItem = new JMenuItem(strings.getString("menu.disasters.FLOOD"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onInvokeDisasterClicked(Disaster.FLOOD); onInvokeDisasterClicked(Disaster.FLOOD);
} }
}); }));
disastersMenu.add(menuItem); disastersMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.disasters.MELTDOWN")); menuItem = new JMenuItem(strings.getString("menu.disasters.MELTDOWN"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onInvokeDisasterClicked(Disaster.MELTDOWN); onInvokeDisasterClicked(Disaster.MELTDOWN);
} }
}); }));
disastersMenu.add(menuItem); disastersMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.disasters.TORNADO")); menuItem = new JMenuItem(strings.getString("menu.disasters.TORNADO"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onInvokeDisasterClicked(Disaster.TORNADO); onInvokeDisasterClicked(Disaster.TORNADO);
} }
}); }));
disastersMenu.add(menuItem); disastersMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.disasters.EARTHQUAKE")); menuItem = new JMenuItem(strings.getString("menu.disasters.EARTHQUAKE"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onInvokeDisasterClicked(Disaster.EARTHQUAKE); onInvokeDisasterClicked(Disaster.EARTHQUAKE);
} }
}); }));
disastersMenu.add(menuItem); disastersMenu.add(menuItem);
JMenu priorityMenu = new JMenu(strings.getString("menu.speed")); JMenu priorityMenu = new JMenu(strings.getString("menu.speed"));
@ -521,52 +537,57 @@ public class MainWindow extends JFrame
priorityMenuItems = new EnumMap<Speed,JMenuItem>(Speed.class); priorityMenuItems = new EnumMap<Speed,JMenuItem>(Speed.class);
menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.SUPER_FAST")); menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.SUPER_FAST"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onPriorityClicked(Speed.SUPER_FAST); onPriorityClicked(Speed.SUPER_FAST);
} }
}); }));
priorityMenu.add(menuItem); priorityMenu.add(menuItem);
priorityMenuItems.put(Speed.SUPER_FAST, menuItem); priorityMenuItems.put(Speed.SUPER_FAST, menuItem);
menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.FAST")); menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.FAST"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onPriorityClicked(Speed.FAST); onPriorityClicked(Speed.FAST);
} }
}); }));
priorityMenu.add(menuItem); priorityMenu.add(menuItem);
priorityMenuItems.put(Speed.FAST, menuItem); priorityMenuItems.put(Speed.FAST, menuItem);
menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.NORMAL")); menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.NORMAL"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onPriorityClicked(Speed.NORMAL); onPriorityClicked(Speed.NORMAL);
} }
}); }));
priorityMenu.add(menuItem); priorityMenu.add(menuItem);
priorityMenuItems.put(Speed.NORMAL, menuItem); priorityMenuItems.put(Speed.NORMAL, menuItem);
menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.SLOW")); menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.SLOW"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onPriorityClicked(Speed.SLOW); onPriorityClicked(Speed.SLOW);
} }
}); }));
priorityMenu.add(menuItem); priorityMenu.add(menuItem);
priorityMenuItems.put(Speed.SLOW, menuItem); priorityMenuItems.put(Speed.SLOW, menuItem);
menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.PAUSED")); menuItem = new JRadioButtonMenuItem(strings.getString("menu.speed.PAUSED"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onPriorityClicked(Speed.PAUSED); onPriorityClicked(Speed.PAUSED);
} }
}); }));
priorityMenu.add(menuItem); priorityMenu.add(menuItem);
priorityMenuItems.put(Speed.PAUSED, menuItem); priorityMenuItems.put(Speed.PAUSED, menuItem);
@ -574,42 +595,46 @@ public class MainWindow extends JFrame
menuBar.add(windowsMenu); menuBar.add(windowsMenu);
menuItem = new JMenuItem(strings.getString("menu.windows.budget")); menuItem = new JMenuItem(strings.getString("menu.windows.budget"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onViewBudgetClicked(); onViewBudgetClicked();
} }
}); }));
windowsMenu.add(menuItem); windowsMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.windows.evaluation")); menuItem = new JMenuItem(strings.getString("menu.windows.evaluation"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onViewEvaluationClicked(); onViewEvaluationClicked();
} }
}); }));
windowsMenu.add(menuItem); windowsMenu.add(menuItem);
menuItem = new JMenuItem(strings.getString("menu.windows.graph")); menuItem = new JMenuItem(strings.getString("menu.windows.graph"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onViewGraphClicked(); onViewGraphClicked();
} }
}); }));
windowsMenu.add(menuItem); windowsMenu.add(menuItem);
JMenu helpMenu = new JMenu(strings.getString("menu.help")); JMenu helpMenu = new JMenu(strings.getString("menu.help"));
menuBar.add(helpMenu); menuBar.add(helpMenu);
menuItem = new JMenuItem(strings.getString("menu.help.about")); menuItem = new JMenuItem(strings.getString("menu.help.about"));
menuItem.addActionListener(new ActionListener() { menuItem.addActionListener(wrapActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ev) public void actionPerformed(ActionEvent ev)
{ {
onAboutClicked(); onAboutClicked();
} }
}); }));
helpMenu.add(menuItem); helpMenu.add(menuItem);
setJMenuBar(menuBar); setJMenuBar(menuBar);