1: package siege.gui.views;
2:
3: import siege.gui.dialogs.DialogJoinGame;
4: import siege.gui.dialogs.DialogCreateGame;
5: import java.awt.event.ActionEvent;
6: import java.awt.event.ActionListener;
7: import java.util.Observable;
8: import java.util.Observer;
9: import javax.swing.JMenu;
10: import javax.swing.JMenuBar;
11: import javax.swing.JMenuItem;
12: import siege.FrontController;
13: import siege.core.Game;
14:
15: 16: 17: 18: 19:
20: public class MainMenuView extends JMenuBar implements Observer
21: {
22: 23: 24:
25: public JMenuItem itemGameCreate;
26: public JMenuItem itemGameJoin;
27: public JMenuItem itemGameQuit;
28: public JMenuItem itemGameExitProgram;
29:
30: 31: 32:
33: public MainMenuView ()
34: {
35: 36: itemGameCreate = new JMenuItem("Create");
37: itemGameJoin = new JMenuItem("Join");
38: itemGameQuit = new JMenuItem("Quit");
39: itemGameExitProgram = new JMenuItem("Exit Program");
40:
41: 42: JMenu menuGame = new JMenu("Game");
43: menuGame.add(itemGameCreate);
44: menuGame.add(itemGameJoin);
45: menuGame.addSeparator();
46: menuGame.add(itemGameQuit);
47: menuGame.addSeparator();
48: menuGame.addSeparator();
49: menuGame.add(itemGameExitProgram);
50: add(menuGame);
51:
52: 53:
54: itemGameCreate.addActionListener(new ActionListener() {
55: public void actionPerformed(ActionEvent e) {
56: FrontController.getInstance().initialize();
57: new DialogCreateGame();
58: }
59: });
60:
61: itemGameJoin.addActionListener(new ActionListener() {
62: public void actionPerformed(ActionEvent e) {
63: FrontController.getInstance().initialize();
64: new DialogJoinGame();
65: }
66: });
67:
68: itemGameQuit.addActionListener(new ActionListener() {
69: public void actionPerformed(ActionEvent e) {
70: Game game = Game.getInstance();
71: game.retreat(game.getLocalPlayer());
72: }
73: });
74:
75: itemGameExitProgram.addActionListener(new ActionListener() {
76: public void actionPerformed(ActionEvent e) {
77: Game game = Game.getInstance();
78: game.retreat(game.getLocalPlayer());
79: System.exit(0);
80: }
81: });
82:
83: }
84:
85: 86: 87:
88: public void initialize()
89: {
90: 91: itemGameCreate.setEnabled(true);
92: itemGameJoin.setEnabled(true);
93: itemGameQuit.setEnabled(false);
94: itemGameExitProgram.setEnabled(true);
95:
96: 97: Game.getInstance().addObserver(this);
98: }
99:
100: 101: 102:
103: public void update(Observable o, Object arg) {
104: if(o instanceof Game) {
105: Game game = (Game)o;
106: switch(game.getStatus()) {
107: case CONNECTING:
108: itemGameQuit.setEnabled(true);
109: itemGameJoin.setEnabled(false);
110: itemGameCreate.setEnabled(false);
111: break;
112: case END:
113: itemGameQuit.setEnabled(false);
114: break;
115: }
116: }
117: }
118: }
119: