//# 0 errors, 334 messages
//#
/*
    //#ServerFrame.java:1:1: class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#ServerFrame.java:1:1: method: com.dmdirc.addons.ui_swing.components.frames.ServerFrame.com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init
 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.dmdirc.addons.ui_swing.components.frames;

import com.dmdirc.Server;
import com.dmdirc.ServerState;
import com.dmdirc.addons.ui_swing.SwingController;
import com.dmdirc.commandparser.PopupType;
import com.dmdirc.commandparser.parsers.CommandParser;
import com.dmdirc.commandparser.parsers.ServerCommandParser;
import com.dmdirc.ui.interfaces.ServerWindow;
import com.dmdirc.addons.ui_swing.components.SwingInputHandler;
import com.dmdirc.addons.ui_swing.dialogs.serversetting.ServerSettingsDialog;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

import net.miginfocom.swing.MigLayout;

/**
 * The ServerFrame is the MDI window that shows server messages to the user.
 */
public final class ServerFrame extends InputTextFrame implements ServerWindow,
        ActionListener {

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 9;
    /** This channel's command parser. */
    private final ServerCommandParser commandParser;
    /** popup menu item. */
    private JMenuItem settingsMI;

    /**
     * Creates a new ServerFrame.
     * 
     * @param owner Parent Frame container
     * @param controller Swing controller
     */
    public ServerFrame(final Server owner, final SwingController controller) {
        super(owner, controller);
    //#ServerFrame.java:67: method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): __Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): __Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/UIUtilities.com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/SwingInputField]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Dispatch_Table.addKeyListener(Ljava/awt/event/KeyListener;)V
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Dispatch_Table.getTextField()Ljavax/swing/JTextField;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Dispatch_Table.setBackground(Ljava/awt/Color;)V
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Dispatch_Table.setCaretColor(Ljava/awt/Color;)V
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/SwingInputField.__Dispatch_Table.setForeground(Ljava/awt/Color;)V
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/CustomInputFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ChannelFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/CustomInputFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/InputTextFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/QueryFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): com/dmdirc/addons/ui_swing/components/frames/QueryFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): controller
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): owner
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this
    //#input(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(SwingInputField#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(SwingInputField#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(initComponents#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JMenuItem(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPanel(initComponents#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPopupMenu(initComponents#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPopupMenu(initPopupMenu#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JTextField(SwingInputField#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new ListenerList(SwingInputField#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new ServerCommandParser(ServerFrame#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).errorIndicator
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).listeners
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).textField
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).wrapIndicator
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputHandler(ServerFrame#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputHandler.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.awayLabel
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.commandParser
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputField
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputFieldPopup
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputHandler
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputPanel
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.nickPopup
    //#output(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.settingsMI
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(SwingInputField#3)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(SwingInputField#4)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(initComponents#3)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JMenuItem(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPanel(initComponents#4)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPopupMenu(initComponents#2)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPopupMenu(initPopupMenu#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JTextField(SwingInputField#2)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new ListenerList(SwingInputField#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new ServerCommandParser(ServerFrame#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputHandler(ServerFrame#2)
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/ServerFrame
    //#pre[3] (void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): owner != null
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/ServerFrame
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.awayLabel == &new JLabel(initComponents#3)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.commandParser == &new ServerCommandParser(ServerFrame#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputField == &new SwingInputField(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputFieldPopup == &new JPopupMenu(initPopupMenu#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputHandler == &new SwingInputHandler(ServerFrame#2)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputPanel == &new JPanel(initComponents#4)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.nickPopup == &new JPopupMenu(initComponents#2)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.settingsMI == &new JMenuItem(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(SwingInputField#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(SwingInputField#4) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JLabel(initComponents#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JMenuItem(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPanel(initComponents#4) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPopupMenu(initComponents#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JPopupMenu(initPopupMenu#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new JTextField(SwingInputField#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new ListenerList(SwingInputField#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new ServerCommandParser(ServerFrame#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputHandler(ServerFrame#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).__Tag == com/dmdirc/addons/ui_swing/components/SwingInputField
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).errorIndicator == &new JLabel(SwingInputField#4)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).listeners == &new ListenerList(SwingInputField#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).textField == &new JTextField(SwingInputField#2)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): new SwingInputField(initComponents#1).wrapIndicator == &new JLabel(SwingInputField#3)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): this.inputHandler.__Tag == com/dmdirc/addons/ui_swing/components/SwingInputHandler
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JMenuItem:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.ServerFrame:setTitle
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:java.awt.Container:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getTextPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:java.awt.Container:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getSearchBar
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.ServerFrame:pack
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.ui.input.InputHandler
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.TextFrame:getContainer
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.WritableFrameContainer:getServer
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.SwingUtilities:isEventDispatchThread
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.SwingUtilities:invokeAndWait
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.util.ReturnableThread:run
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.util.ReturnableThread:getObject
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.util.ReturnableThread
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.undo.UndoManager
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.text.JTextComponent:getDocument
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.text.Document:addUndoableEditListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.text.JTextComponent:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.AbstractAction
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.ActionMap:put
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.text.JTextComponent:getInputMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.InputMap:put
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:getInputMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:java.lang.Runnable:run
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionColour
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JPopupMenu:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JPopupMenu:setOpaque
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JPopupMenu:setLightWeightPopupEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JComponent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.util.ListenerList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JTextField
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JTextField:setFocusTraversalKeysEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JTextField:addKeyListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JTextField:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:setActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JTextField:getInputMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:setInputMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputField:addMouseListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:java.awt.BorderLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.WritableFrameContainer:getConfigManager
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.Server:addAwayStateListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)): Effects-of-calling:com.dmdirc.ui.input.InputHandler:addValidationListener

        initComponents();
        
        commandParser = new ServerCommandParser((Server) getContainer());
    //#ServerFrame.java:71: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.commandparser.parsers.ServerCommandParser(Server)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)
    //#    unanalyzed callee: void com.dmdirc.commandparser.parsers.ServerCommandParser(Server)

        setInputHandler(new SwingInputHandler(getInputField(), commandParser, this));
    }
    //#ServerFrame.java:74: end of method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.com.dmdirc.addons.ui_swing.components.frames.ServerFrame(Server, SwingController)

    /**
     * Retrieves the command Parser for this command window.
     * @return This window's command Parser
     */
    @Override
    public CommandParser getCommandParser() {
        return commandParser;
    //#ServerFrame.java:82: method: CommandParser com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getCommandParser()
    //#input(CommandParser getCommandParser()): this
    //#input(CommandParser getCommandParser()): this.commandParser
    //#output(CommandParser getCommandParser()): return_value
    //#post(CommandParser getCommandParser()): return_value == this.commandParser
    //#post(CommandParser getCommandParser()): init'ed(return_value)
    //#ServerFrame.java:82: end of method: CommandParser com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getCommandParser()
    }

    /**
     * Initialises components in this frame.
     */
    private void initComponents() {
        settingsMI = new JMenuItem("Settings");
    //#ServerFrame.java:89: method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.initComponents()
    //#input(void initComponents()): this
    //#input(void initComponents()): this.inputPanel
    //#output(void initComponents()): new JMenuItem(initComponents#1) num objects
    //#output(void initComponents()): this.settingsMI
    //#new obj(void initComponents()): new JMenuItem(initComponents#1)
    //#pre[2] (void initComponents()): init'ed(this.inputPanel)
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane(...)@94 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane(...)@95 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane(...)@96 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane(...)@97 != null
    //#post(void initComponents()): this.settingsMI == &new JMenuItem(initComponents#1)
    //#post(void initComponents()): new JMenuItem(initComponents#1) num objects == 1
        settingsMI.addActionListener(this);

        setTitle("Server Frame");
    //#ServerFrame.java:92: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.ServerFrame:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame:setTitle(String)

        getContentPane().setLayout(new MigLayout("ins 0, fill, hidemode 3, wrap 1"));
    //#ServerFrame.java:94: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#ServerFrame.java:94: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
        getContentPane().add(getTextPane(), "grow, push");
    //#ServerFrame.java:95: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#ServerFrame.java:95: Warning: method not available - call not analyzed
    //#    call on TextPane com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getTextPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: TextPane com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getTextPane()
        getContentPane().add(getSearchBar(), "growx, pushx");
    //#ServerFrame.java:96: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#ServerFrame.java:96: Warning: method not available - call not analyzed
    //#    call on SwingSearchBar com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getSearchBar()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: SwingSearchBar com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getSearchBar()
        getContentPane().add(inputPanel, "growx, pushx");
    //#ServerFrame.java:97: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getContentPane()

        pack();
    //#ServerFrame.java:99: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.ServerFrame:pack()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame:pack()
    }
    //#ServerFrame.java:100: end of method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.initComponents()

    /** 
     * {@inheritDoc}.
     * 
     * @param actionEvent Action event
     */
    @Override
    public void actionPerformed(final ActionEvent actionEvent) {
        if (actionEvent.getSource() == settingsMI) {
    //#ServerFrame.java:109: method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.actionPerformed(ActionEvent)
    //#input(void actionPerformed(ActionEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame]
    //#input(void actionPerformed(ActionEvent)): __Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): __Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void actionPerformed(ActionEvent)): actionEvent
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.__Tag
    //#input(void actionPerformed(ActionEvent)): this.settingsMI
    //#pre[1] (void actionPerformed(ActionEvent)): actionEvent != null
    //#pre[4] (void actionPerformed(ActionEvent)): init'ed(this.settingsMI)
    //#pre[3] (void actionPerformed(ActionEvent)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/ServerFrame
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getController(...)@110 != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getContainer(...)@187 != null
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.TextFrame:getContainer
            ServerSettingsDialog.showServerSettingsDialog(getContainer().
    //#ServerFrame.java:110: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.WritableFrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Server com.dmdirc.WritableFrameContainer:getServer()
    //#ServerFrame.java:110: Warning: method not available - call not analyzed
    //#    call on SwingController com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getController()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: SwingController com.dmdirc.addons.ui_swing.components.frames.ServerFrame:getController()
    //#ServerFrame.java:110: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.ServerSettingsDialog:showServerSettingsDialog(Server, Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.ServerSettingsDialog:showServerSettingsDialog(Server, Window)
                    getServer(), getController().getMainFrame());
        }
    }
    //#ServerFrame.java:113: end of method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.actionPerformed(ActionEvent)

    /** {@inheritDoc} */
    @Override
    public PopupType getNicknamePopupType() {
        return PopupType.CHAN_NICK;
    //#ServerFrame.java:118: method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getNicknamePopupType()
    //#input(PopupType getNicknamePopupType()): com.dmdirc.commandparser.PopupType.CHAN_NICK
    //#output(PopupType getNicknamePopupType()): return_value
    //#presumption(PopupType getNicknamePopupType()): init'ed(com.dmdirc.commandparser.PopupType.CHAN_NICK)
    //#post(PopupType getNicknamePopupType()): return_value == com.dmdirc.commandparser.PopupType.CHAN_NICK
    //#post(PopupType getNicknamePopupType()): init'ed(return_value)
    //#ServerFrame.java:118: end of method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getNicknamePopupType()
    }

    /** {@inheritDoc} */
    @Override
    public PopupType getChannelPopupType() {
        return PopupType.CHAN_NORMAL;
    //#ServerFrame.java:124: method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getChannelPopupType()
    //#input(PopupType getChannelPopupType()): com.dmdirc.commandparser.PopupType.CHAN_NORMAL
    //#output(PopupType getChannelPopupType()): return_value
    //#presumption(PopupType getChannelPopupType()): init'ed(com.dmdirc.commandparser.PopupType.CHAN_NORMAL)
    //#post(PopupType getChannelPopupType()): return_value == com.dmdirc.commandparser.PopupType.CHAN_NORMAL
    //#post(PopupType getChannelPopupType()): init'ed(return_value)
    //#ServerFrame.java:124: end of method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getChannelPopupType()
    }

    /** {@inheritDoc} */
    @Override
    public PopupType getHyperlinkPopupType() {
        return PopupType.CHAN_HYPERLINK;
    //#ServerFrame.java:130: method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getHyperlinkPopupType()
    //#input(PopupType getHyperlinkPopupType()): com.dmdirc.commandparser.PopupType.CHAN_HYPERLINK
    //#output(PopupType getHyperlinkPopupType()): return_value
    //#presumption(PopupType getHyperlinkPopupType()): init'ed(com.dmdirc.commandparser.PopupType.CHAN_HYPERLINK)
    //#post(PopupType getHyperlinkPopupType()): return_value == com.dmdirc.commandparser.PopupType.CHAN_HYPERLINK
    //#post(PopupType getHyperlinkPopupType()): init'ed(return_value)
    //#ServerFrame.java:130: end of method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getHyperlinkPopupType()
    }

    /** {@inheritDoc} */
    @Override
    public PopupType getNormalPopupType() {
        return PopupType.CHAN_NORMAL;
    //#ServerFrame.java:136: method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getNormalPopupType()
    //#input(PopupType getNormalPopupType()): com.dmdirc.commandparser.PopupType.CHAN_NORMAL
    //#output(PopupType getNormalPopupType()): return_value
    //#presumption(PopupType getNormalPopupType()): init'ed(com.dmdirc.commandparser.PopupType.CHAN_NORMAL)
    //#post(PopupType getNormalPopupType()): return_value == com.dmdirc.commandparser.PopupType.CHAN_NORMAL
    //#post(PopupType getNormalPopupType()): init'ed(return_value)
    //#ServerFrame.java:136: end of method: PopupType com.dmdirc.addons.ui_swing.components.frames.ServerFrame.getNormalPopupType()
    }

    /** {@inheritDoc} */
    @Override
    public void addCustomPopupItems(final JPopupMenu popupMenu) {
        if (getContainer().getServer().getState().equals(ServerState.CONNECTED)) {
    //#ServerFrame.java:142: method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.addCustomPopupItems(JPopupMenu)
    //#ServerFrame.java:142: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.WritableFrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void addCustomPopupItems(JPopupMenu)
    //#    unanalyzed callee: Server com.dmdirc.WritableFrameContainer:getServer()
    //#ServerFrame.java:142: Warning: method not available - call not analyzed
    //#    call on ServerState com.dmdirc.Server:getState()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void addCustomPopupItems(JPopupMenu)
    //#    unanalyzed callee: ServerState com.dmdirc.Server:getState()
    //#ServerFrame.java:142: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.ServerState:equals(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
    //#    method: void addCustomPopupItems(JPopupMenu)
    //#    unanalyzed callee: bool com.dmdirc.ServerState:equals(Object)
    //#input(void addCustomPopupItems(JPopupMenu)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame]
    //#input(void addCustomPopupItems(JPopupMenu)): __Descendant_Table[others]
    //#input(void addCustomPopupItems(JPopupMenu)): __Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#input(void addCustomPopupItems(JPopupMenu)): com.dmdirc.ServerState.CONNECTED
    //#input(void addCustomPopupItems(JPopupMenu)): popupMenu
    //#input(void addCustomPopupItems(JPopupMenu)): this
    //#input(void addCustomPopupItems(JPopupMenu)): this.__Tag
    //#input(void addCustomPopupItems(JPopupMenu)): this.settingsMI
    //#pre[1] (void addCustomPopupItems(JPopupMenu)): popupMenu != null
    //#pre[3] (void addCustomPopupItems(JPopupMenu)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/ServerFrame
    //#pre[4] (void addCustomPopupItems(JPopupMenu)): this.settingsMI != null
    //#presumption(void addCustomPopupItems(JPopupMenu)): com.dmdirc.Server:getState(...)@142 != null
    //#presumption(void addCustomPopupItems(JPopupMenu)): init'ed(com.dmdirc.ServerState.CONNECTED)
    //#presumption(void addCustomPopupItems(JPopupMenu)): com.dmdirc.WritableFrameContainer:getServer(...)@142 != null
    //#presumption(void addCustomPopupItems(JPopupMenu)): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getContainer(...)@187 != null
    //#unanalyzed(void addCustomPopupItems(JPopupMenu)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.TextFrame:getContainer
    //#test_vector(void addCustomPopupItems(JPopupMenu)): com.dmdirc.ServerState:equals(...)@142: {0}, {1}
    //#test_vector(void addCustomPopupItems(JPopupMenu)): javax.swing.JPopupMenu:getComponentCount(...)@148: {-2_147_483_648..0}, {1..4_294_967_295}
            settingsMI.setEnabled(true);
        } else {
            settingsMI.setEnabled(false);
        }

        if (popupMenu.getComponentCount() > 0) {
            popupMenu.addSeparator();
        }
        
        popupMenu.add(settingsMI);
    }
    //#ServerFrame.java:153: end of method: void com.dmdirc.addons.ui_swing.components.frames.ServerFrame.addCustomPopupItems(JPopupMenu)
}
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame]
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.close()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.configChanged(Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.doPaste()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.doPaste(Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getAwayLabel()Ljavax/swing/JLabel;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getCommandParser()Lcom/dmdirc/commandparser/parsers/CommandParser;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getInputField()Lcom/dmdirc/addons/ui_swing/components/SwingInputField;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getInputHandler()Lcom/dmdirc/ui/input/InputHandler;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getNormalPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getSplitLine(Ljava/lang/String;)[Ljava/lang/String;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.initInputField()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.initPopupMenu()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.onAway(Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.onBack()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.open()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.populatePopupMenu(Ljavax/swing/JComponent;Lcom/dmdirc/commandparser/PopupMenu;[Ljava/lang/Object;)Ljavax/swing/JComponent;
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.popuplateNicklistPopup(Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.processMouseEvent(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.requestInputFieldFocus()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.setAwayIndicator(Z)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.setInputField(Lcom/dmdirc/addons/ui_swing/components/SwingInputField;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.setInputHandler(Lcom/dmdirc/ui/input/InputHandler;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame]
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ServerFrame] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V == &addCustomPopupItems
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.close()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.close
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.configChanged(Ljava/lang/String;Ljava/lang/String;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.configChanged
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.doPaste()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.doPaste
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.doPaste(Ljava/lang/String;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.doPaste
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getAwayLabel()Ljavax/swing/JLabel; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.getAwayLabel
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType; == &getChannelPopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getCommandParser()Lcom/dmdirc/commandparser/parsers/CommandParser; == &getCommandParser
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.getContainer
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getContainer()Lcom/dmdirc/WritableFrameContainer; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.getContainer
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType; == &getHyperlinkPopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getInputField()Lcom/dmdirc/addons/ui_swing/components/SwingInputField; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.getInputField
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getInputHandler()Lcom/dmdirc/ui/input/InputHandler; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.getInputHandler
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType; == &getNicknamePopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getNormalPopupType()Lcom/dmdirc/commandparser/PopupType; == &getNormalPopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.getSplitLine(Ljava/lang/String;)[Ljava/lang/String; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.getSplitLine
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.initInputField()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.initInputField
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.initPopupMenu()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.initPopupMenu
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.mouseClicked
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.mousePressed
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.mouseReleased
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.onAway(Ljava/lang/String;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.onAway
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.onBack()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.onBack
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.open()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.open
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.populatePopupMenu(Ljavax/swing/JComponent;Lcom/dmdirc/commandparser/PopupMenu;[Ljava/lang/Object;)Ljavax/swing/JComponent; == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.populatePopupMenu
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.popuplateNicklistPopup(Ljava/lang/String;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.popuplateNicklistPopup
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.processMouseEvent(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.processMouseEvent
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.requestInputFieldFocus()V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.requestInputFieldFocus
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.setAwayIndicator(Z)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.setAwayIndicator
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.setInputField(Lcom/dmdirc/addons/ui_swing/components/SwingInputField;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.setInputField
    //#post(com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init): __Dispatch_Table.setInputHandler(Lcom/dmdirc/ui/input/InputHandler;)V == &com/dmdirc/addons/ui_swing/components/frames/InputTextFrame.setInputHandler
    //#ServerFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.ServerFrame.com.dmdirc.addons.ui_swing.components.frames.ServerFrame__static_init
    //#ServerFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.ServerFrame
