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