//# 0 errors, 429 messages
//#
/*
    //#GlobalWindow.java:1:1: class: com.dmdirc.GlobalWindow
    //#GlobalWindow.java:1:1: method: com.dmdirc.GlobalWindow.com.dmdirc.GlobalWindow__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;

import com.dmdirc.actions.wrappers.AliasWrapper;
import com.dmdirc.commandparser.CommandManager;
import com.dmdirc.commandparser.CommandType;
import com.dmdirc.commandparser.parsers.GlobalCommandParser;
import com.dmdirc.config.IdentityManager;
import com.dmdirc.ui.WindowManager;
import com.dmdirc.ui.input.TabCompleter;
import com.dmdirc.ui.input.TabCompletionType;
import com.dmdirc.ui.interfaces.InputWindow;

/**
 * A window which can be used to execute global commands.
 *
 * @author chris
 */
public class GlobalWindow extends WritableFrameContainer {
    //#GlobalWindow.java:40: method: Window com.dmdirc.GlobalWindow.getFrame()
    //#input(Window getFrame()): __Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(Window getFrame()): __Descendant_Table[others]
    //#input(Window getFrame()): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/InputWindow;
    //#input(Window getFrame()): this
    //#input(Window getFrame()): this.__Tag
    //#input(Window getFrame()): this.window
    //#output(Window getFrame()): return_value
    //#pre[2] (Window getFrame()): this.__Tag == com/dmdirc/GlobalWindow
    //#post(Window getFrame()): return_value == this.window
    //#post(Window getFrame()): init'ed(return_value)
    //#GlobalWindow.java:40: end of method: Window com.dmdirc.GlobalWindow.getFrame()

    /** The window we're using. */
    private final InputWindow window;

    /** The global window that's in use, if any. */
    private static GlobalWindow globalWindow;

    /** The tab completer we use. */
    private final TabCompleter tabCompleter;

    /** Creates a new instance of GlobalWindow. */
    public GlobalWindow() {
        super("icon", IdentityManager.getGlobalConfig());
    //#GlobalWindow.java:53: method: void com.dmdirc.GlobalWindow.com.dmdirc.GlobalWindow()
    //#GlobalWindow.java:53: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#GlobalWindow.java:53: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    suspicious precondition index: [3]
    //#    Attribs:  Soft
    //#input(void com.dmdirc.GlobalWindow()): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com.dmdirc.commandparser.CommandType.TYPE_GLOBAL
    //#input(void com.dmdirc.GlobalWindow()): com.dmdirc.ui.input.TabCompletionType.COMMAND
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/Main.controller
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/Query.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/actions/wrappers/AliasWrapper.__Class_Obj.__Lock
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/actions/wrappers/AliasWrapper.me
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/actions/wrappers/AliasWrapper.me.aliases
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.GlobalWindow()): this
    //#input(void com.dmdirc.GlobalWindow()): this.__Tag
    //#output(void com.dmdirc.GlobalWindow()): com/dmdirc/actions/wrappers/AliasWrapper.me
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1) num objects
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).__Tag
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).actions
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).aliases
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).author
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).component
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).description
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).name
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).settings
    //#output(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).version
    //#output(void com.dmdirc.GlobalWindow()): new ArrayList(ActionGroup#1) num objects
    //#output(void com.dmdirc.GlobalWindow()): new ArrayList(AliasWrapper#1) num objects
    //#output(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2) num objects
    //#output(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2).__Tag
    //#output(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2).this$0
    //#output(void com.dmdirc.GlobalWindow()): new HashMap(ActionGroup#2) num objects
    //#output(void com.dmdirc.GlobalWindow()): new ListenerList(FrameContainer#1) num objects
    //#output(void com.dmdirc.GlobalWindow()): new ListenerList(FrameContainer#1).__Lock
    //#output(void com.dmdirc.GlobalWindow()): new TabCompleter(GlobalWindow#1) num objects
    //#output(void com.dmdirc.GlobalWindow()): this.__Tag
    //#output(void com.dmdirc.GlobalWindow()): this.changer
    //#output(void com.dmdirc.GlobalWindow()): this.config
    //#output(void com.dmdirc.GlobalWindow()): this.icon
    //#output(void com.dmdirc.GlobalWindow()): this.listeners
    //#output(void com.dmdirc.GlobalWindow()): this.notification
    //#output(void com.dmdirc.GlobalWindow()): this.tabCompleter
    //#output(void com.dmdirc.GlobalWindow()): this.window
    //#new obj(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1)
    //#new obj(void com.dmdirc.GlobalWindow()): new ArrayList(ActionGroup#1)
    //#new obj(void com.dmdirc.GlobalWindow()): new ArrayList(AliasWrapper#1)
    //#new obj(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2)
    //#new obj(void com.dmdirc.GlobalWindow()): new HashMap(ActionGroup#2)
    //#new obj(void com.dmdirc.GlobalWindow()): new ListenerList(FrameContainer#1)
    //#new obj(void com.dmdirc.GlobalWindow()): new TabCompleter(GlobalWindow#1)
    //#pre[1] (void com.dmdirc.GlobalWindow()): com/dmdirc/Main.controller != null
    //#pre[2] (void com.dmdirc.GlobalWindow()): init'ed(com/dmdirc/actions/wrappers/AliasWrapper.me)
    //#pre[3] (void com.dmdirc.GlobalWindow()): (soft) this.__Tag in {com/dmdirc/Channel, com/dmdirc/CustomWindow, com/dmdirc/FrameContainer, com/dmdirc/GlobalWindow, com/dmdirc/MessageTarget, com/dmdirc/Query, com/dmdirc/Raw, com/dmdirc/Server, com/dmdirc/WritableFrameContainer, com/dmdirc/addons/dcc/DCCChatWindow, com/dmdirc/addons/dcc/DCCFrame, com/dmdirc/addons/dcc/DCCPlugin$3, com/dmdirc/addons/dcc/DCCSendWindow}
    //#presumption(void com.dmdirc.GlobalWindow()): init'ed(com.dmdirc.commandparser.CommandType.TYPE_GLOBAL)
    //#presumption(void com.dmdirc.GlobalWindow()): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@53 != null
    //#presumption(void com.dmdirc.GlobalWindow()): init'ed(com.dmdirc.ui.input.TabCompletionType.COMMAND)
    //#presumption(void com.dmdirc.GlobalWindow()): com.dmdirc.ui.interfaces.InputWindow:getInputHandler(...)@64 != null
    //#presumption(void com.dmdirc.GlobalWindow()): com.dmdirc.ui.interfaces.UIController:getInputWindow(...)@61 != null
    //#presumption(void com.dmdirc.GlobalWindow()): init'ed(com/dmdirc/FrameContainer.java.awt.Color.BLACK)
    //#post(void com.dmdirc.GlobalWindow()): com/dmdirc/actions/wrappers/AliasWrapper.me == One-of{old com/dmdirc/actions/wrappers/AliasWrapper.me, &new AliasWrapper(getAliasWrapper#1)}
    //#post(void com.dmdirc.GlobalWindow()): com/dmdirc/actions/wrappers/AliasWrapper.me != null
    //#post(void com.dmdirc.GlobalWindow()): this.__Tag == old this.__Tag
    //#post(void com.dmdirc.GlobalWindow()): this.__Tag in {com/dmdirc/Channel, com/dmdirc/CustomWindow, com/dmdirc/FrameContainer, com/dmdirc/GlobalWindow, com/dmdirc/MessageTarget, com/dmdirc/Query, com/dmdirc/Raw, com/dmdirc/Server, com/dmdirc/WritableFrameContainer, com/dmdirc/addons/dcc/DCCChatWindow, com/dmdirc/addons/dcc/DCCFrame, com/dmdirc/addons/dcc/DCCPlugin$3, com/dmdirc/addons/dcc/DCCSendWindow}
    //#post(void com.dmdirc.GlobalWindow()): this.changer == &new FrameContainer$IconChanger(FrameContainer#2)
    //#post(void com.dmdirc.GlobalWindow()): this.config != null
    //#post(void com.dmdirc.GlobalWindow()): this.icon == &"icon"
    //#post(void com.dmdirc.GlobalWindow()): this.listeners == &new ListenerList(FrameContainer#1)
    //#post(void com.dmdirc.GlobalWindow()): this.notification == com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#post(void com.dmdirc.GlobalWindow()): init'ed(this.notification)
    //#post(void com.dmdirc.GlobalWindow()): this.tabCompleter == &new TabCompleter(GlobalWindow#1)
    //#post(void com.dmdirc.GlobalWindow()): this.window != null
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1) num objects <= 1
    //#post(void com.dmdirc.GlobalWindow()): new ArrayList(ActionGroup#1) num objects == new AliasWrapper(getAliasWrapper#1) num objects
    //#post(void com.dmdirc.GlobalWindow()): new ArrayList(AliasWrapper#1) num objects == new AliasWrapper(getAliasWrapper#1) num objects
    //#post(void com.dmdirc.GlobalWindow()): new HashMap(ActionGroup#2) num objects == new AliasWrapper(getAliasWrapper#1) num objects
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).__Tag == com/dmdirc/actions/wrappers/AliasWrapper
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).actions == &new ArrayList(ActionGroup#1)
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).aliases == &new ArrayList(AliasWrapper#1)
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).author == null
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).description == null
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).component == -1
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).version == -1
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).name == &"aliases"
    //#post(void com.dmdirc.GlobalWindow()): new AliasWrapper(getAliasWrapper#1).settings == &new HashMap(ActionGroup#2)
    //#post(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2) num objects == 1
    //#post(void com.dmdirc.GlobalWindow()): new ListenerList(FrameContainer#1) num objects == 1
    //#post(void com.dmdirc.GlobalWindow()): new TabCompleter(GlobalWindow#1) num objects == 1
    //#post(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2).__Tag == com/dmdirc/FrameContainer$IconChanger
    //#post(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2).this$0 == this
    //#post(void com.dmdirc.GlobalWindow()): new FrameContainer$IconChanger(FrameContainer#2).this$0 != null
    //#post(void com.dmdirc.GlobalWindow()): init'ed(new ListenerList(FrameContainer#1).__Lock)
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.actions.ActionGroup
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.FrameContainer
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:getFrame
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.interfaces.IconChangeListener:iconChanged
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.config.ConfigManager:removeListener
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void com.dmdirc.GlobalWindow()): Effects-of-calling:com.dmdirc.util.ListenerList

        tabCompleter = new TabCompleter();
    //#GlobalWindow.java:55: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter()
        tabCompleter.addEntries(TabCompletionType.COMMAND,
    //#GlobalWindow.java:56: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.commandparser.CommandManager:getCommandNames(CommandType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: List com.dmdirc.commandparser.CommandManager:getCommandNames(CommandType)
    //#GlobalWindow.java:56: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
                CommandManager.getCommandNames(CommandType.TYPE_GLOBAL));
        tabCompleter.addEntries(TabCompletionType.COMMAND,
    //#GlobalWindow.java:58: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
                AliasWrapper.getAliasWrapper().getAliases());

        window = Main.getUI().getInputWindow(this, GlobalCommandParser.getGlobalCommandParser());
    //#GlobalWindow.java:61: Warning: method not available - call not analyzed
    //#    call on GlobalCommandParser com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: GlobalCommandParser com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser()
    //#GlobalWindow.java:61: Warning: method not available - call not analyzed
    //#    call on InputWindow com.dmdirc.ui.interfaces.UIController:getInputWindow(WritableFrameContainer, CommandParser)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: InputWindow com.dmdirc.ui.interfaces.UIController:getInputWindow(WritableFrameContainer, CommandParser)

        window.setTitle("(Global)");
    //#GlobalWindow.java:63: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.InputWindow:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.InputWindow:setTitle(String)
        window.getInputHandler().setTabCompleter(tabCompleter);
    //#GlobalWindow.java:64: Warning: method not available - call not analyzed
    //#    call on InputHandler com.dmdirc.ui.interfaces.InputWindow:getInputHandler()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: InputHandler com.dmdirc.ui.interfaces.InputWindow:getInputHandler()
    //#GlobalWindow.java:64: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.InputHandler:setTabCompleter(TabCompleter)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.input.InputHandler:setTabCompleter(TabCompleter)

        WindowManager.addWindow(window);
    //#GlobalWindow.java:66: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.WindowManager:addWindow(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.WindowManager:addWindow(Window)

        window.open();
    //#GlobalWindow.java:68: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.InputWindow:open()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void com.dmdirc.GlobalWindow()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.InputWindow:open()
    }
    //#GlobalWindow.java:69: end of method: void com.dmdirc.GlobalWindow.com.dmdirc.GlobalWindow()

    /** {@inheritDoc} */
    @Override
    public InputWindow getFrame() {
        return window;
    //#GlobalWindow.java:74: method: InputWindow com.dmdirc.GlobalWindow.getFrame()
    //#input(InputWindow getFrame()): this
    //#input(InputWindow getFrame()): this.window
    //#output(InputWindow getFrame()): return_value
    //#post(InputWindow getFrame()): return_value == this.window
    //#post(InputWindow getFrame()): init'ed(return_value)
    //#GlobalWindow.java:74: end of method: InputWindow com.dmdirc.GlobalWindow.getFrame()
    }

    /** {@inheritDoc} */
    @Override
    public String toString() {
        return "Global";
    //#GlobalWindow.java:80: method: String com.dmdirc.GlobalWindow.toString()
    //#output(String toString()): return_value
    //#post(String toString()): return_value == &"Global"
    //#GlobalWindow.java:80: end of method: String com.dmdirc.GlobalWindow.toString()
    }

    /** {@inheritDoc} */
    @Override
    public void windowClosing() {
        // 1: Make the window non-visible
        window.setVisible(false);
    //#GlobalWindow.java:87: method: void com.dmdirc.GlobalWindow.windowClosing()
    //#GlobalWindow.java:87: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.InputWindow:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.InputWindow:setVisible(bool)
    //#input(void windowClosing()): this
    //#input(void windowClosing()): this.window
    //#pre[2] (void windowClosing()): this.window != null

        // 2: Remove any callbacks or listeners
        // 3: Trigger any actions neccessary
        // 4: Trigger action for the window closing
        // 5: Inform any parents that the window is closing

        // 6: Remove the window from the window manager
        WindowManager.removeWindow(window);
    //#GlobalWindow.java:95: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.WindowManager:removeWindow(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.ui.WindowManager:removeWindow(Window)

        // 7: Remove any references to the window and parents
    }
    //#GlobalWindow.java:98: end of method: void com.dmdirc.GlobalWindow.windowClosing()

    /** {@inheritDoc} */
    @Override
    public Server getServer() {
        return null;
    //#GlobalWindow.java:103: method: Server com.dmdirc.GlobalWindow.getServer()
    //#output(Server getServer()): return_value
    //#post(Server getServer()): return_value == null
    //#GlobalWindow.java:103: end of method: Server com.dmdirc.GlobalWindow.getServer()
    }

    /** {@inheritDoc} */
    @Override
    public void sendLine(final String line) {
        GlobalCommandParser.getGlobalCommandParser().parseCommand(window,
    //#GlobalWindow.java:109: method: void com.dmdirc.GlobalWindow.sendLine(String)
    //#GlobalWindow.java:109: Warning: method not available - call not analyzed
    //#    call on GlobalCommandParser com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void sendLine(String)
    //#    unanalyzed callee: GlobalCommandParser com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser()
    //#GlobalWindow.java:109: Warning: method not available - call not analyzed
    //#    call on char com.dmdirc.commandparser.CommandManager:getCommandChar()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void sendLine(String)
    //#    unanalyzed callee: char com.dmdirc.commandparser.CommandManager:getCommandChar()
    //#GlobalWindow.java:109: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.commandparser.parsers.GlobalCommandParser:parseCommand(InputWindow, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void sendLine(String)
    //#    unanalyzed callee: void com.dmdirc.commandparser.parsers.GlobalCommandParser:parseCommand(InputWindow, String)
    //#input(void sendLine(String)): line
    //#input(void sendLine(String)): line._tainted
    //#input(void sendLine(String)): this
    //#input(void sendLine(String)): this.window
    //#presumption(void sendLine(String)): com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser(...)@109 != null
                CommandManager.getCommandChar() + line);
    }
    //#GlobalWindow.java:111: end of method: void com.dmdirc.GlobalWindow.sendLine(String)

    /** {@inheritDoc} */
    @Override
    public int getMaxLineLength() {
        return -1;
    //#GlobalWindow.java:116: method: int com.dmdirc.GlobalWindow.getMaxLineLength()
    //#output(int getMaxLineLength()): return_value
    //#post(int getMaxLineLength()): return_value == -1
    //#GlobalWindow.java:116: end of method: int com.dmdirc.GlobalWindow.getMaxLineLength()
    }

    /**
     * Retrieves the tab completer used by this global window.
     *
     * @return This global window's tab completer.
     */
    public TabCompleter getTabCompleter() {
        return tabCompleter;
    //#GlobalWindow.java:125: method: TabCompleter com.dmdirc.GlobalWindow.getTabCompleter()
    //#input(TabCompleter getTabCompleter()): this
    //#input(TabCompleter getTabCompleter()): this.tabCompleter
    //#output(TabCompleter getTabCompleter()): return_value
    //#post(TabCompleter getTabCompleter()): return_value == this.tabCompleter
    //#post(TabCompleter getTabCompleter()): init'ed(return_value)
    //#GlobalWindow.java:125: end of method: TabCompleter com.dmdirc.GlobalWindow.getTabCompleter()
    }
    
    /**
     * Initialises the global window if it's enabled in the config.
     */
    public static void init() {
        if (IdentityManager.getGlobalConfig().getOptionBool("general", "showglobalwindow")) {
    //#GlobalWindow.java:132: method: void com.dmdirc.GlobalWindow.init()
    //#GlobalWindow.java:132: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void init()
    //#    unanalyzed callee: ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#GlobalWindow.java:132: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.GlobalWindow
    //#    method: void init()
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#input(void init()): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com.dmdirc.commandparser.CommandType.TYPE_GLOBAL
    //#input(void init()): com.dmdirc.ui.input.TabCompletionType.COMMAND
    //#input(void init()): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void init()): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void init()): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#input(void init()): com/dmdirc/Main.controller
    //#input(void init()): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/Query.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/actions/wrappers/AliasWrapper.__Class_Obj.__Lock
    //#input(void init()): com/dmdirc/actions/wrappers/AliasWrapper.me
    //#input(void init()): com/dmdirc/actions/wrappers/AliasWrapper.me.aliases
    //#input(void init()): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void init()): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#output(void init()): com/dmdirc/actions/wrappers/AliasWrapper.me
    //#output(void init()): globalWindow
    //#output(void init()): new AliasWrapper(getAliasWrapper#1) num objects
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).__Tag
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).actions
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).aliases
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).author
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).component
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).description
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).name
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).settings
    //#output(void init()): new AliasWrapper(getAliasWrapper#1).version
    //#output(void init()): new ArrayList(ActionGroup#1) num objects
    //#output(void init()): new ArrayList(AliasWrapper#1) num objects
    //#output(void init()): new FrameContainer$IconChanger(FrameContainer#2) num objects
    //#output(void init()): new FrameContainer$IconChanger(FrameContainer#2).__Tag
    //#output(void init()): new FrameContainer$IconChanger(FrameContainer#2).this$0
    //#output(void init()): new GlobalWindow(init#1) num objects
    //#output(void init()): new GlobalWindow(init#1).__Tag
    //#output(void init()): new GlobalWindow(init#1).changer
    //#output(void init()): new GlobalWindow(init#1).config
    //#output(void init()): new GlobalWindow(init#1).icon
    //#output(void init()): new GlobalWindow(init#1).listeners
    //#output(void init()): new GlobalWindow(init#1).notification
    //#output(void init()): new GlobalWindow(init#1).tabCompleter
    //#output(void init()): new GlobalWindow(init#1).window
    //#output(void init()): new HashMap(ActionGroup#2) num objects
    //#output(void init()): new ListenerList(FrameContainer#1) num objects
    //#output(void init()): new ListenerList(FrameContainer#1).__Lock
    //#output(void init()): new TabCompleter(GlobalWindow#1) num objects
    //#new obj(void init()): new AliasWrapper(getAliasWrapper#1)
    //#new obj(void init()): new ArrayList(ActionGroup#1)
    //#new obj(void init()): new ArrayList(AliasWrapper#1)
    //#new obj(void init()): new FrameContainer$IconChanger(FrameContainer#2)
    //#new obj(void init()): new GlobalWindow(init#1)
    //#new obj(void init()): new HashMap(ActionGroup#2)
    //#new obj(void init()): new ListenerList(FrameContainer#1)
    //#new obj(void init()): new TabCompleter(GlobalWindow#1)
    //#pre[1] (void init()): (soft) com/dmdirc/Main.controller != null
    //#pre[3] (void init()): (soft) init'ed(com/dmdirc/actions/wrappers/AliasWrapper.me)
    //#presumption(void init()): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@132 != null
    //#post(void init()): com/dmdirc/actions/wrappers/AliasWrapper.me == One-of{old com/dmdirc/actions/wrappers/AliasWrapper.me, &new AliasWrapper(getAliasWrapper#1)}
    //#post(void init()): init'ed(com/dmdirc/actions/wrappers/AliasWrapper.me)
    //#post(void init()): globalWindow == One-of{old globalWindow, &new GlobalWindow(init#1)}
    //#post(void init()): new AliasWrapper(getAliasWrapper#1) num objects <= 1
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).__Tag)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).actions)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).aliases)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).author)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).component)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).description)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).name)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).settings)
    //#post(void init()): init'ed(new AliasWrapper(getAliasWrapper#1).version)
    //#post(void init()): new ArrayList(ActionGroup#1) num objects <= 1
    //#post(void init()): new ArrayList(AliasWrapper#1) num objects <= 1
    //#post(void init()): new FrameContainer$IconChanger(FrameContainer#2) num objects <= 1
    //#post(void init()): init'ed(new FrameContainer$IconChanger(FrameContainer#2).__Tag)
    //#post(void init()): init'ed(new FrameContainer$IconChanger(FrameContainer#2).this$0)
    //#post(void init()): new GlobalWindow(init#1) num objects <= 1
    //#post(void init()): init'ed(new GlobalWindow(init#1).__Tag)
    //#post(void init()): init'ed(new GlobalWindow(init#1).changer)
    //#post(void init()): init'ed(new GlobalWindow(init#1).config)
    //#post(void init()): init'ed(new GlobalWindow(init#1).icon)
    //#post(void init()): init'ed(new GlobalWindow(init#1).listeners)
    //#post(void init()): init'ed(new GlobalWindow(init#1).notification)
    //#post(void init()): init'ed(new GlobalWindow(init#1).tabCompleter)
    //#post(void init()): init'ed(new GlobalWindow(init#1).window)
    //#post(void init()): new HashMap(ActionGroup#2) num objects <= 1
    //#post(void init()): new ListenerList(FrameContainer#1) num objects <= 1
    //#post(void init()): init'ed(new ListenerList(FrameContainer#1).__Lock)
    //#post(void init()): new TabCompleter(GlobalWindow#1) num objects <= 1
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.WritableFrameContainer
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.input.TabCompleter
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.commandparser.CommandManager:getCommandNames
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:addEntries
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.actions.ActionGroup
    //#unanalyzed(void init()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void init()): Effects-of-calling:getUI
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getInputWindow
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:setTitle
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getInputHandler
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.input.InputHandler:setTabCompleter
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.WindowManager:addWindow
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:open
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.FrameContainer
    //#unanalyzed(void init()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void init()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void init()): Effects-of-calling:getFrame
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void init()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void init()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void init()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.interfaces.IconChangeListener:iconChanged
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.config.ConfigManager:removeListener
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void init()): Effects-of-calling:com.dmdirc.util.ListenerList
    //#test_vector(void init()): com.dmdirc.config.ConfigManager:getOptionBool(...)@132: {0}, {1}
            globalWindow = new GlobalWindow();
        }        
    }
    //#GlobalWindow.java:135: end of method: void com.dmdirc.GlobalWindow.init()

    /**
     * Retrieves the global window if it has been previously opened by
     * {@link #init()}.
     *
     * @return A Global Window instance or null
     */
    public static GlobalWindow getGlobalWindow() {
        return globalWindow;
    //#GlobalWindow.java:144: method: GlobalWindow com.dmdirc.GlobalWindow.getGlobalWindow()
    //#input(GlobalWindow getGlobalWindow()): globalWindow
    //#output(GlobalWindow getGlobalWindow()): return_value
    //#pre[1] (GlobalWindow getGlobalWindow()): init'ed(globalWindow)
    //#post(GlobalWindow getGlobalWindow()): return_value == globalWindow
    //#post(GlobalWindow getGlobalWindow()): init'ed(return_value)
    //#GlobalWindow.java:144: end of method: GlobalWindow com.dmdirc.GlobalWindow.getGlobalWindow()
    }

}
    //#output(com.dmdirc.GlobalWindow__static_init): __Descendant_Table[com/dmdirc/GlobalWindow]
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.activateFrame()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.clearNotification()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.close()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.despatchNotification(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.doNotification(Ljava/lang/String;Lcom/dmdirc/actions/interfaces/ActionType;[Ljava/lang/Object;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/InputWindow;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getIcon()Ljavax/swing/Icon;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getMaxLineLength()I
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getNotification()Ljava/awt/Color;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getNumLines(Ljava/lang/String;)I
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.handleNotification(Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.iconUpdated()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.modifyNotificationArgs(Ljava/util/List;Ljava/util/List;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.ownsFrame(Lcom/dmdirc/ui/interfaces/Window;)Z
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.processNotificationArg(Ljava/lang/Object;Ljava/util/List;)Z
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.removeIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.removeNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.removeSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.sendLine(Ljava/lang/String;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.sendNotification(Ljava/awt/Color;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.setIcon(Ljava/lang/String;)V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowActivated()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowClosed()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowClosing()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowDeactivated()V
    //#output(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowOpened()V
    //#output(com.dmdirc.GlobalWindow__static_init): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#output(com.dmdirc.GlobalWindow__static_init): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#post(com.dmdirc.GlobalWindow__static_init): __Descendant_Table[com/dmdirc/GlobalWindow] == &__Dispatch_Table
    //#post(com.dmdirc.GlobalWindow__static_init): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow] == &__Dispatch_Table
    //#post(com.dmdirc.GlobalWindow__static_init): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow] == &__Dispatch_Table
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.activateFrame()V == &com/dmdirc/FrameContainer.activateFrame
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V == &com/dmdirc/FrameContainer.addIconChangeListener
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/FrameContainer.addLine
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V == &com/dmdirc/FrameContainer.addLine
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V == &com/dmdirc/FrameContainer.addNotificationListener
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.addSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V == &com/dmdirc/FrameContainer.addSelectionListener
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.clearNotification()V == &com/dmdirc/FrameContainer.clearNotification
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.close()V == &com/dmdirc/FrameContainer.close
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.despatchNotification(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/WritableFrameContainer.despatchNotification
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.doNotification(Ljava/lang/String;Lcom/dmdirc/actions/interfaces/ActionType;[Ljava/lang/Object;)V == &com/dmdirc/WritableFrameContainer.doNotification
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager; == &com/dmdirc/FrameContainer.getConfigManager
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/InputWindow; == &getFrame
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window; == &getFrame
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getIcon()Ljavax/swing/Icon; == &com/dmdirc/FrameContainer.getIcon
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getMaxLineLength()I == &getMaxLineLength
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getNotification()Ljava/awt/Color; == &com/dmdirc/FrameContainer.getNotification
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getNumLines(Ljava/lang/String;)I == &com/dmdirc/WritableFrameContainer.getNumLines
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server; == &getServer
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter; == &getTabCompleter
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.handleNotification(Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/WritableFrameContainer.handleNotification
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.iconUpdated()V == &com/dmdirc/FrameContainer.iconUpdated
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.modifyNotificationArgs(Ljava/util/List;Ljava/util/List;)V == &com/dmdirc/WritableFrameContainer.modifyNotificationArgs
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.ownsFrame(Lcom/dmdirc/ui/interfaces/Window;)Z == &com/dmdirc/FrameContainer.ownsFrame
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.processNotificationArg(Ljava/lang/Object;Ljava/util/List;)Z == &com/dmdirc/WritableFrameContainer.processNotificationArg
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.removeIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V == &com/dmdirc/FrameContainer.removeIconChangeListener
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.removeNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V == &com/dmdirc/FrameContainer.removeNotificationListener
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.removeSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V == &com/dmdirc/FrameContainer.removeSelectionListener
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.sendLine(Ljava/lang/String;)V == &sendLine
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.sendNotification(Ljava/awt/Color;)V == &com/dmdirc/FrameContainer.sendNotification
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.setIcon(Ljava/lang/String;)V == &com/dmdirc/FrameContainer.setIcon
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List; == &com/dmdirc/WritableFrameContainer.splitLine
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowActivated()V == &com/dmdirc/FrameContainer.windowActivated
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowClosed()V == &com/dmdirc/FrameContainer.windowClosed
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowClosing()V == &windowClosing
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowDeactivated()V == &com/dmdirc/FrameContainer.windowDeactivated
    //#post(com.dmdirc.GlobalWindow__static_init): __Dispatch_Table.windowOpened()V == &com/dmdirc/FrameContainer.windowOpened
    //#GlobalWindow.java:: end of method: com.dmdirc.GlobalWindow.com.dmdirc.GlobalWindow__static_init
    //#GlobalWindow.java:: end of class: com.dmdirc.GlobalWindow
