File Source: MenuBar.java
/*
P/P * Method: com.dmdirc.addons.ui_swing.components.MenuBar$1__static_init
*/
1 /*
2 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
23 package com.dmdirc.addons.ui_swing.components;
24
25 import com.dmdirc.ServerManager;
26 import com.dmdirc.ServerState;
27 import com.dmdirc.ui.interfaces.Window;
28 import com.dmdirc.addons.ui_swing.Apple;
29 import com.dmdirc.addons.ui_swing.MainFrame;
30 import com.dmdirc.addons.ui_swing.components.frames.ChannelFrame;
31 import com.dmdirc.addons.ui_swing.SwingController;
32 import com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog;
33 import com.dmdirc.addons.ui_swing.dialogs.NewServerDialog;
34 import com.dmdirc.addons.ui_swing.dialogs.about.AboutDialog;
35 import com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog;
36 import com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog;
37 import com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog;
38 import com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog;
39 import com.dmdirc.addons.ui_swing.framemanager.windowmenu.WindowMenuFrameManager;
40
41 import java.awt.event.ActionEvent;
42 import java.awt.event.ActionListener;
43 import java.awt.Dialog.ModalityType;
44
45 import javax.swing.Box;
46 import javax.swing.JMenu;
47 import javax.swing.JMenuBar;
48 import javax.swing.JMenuItem;
49 import javax.swing.event.MenuEvent;
50 import javax.swing.event.MenuListener;
51
52 import net.miginfocom.layout.PlatformDefaults;
53 import net.miginfocom.swing.MigLayout;
54
55 /**
56 * DMDirc menu bar.
57 */
/*
P/P * Method: SwingController access$000(MenuBar)
*
* Preconditions:
* x0 != null
* init'ed(x0.controller)
*
* Postconditions:
* return_value == x0.controller
* init'ed(return_value)
*/
58 public class MenuBar extends JMenuBar implements ActionListener, MenuListener {
59
60 /**
61 * A version number for this class. It should be changed whenever the class
62 * structure is changed (or anything else that would prevent serialized
63 * objects being unserialized with the new class).
64 */
65 private static final long serialVersionUID = 1;
66 /** CSD. */
67 private JMenuItem csd;
68 /** SSD. */
69 private JMenuItem ssd;
70 /** disconnect. */
71 private JMenuItem disconnect;
72 /** join. */
73 private JMenuItem join;
74 /** Swing controller. */
75 private SwingController controller;
76 /** Main frame. */
77 private MainFrame mainFrame;
78
79 /**
80 * Instantiates a new menu bar.
81 *
82 * @param controller Swing controller
83 * @param mainFrame Main frame
84 */
85 public MenuBar(final SwingController controller, final MainFrame mainFrame) {
/*
P/P * Method: void com.dmdirc.addons.ui_swing.components.MenuBar(SwingController, MainFrame)
*
* Presumptions:
* com.dmdirc.addons.ui_swing.components.MenuBar:getActionMap(...)@101 != null
* com.dmdirc.addons.ui_swing.components.MenuBar:getActionMap(...)@102 != null
* net.miginfocom.layout.PlatformDefaults:getPanelInsets(...)@99 != null
*
* Postconditions:
* this.controller == controller
* init'ed(this.controller)
* this.csd == &new JMenuItem(initChannelMenu#3)
* this.disconnect == &new JMenuItem(initServerMenu#3)
* this.join == &new JMenuItem(initChannelMenu#2)
* this.mainFrame == mainFrame
* init'ed(this.mainFrame)
* this.ssd == &new JMenuItem(initServerMenu#4)
* new JMenuItem(initChannelMenu#2) num objects == 1
* new JMenuItem(initChannelMenu#3) num objects == 1
* ...
*/
86 super();
87 this.controller = controller;
88 this.mainFrame = mainFrame;
89
90 setLayout(new MigLayout("ins 0, fillx"));
91
92 initServerMenu();
93 initChannelMenu();
94 initSettingsMenu();
95 add(new WindowMenuFrameManager());
96 initHelpMenu();
97 add(Box.createHorizontalGlue(), "growx, pushx");
98 add(new MDIBar(mainFrame));
99 add(Box.createHorizontalStrut(PlatformDefaults.getPanelInsets(1).getUnit()));
100
101 getActionMap().setParent(null);
102 getActionMap().clear();
103 }
104
105 /**
106 * Initialises the server menu.
107 */
108 private void initServerMenu() {
109 JMenuItem menuItem;
/*
P/P * Method: void initServerMenu()
*
* Postconditions:
* this.disconnect == &new JMenuItem(initServerMenu#3)
* this.ssd == &new JMenuItem(initServerMenu#4)
* new JMenuItem(initServerMenu#3) num objects == 1
* new JMenuItem(initServerMenu#4) num objects == 1
*/
110 final JMenu menu = new JMenu("Server");
111 menu.setMnemonic('s');
112 menu.addMenuListener(this);
113 add(menu);
114
115 menuItem = new JMenuItem();
116 menuItem.setText("New Server...");
117 menuItem.setMnemonic('n');
118 menuItem.setActionCommand("NewServer");
119 menuItem.addActionListener(this);
120 menu.add(menuItem);
121
122 disconnect = new JMenuItem();
123 disconnect.setText("Disconnect");
124 disconnect.setMnemonic('d');
125 disconnect.setActionCommand("Disconnect");
126 disconnect.addActionListener(this);
127 menu.add(disconnect);
128
129 ssd = new JMenuItem();
130 ssd.setMnemonic('s');
131 ssd.setText("Server settings");
132 ssd.setActionCommand("ServerSettings");
133 ssd.addActionListener(this);
134 menu.add(ssd);
135
136 if (!Apple.isAppleUI()) {
137 menuItem = new JMenuItem();
138 menuItem.setText("Exit");
139 menuItem.setMnemonic('x');
140 menuItem.setActionCommand("Exit");
141 menuItem.addActionListener(this);
142 menu.add(menuItem);
143 }
144 }
145
146 /**
147 * Initialises the channel menu.
148 */
149 private void initChannelMenu() {
/*
P/P * Method: void initChannelMenu()
*
* Postconditions:
* this.csd == &new JMenuItem(initChannelMenu#3)
* this.join == &new JMenuItem(initChannelMenu#2)
* new JMenuItem(initChannelMenu#2) num objects == 1
* new JMenuItem(initChannelMenu#3) num objects == 1
*/
150 final JMenu menu = new JMenu("Channel");
151 menu.setMnemonic('c');
152 menu.addMenuListener(this);
153 add(menu);
154
155 join = new JMenuItem();
156 join.setText("Join Channel...");
157 join.setMnemonic('j');
158 join.setActionCommand("JoinChannel");
159 join.addActionListener(this);
160 menu.add(join);
161
162 csd = new JMenuItem();
163 csd.setMnemonic('c');
164 csd.setText("Channel Settings");
165 csd.setActionCommand("ChannelSettings");
166 csd.addActionListener(this);
167 menu.add(csd);
168 }
169
170 /**
171 * Initialises the settings menu.
172 */
173 private void initSettingsMenu() {
174 JMenuItem menuItem;
/*
P/P * Method: void initSettingsMenu()
*/
175 final JMenu menu = new JMenu("Settings");
176 menu.setMnemonic('e');
177 menu.addMenuListener(this);
178 add(menu);
179
180 if (!Apple.isAppleUI()) {
181 menuItem = new JMenuItem();
182 menuItem.setText("Preferences");
183 menuItem.setMnemonic('p');
184 menuItem.setActionCommand("Preferences");
185 menuItem.addActionListener(this);
186 menu.add(menuItem);
187 }
188
189 menuItem = new JMenuItem();
190 menuItem.setMnemonic('m');
191 menuItem.setText("Profile Manager");
192 menuItem.setActionCommand("Profile");
193 menuItem.addActionListener(this);
194 menu.add(menuItem);
195
196 menuItem = new JMenuItem();
197 menuItem.setMnemonic('a');
198 menuItem.setText("Actions Manager");
199 menuItem.setActionCommand("Actions");
200 menuItem.addActionListener(this);
201 menu.add(menuItem);
202
203 menuItem = new JMenuItem();
204 menuItem.setMnemonic('l');
205 menuItem.setText("Alias Manager");
206 menuItem.setActionCommand("Aliases");
207 menuItem.addActionListener(this);
208 menu.add(menuItem);
209 }
210
211 /**
212 * Initialises the help menu.
213 */
214 private void initHelpMenu() {
215 JMenuItem menuItem;
/*
P/P * Method: void initHelpMenu()
*/
216 final JMenu menu = new JMenu("Help");
217 menu.setMnemonic('h');
218 add(menu);
219
220 menuItem = new JMenuItem();
221 menuItem.setMnemonic('j');
222 menuItem.setText("Join Dev channel");
223 menuItem.setActionCommand("JoinDevChat");
224 menuItem.addActionListener(this);
225 menu.add(menuItem);
226
227 menuItem = new JMenuItem();
228 menuItem.setMnemonic('f');
229 menuItem.setText("Send Feedback");
230 menuItem.setActionCommand("feedback");
231 menuItem.addActionListener(this);
232 menu.add(menuItem);
233
234 if (!Apple.isAppleUI()) {
235 menuItem = new JMenuItem();
236 menuItem.setMnemonic('a');
237 menuItem.setText("About");
238 menuItem.setActionCommand("About");
239 menuItem.addActionListener(this);
240 menu.add(menuItem);
241 }
242 }
243
244 /**
245 * {@inheritDoc}
246 *
247 * @param e Action event
248 */
249 @Override
250 public void actionPerformed(final ActionEvent e) {
/*
P/P * Method: void actionPerformed(ActionEvent)
*
* Preconditions:
* e != null
* (soft) this.controller != null
* (soft) this.controller.mainFrameCreated != null
* (soft) this.controller.me != null
* (soft) this.mainFrame != null
*
* Presumptions:
* com.dmdirc.ServerManager:getServerManager(...)@266 != null
* init'ed(java.awt.Dialog$ModalityType.MODELESS)
* java.awt.event.ActionEvent:getActionCommand(...)@255 != null
* java.awt.event.ActionEvent:getActionCommand(...)@257 != null
* java.awt.event.ActionEvent:getActionCommand(...)@259 != null
* ...
*
* Postconditions:
* possibly_updated(this.mainFrame.exitCode)
*
* Test Vectors:
* java.lang.String:equals(...)@251: {0}, {1}
* java.lang.String:equals(...)@253: {0}, {1}
* java.lang.String:equals(...)@255: {0}, {1}
* java.lang.String:equals(...)@257: {0}, {1}
* java.lang.String:equals(...)@259: {0}, {1}
* java.lang.String:equals(...)@261: {0}, {1}
* java.lang.String:equals(...)@263: {0}, {1}
* java.lang.String:equals(...)@265: {0}, {1}
* java.lang.String:equals(...)@267: {0}, {1}
* java.lang.String:equals(...)@269: {0}, {1}
* ...
*/
251 if ("NewServer".equals(e.getActionCommand())) {
252 NewServerDialog.showNewServerDialog(mainFrame);
253 } else if ("Preferences".equals(e.getActionCommand())) {
254 SwingPreferencesDialog.showSwingPreferencesDialog(mainFrame);
255 } else if (e.getActionCommand().equals("About")) {
256 AboutDialog.showAboutDialog(mainFrame);
257 } else if (e.getActionCommand().equals("Profile")) {
258 ProfileManagerDialog.showProfileManagerDialog(mainFrame);
259 } else if (e.getActionCommand().equals("Exit")) {
260 mainFrame.quit();
261 } else if (e.getActionCommand().equals("Actions")) {
262 ActionsManagerDialog.showActionsManagerDialog(mainFrame);
263 } else if (e.getActionCommand().equals("Aliases")) {
264 AliasManagerDialog.showAliasManagerDialog(mainFrame);
265 } else if (e.getActionCommand().equals("JoinDevChat")) {
266 ServerManager.getServerManager().joinDevChat();
267 } else if (e.getActionCommand().equals("feedback")) {
268 FeedbackDialog.showFeedbackDialog(mainFrame);
269 } else if (e.getActionCommand().equals("ChannelSettings")) {
270 final Window activeWindow = controller.getActiveWindow();
271 if (activeWindow instanceof ChannelFrame) {
272 controller.showChannelSettingsDialog(((ChannelFrame) activeWindow).
273 getChannel());
274 }
275 } else if (e.getActionCommand().equals("ServerSettings")) {
276 controller.showServerSettingsDialog(controller.getActiveServer());
277 } else if (e.getActionCommand().equals("Disconnect")) {
278 controller.getActiveServer().disconnect();
279 } else if (e.getActionCommand().equals("JoinChannel")) {
280 new StandardInputDialog(mainFrame, ModalityType.MODELESS,
/*
P/P * Method: void com.dmdirc.addons.ui_swing.components.MenuBar$1(MenuBar, Window, Dialog$ModalityType, String, String)
*
* Postconditions:
* this.blurb == &new TextLabel(initComponents#4)
* this.cancelButton == One-of{&new JButton(initComponents#2), &new JButton(initComponents#1)}
* this.cancelButton in Addr_Set{&new JButton(initComponents#1),&new JButton(initComponents#2)}
* this.message == x3
* init'ed(this.message)
* this.okButton == One-of{&new JButton(initComponents#1), &new JButton(initComponents#2)}
* this.okButton in Addr_Set{&new JButton(initComponents#1),&new JButton(initComponents#2)}
* this.textField == &new ValidatingJTextField(initComponents#3)
* this.validator == &new StandardInputDialog$1(StandardInputDialog#1)
* new JButton(initComponents#1) num objects == 1
* ...
*/
281 "Join channel", "Enter the name of the channel to join.") {
282
283 /** Serial version UID. */
284 private static final long serialVersionUID = 1;
285
286 /** {@inheritDoc} */
287 @Override
288 public boolean save() {
/*
P/P * Method: bool save()
*
* Preconditions:
* this.textField != null
* this.controller != null
* this.controller.mainFrameCreated != null
* (soft) this.controller.me != null
*
* Postconditions:
* return_value == 1
*/
289 controller.getActiveServer().join(getText());
290 return true;
291 }
292
293 /** {@inheritDoc} */
294 @Override
295 public void cancelled() {
296 //Ignore
/*
P/P * Method: void cancelled()
*/
297 }
298 }.display();
299 }
300 }
301
302 /** {@inheritDoc} */
303 @Override
304 public void menuSelected(final MenuEvent e) {
/*
P/P * Method: void menuSelected(MenuEvent)
*
* Preconditions:
* this.controller != null
* this.controller.me != null
* this.csd != null
* this.disconnect != null
* this.join != null
* this.ssd != null
*
* Presumptions:
* com.dmdirc.FrameContainer:getServer(...)@307 != null
* com.dmdirc.FrameContainer:getServer(...)@310 != null
* com.dmdirc.FrameContainer:getServer(...)@313 != null
* com.dmdirc.FrameContainer:getServer(...)@316 != null
* init'ed(com.dmdirc.ServerState.CONNECTED)
* ...
*/
305 final Window activeWindow = controller.getActiveWindow();
306
307 ssd.setEnabled(activeWindow != null && activeWindow.getContainer().
308 getServer() != null && activeWindow.getContainer().
309 getServer().getState() == ServerState.CONNECTED);
310 csd.setEnabled(activeWindow instanceof ChannelFrame && activeWindow.getContainer().
311 getServer() != null && activeWindow.getContainer().
312 getServer().getState() == ServerState.CONNECTED);
313 disconnect.setEnabled(activeWindow != null && activeWindow.getContainer().
314 getServer() != null && activeWindow.getContainer().
315 getServer().getState() == ServerState.CONNECTED);
316 join.setEnabled(activeWindow != null && activeWindow.getContainer().
317 getServer() != null && activeWindow.getContainer().
318 getServer().getState() == ServerState.CONNECTED);
319 }
320
321 /** {@inheritDoc} */
322 @Override
323 public void menuDeselected(final MenuEvent e) {
324 //Ignore
/*
P/P * Method: void menuDeselected(MenuEvent)
*/
325 }
326
327 /** {@inheritDoc} */
328 @Override
329 public void menuCanceled(final MenuEvent e) {
330 //Ignore
/*
P/P * Method: void menuCanceled(MenuEvent)
*/
331 }
332 }
SofCheck Inspector Build Version : 2.17854
| MenuBar.java |
2009-Jun-25 01:54:24 |
| MenuBar.class |
2009-Sep-02 17:04:17 |
| MenuBar$1.class |
2009-Sep-02 17:04:17 |