//# 0 errors, 333 messages
//#
/*
    //#CustomWindow.java:1:1: class: com.dmdirc.CustomWindow
    //#CustomWindow.java:1:1: method: com.dmdirc.CustomWindow.com.dmdirc.CustomWindow__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.config.IdentityManager;
import com.dmdirc.ui.WindowManager;
import com.dmdirc.ui.interfaces.Window;

/**
 * A generic custom window implementation.
 *
 * @author chris
 */
public class CustomWindow extends FrameContainer {

    /** This custom window's name. */
    private final String name;

    /** This custom window's title. */
    private final String title;

    /** The window used by this container. */
    private Window window;

    /** This window's parent window. */
    private Window parent;

    /**
     * Creates a new custom window as a child of the specified window.
     *
     * @param name The name of this custom window
     * @param title The title of this custom window
     * @param parent The parent of this custom window
     */
    public CustomWindow(final String name, final String title,
            final Window parent) {
        super("custom", parent.getConfigManager());
    //#CustomWindow.java:57: method: void com.dmdirc.CustomWindow.com.dmdirc.CustomWindow(String, String, Window)
    //#CustomWindow.java:57: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.ui.interfaces.Window:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String, Window)
    //#    unanalyzed callee: ConfigManager com.dmdirc.ui.interfaces.Window:getConfigManager()
    //#CustomWindow.java:57: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String, Window)
    //#    suspicious precondition index: [3]
    //#    Attribs:  Soft
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/Main.controller
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/Query.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): name
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): parent
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): this
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): this.__Tag
    //#input(void com.dmdirc.CustomWindow(String, String, Window)): title
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2) num objects
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2).__Tag
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2).this$0
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): new ListenerList(FrameContainer#1) num objects
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): new ListenerList(FrameContainer#1).__Lock
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.__Tag
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.changer
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.config
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.icon
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.listeners
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.name
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.notification
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.parent
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.title
    //#output(void com.dmdirc.CustomWindow(String, String, Window)): this.window
    //#new obj(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2)
    //#new obj(void com.dmdirc.CustomWindow(String, String, Window)): new ListenerList(FrameContainer#1)
    //#pre[1] (void com.dmdirc.CustomWindow(String, String, Window)): com/dmdirc/Main.controller != null
    //#pre[4] (void com.dmdirc.CustomWindow(String, String, Window)): parent != null
    //#pre[3] (void com.dmdirc.CustomWindow(String, String, Window)): (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.CustomWindow(String, String, Window)): com.dmdirc.ui.interfaces.UIController:getWindow(...)@63 != null
    //#presumption(void com.dmdirc.CustomWindow(String, String, Window)): com.dmdirc.ui.interfaces.Window:getConfigManager(...)@57 != null
    //#presumption(void com.dmdirc.CustomWindow(String, String, Window)): init'ed(com/dmdirc/FrameContainer.java.awt.Color.BLACK)
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.__Tag == old this.__Tag
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): 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.CustomWindow(String, String, Window)): this.changer == &new FrameContainer$IconChanger(FrameContainer#2)
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.config != null
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.icon == &"custom"
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.listeners == &new ListenerList(FrameContainer#1)
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.name == name
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): init'ed(this.name)
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.notification == com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): init'ed(this.notification)
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.parent == parent
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.parent != null
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.title == title
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): init'ed(this.title)
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): this.window != null
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2) num objects == 1
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): new ListenerList(FrameContainer#1) num objects == 1
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2).__Tag == com/dmdirc/FrameContainer$IconChanger
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2).this$0 == this
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): new FrameContainer$IconChanger(FrameContainer#2).this$0 != null
    //#post(void com.dmdirc.CustomWindow(String, String, Window)): init'ed(new ListenerList(FrameContainer#1).__Lock)
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:getFrame
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.interfaces.IconChangeListener:iconChanged
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.config.ConfigManager:removeListener
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String, Window)): Effects-of-calling:com.dmdirc.util.ListenerList

        this.name = name;
        this.title = title;
        this.parent = parent;

        window = Main.getUI().getWindow(this);
    //#CustomWindow.java:63: Warning: method not available - call not analyzed
    //#    call on Window com.dmdirc.ui.interfaces.UIController:getWindow(FrameContainer)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String, Window)
    //#    unanalyzed callee: Window com.dmdirc.ui.interfaces.UIController:getWindow(FrameContainer)
        window.setTitle(title);
    //#CustomWindow.java:64: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.Window:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String, Window)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.Window:setTitle(String)

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

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

    /**
     * Creates a new custom window as a top-level window.
     *
     * @param name The name of this custom window
     * @param title The parent of this custom window
     */
    public CustomWindow(final String name, final String title) {
        super("custom", IdentityManager.getGlobalConfig());
    //#CustomWindow.java:78: method: void com.dmdirc.CustomWindow.com.dmdirc.CustomWindow(String, String)
    //#CustomWindow.java:78: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String)
    //#    unanalyzed callee: ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#CustomWindow.java:78: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String)
    //#    suspicious precondition index: [3]
    //#    Attribs:  Soft
    //#input(void com.dmdirc.CustomWindow(String, String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/Main.controller
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/Query.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.CustomWindow(String, String)): name
    //#input(void com.dmdirc.CustomWindow(String, String)): this
    //#input(void com.dmdirc.CustomWindow(String, String)): this.__Tag
    //#input(void com.dmdirc.CustomWindow(String, String)): title
    //#output(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2) num objects
    //#output(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2).__Tag
    //#output(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2).this$0
    //#output(void com.dmdirc.CustomWindow(String, String)): new ListenerList(FrameContainer#1) num objects
    //#output(void com.dmdirc.CustomWindow(String, String)): new ListenerList(FrameContainer#1).__Lock
    //#output(void com.dmdirc.CustomWindow(String, String)): this.__Tag
    //#output(void com.dmdirc.CustomWindow(String, String)): this.changer
    //#output(void com.dmdirc.CustomWindow(String, String)): this.config
    //#output(void com.dmdirc.CustomWindow(String, String)): this.icon
    //#output(void com.dmdirc.CustomWindow(String, String)): this.listeners
    //#output(void com.dmdirc.CustomWindow(String, String)): this.name
    //#output(void com.dmdirc.CustomWindow(String, String)): this.notification
    //#output(void com.dmdirc.CustomWindow(String, String)): this.title
    //#output(void com.dmdirc.CustomWindow(String, String)): this.window
    //#new obj(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2)
    //#new obj(void com.dmdirc.CustomWindow(String, String)): new ListenerList(FrameContainer#1)
    //#pre[1] (void com.dmdirc.CustomWindow(String, String)): com/dmdirc/Main.controller != null
    //#pre[3] (void com.dmdirc.CustomWindow(String, String)): (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.CustomWindow(String, String)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@78 != null
    //#presumption(void com.dmdirc.CustomWindow(String, String)): com.dmdirc.ui.interfaces.UIController:getWindow(...)@83 != null
    //#presumption(void com.dmdirc.CustomWindow(String, String)): init'ed(com/dmdirc/FrameContainer.java.awt.Color.BLACK)
    //#post(void com.dmdirc.CustomWindow(String, String)): this.__Tag == old this.__Tag
    //#post(void com.dmdirc.CustomWindow(String, String)): 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.CustomWindow(String, String)): this.changer == &new FrameContainer$IconChanger(FrameContainer#2)
    //#post(void com.dmdirc.CustomWindow(String, String)): this.config != null
    //#post(void com.dmdirc.CustomWindow(String, String)): this.icon == &"custom"
    //#post(void com.dmdirc.CustomWindow(String, String)): this.listeners == &new ListenerList(FrameContainer#1)
    //#post(void com.dmdirc.CustomWindow(String, String)): this.name == name
    //#post(void com.dmdirc.CustomWindow(String, String)): init'ed(this.name)
    //#post(void com.dmdirc.CustomWindow(String, String)): this.notification == com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#post(void com.dmdirc.CustomWindow(String, String)): init'ed(this.notification)
    //#post(void com.dmdirc.CustomWindow(String, String)): this.title == title
    //#post(void com.dmdirc.CustomWindow(String, String)): init'ed(this.title)
    //#post(void com.dmdirc.CustomWindow(String, String)): this.window != null
    //#post(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2) num objects == 1
    //#post(void com.dmdirc.CustomWindow(String, String)): new ListenerList(FrameContainer#1) num objects == 1
    //#post(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2).__Tag == com/dmdirc/FrameContainer$IconChanger
    //#post(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2).this$0 == this
    //#post(void com.dmdirc.CustomWindow(String, String)): new FrameContainer$IconChanger(FrameContainer#2).this$0 != null
    //#post(void com.dmdirc.CustomWindow(String, String)): init'ed(new ListenerList(FrameContainer#1).__Lock)
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:getFrame
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.interfaces.IconChangeListener:iconChanged
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:removeListener
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void com.dmdirc.CustomWindow(String, String)): Effects-of-calling:com.dmdirc.util.ListenerList

        this.name = name;
        this.title = title;

        window = Main.getUI().getWindow(this);
    //#CustomWindow.java:83: Warning: method not available - call not analyzed
    //#    call on Window com.dmdirc.ui.interfaces.UIController:getWindow(FrameContainer)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String)
    //#    unanalyzed callee: Window com.dmdirc.ui.interfaces.UIController:getWindow(FrameContainer)
        window.setTitle(title);
    //#CustomWindow.java:84: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.Window:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.Window:setTitle(String)

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

        window.open();
    //#CustomWindow.java:88: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.Window:open()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void com.dmdirc.CustomWindow(String, String)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.Window:open()
    }
    //#CustomWindow.java:89: end of method: void com.dmdirc.CustomWindow.com.dmdirc.CustomWindow(String, String)

    /** {@inheritDoc} */
    @Override
    public Window getFrame() {
        return window;
    //#CustomWindow.java:94: method: Window com.dmdirc.CustomWindow.getFrame()
    //#input(Window getFrame()): this
    //#input(Window getFrame()): this.window
    //#output(Window getFrame()): return_value
    //#pre[2] (Window getFrame()): init'ed(this.window)
    //#post(Window getFrame()): return_value == this.window
    //#post(Window getFrame()): init'ed(return_value)
    //#CustomWindow.java:94: end of method: Window com.dmdirc.CustomWindow.getFrame()
    }

    /** {@inheritDoc} */
    @Override
    public String toString() {
        return name;
    //#CustomWindow.java:100: method: String com.dmdirc.CustomWindow.toString()
    //#input(String toString()): this
    //#input(String toString()): this.name
    //#output(String toString()): return_value
    //#post(String toString()): return_value == this.name
    //#post(String toString()): init'ed(return_value)
    //#CustomWindow.java:100: end of method: String com.dmdirc.CustomWindow.toString()
    }

    /** {@inheritDoc} */
    @Override
    public void windowClosing() {
        // 1: Make the window non-visible
        window.setVisible(false);
    //#CustomWindow.java:107: method: void com.dmdirc.CustomWindow.windowClosing()
    //#CustomWindow.java:107: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.Window:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.Window:setVisible(bool)
    //#input(void windowClosing()): this
    //#input(void windowClosing()): this.window
    //#output(void windowClosing()): this.parent
    //#output(void windowClosing()): this.window
    //#pre[1] (void windowClosing()): this.window != null
    //#post(void windowClosing()): this.parent == null
    //#post(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);
    //#CustomWindow.java:115: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.WindowManager:removeWindow(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.ui.WindowManager:removeWindow(Window)

        // 7: Remove any references to the window and parents
        window = null; // NOPMD
        parent = null; // NOPMD
    }
    //#CustomWindow.java:120: end of method: void com.dmdirc.CustomWindow.windowClosing()

    /** {@inheritDoc} */
    @Override
    public Server getServer() {
        return parent == null ? null : parent.getContainer().getServer();
    //#CustomWindow.java:125: method: Server com.dmdirc.CustomWindow.getServer()
    //#CustomWindow.java:125: Warning: method not available - call not analyzed
    //#    call on FrameContainer com.dmdirc.ui.interfaces.Window:getContainer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: Server getServer()
    //#    unanalyzed callee: FrameContainer com.dmdirc.ui.interfaces.Window:getContainer()
    //#CustomWindow.java:125: Warning: call too complex - analysis skipped
    //#    call on Server getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.CustomWindow
    //#    method: Server getServer()
    //#    unanalyzed callee: Server getServer()
    //#input(Server getServer()): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/Channel.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(Server getServer()): com/dmdirc/FrameContainer.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/GlobalWindow.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/MessageTarget.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/Query.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/Raw.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/Server.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#input(Server getServer()): this
    //#input(Server getServer()): this.parent
    //#output(Server getServer()): return_value
    //#pre[2] (Server getServer()): init'ed(this.parent)
    //#presumption(Server getServer()): com.dmdirc.ui.interfaces.Window:getContainer(...).__Tag@125 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(Server getServer()): com.dmdirc.ui.interfaces.Window:getContainer(...)@125 != null
    //#post(Server getServer()): init'ed(return_value)
    //#CustomWindow.java:125: end of method: Server com.dmdirc.CustomWindow.getServer()
    }

    /**
     * Retrieves this custom window's name.
     *
     * @return This custom window's name
     */
    public String getName() {
        return name;
    //#CustomWindow.java:134: method: String com.dmdirc.CustomWindow.getName()
    //#input(String getName()): this
    //#input(String getName()): this.name
    //#output(String getName()): return_value
    //#post(String getName()): return_value == this.name
    //#post(String getName()): init'ed(return_value)
    //#CustomWindow.java:134: end of method: String com.dmdirc.CustomWindow.getName()
    }

    /**
     * Retrieves this custom window's title.
     *
     * @return This custom window's title
     */
    public String getTitle() {
        return title;
    //#CustomWindow.java:143: method: String com.dmdirc.CustomWindow.getTitle()
    //#input(String getTitle()): this
    //#input(String getTitle()): this.title
    //#output(String getTitle()): return_value
    //#post(String getTitle()): return_value == this.title
    //#post(String getTitle()): init'ed(return_value)
    //#CustomWindow.java:143: end of method: String com.dmdirc.CustomWindow.getTitle()
    }

}
    //#output(com.dmdirc.CustomWindow__static_init): __Descendant_Table[com/dmdirc/CustomWindow]
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.activateFrame()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.clearNotification()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.close()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getIcon()Ljavax/swing/Icon;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getNotification()Ljava/awt/Color;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getTitle()Ljava/lang/String;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.iconUpdated()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.ownsFrame(Lcom/dmdirc/ui/interfaces/Window;)Z
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.removeIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.removeNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.removeSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.sendNotification(Ljava/awt/Color;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.setIcon(Ljava/lang/String;)V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowActivated()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowClosed()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowClosing()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowDeactivated()V
    //#output(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowOpened()V
    //#output(com.dmdirc.CustomWindow__static_init): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#post(com.dmdirc.CustomWindow__static_init): __Descendant_Table[com/dmdirc/CustomWindow] == &__Dispatch_Table
    //#post(com.dmdirc.CustomWindow__static_init): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow] == &__Dispatch_Table
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.activateFrame()V == &com/dmdirc/FrameContainer.activateFrame
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V == &com/dmdirc/FrameContainer.addIconChangeListener
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/FrameContainer.addLine
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V == &com/dmdirc/FrameContainer.addLine
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V == &com/dmdirc/FrameContainer.addNotificationListener
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.addSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V == &com/dmdirc/FrameContainer.addSelectionListener
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.clearNotification()V == &com/dmdirc/FrameContainer.clearNotification
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.close()V == &com/dmdirc/FrameContainer.close
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager; == &com/dmdirc/FrameContainer.getConfigManager
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window; == &getFrame
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getIcon()Ljavax/swing/Icon; == &com/dmdirc/FrameContainer.getIcon
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getNotification()Ljava/awt/Color; == &com/dmdirc/FrameContainer.getNotification
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server; == &getServer
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.getTitle()Ljava/lang/String; == &getTitle
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.iconUpdated()V == &com/dmdirc/FrameContainer.iconUpdated
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.ownsFrame(Lcom/dmdirc/ui/interfaces/Window;)Z == &com/dmdirc/FrameContainer.ownsFrame
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.removeIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V == &com/dmdirc/FrameContainer.removeIconChangeListener
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.removeNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V == &com/dmdirc/FrameContainer.removeNotificationListener
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.removeSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V == &com/dmdirc/FrameContainer.removeSelectionListener
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.sendNotification(Ljava/awt/Color;)V == &com/dmdirc/FrameContainer.sendNotification
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.setIcon(Ljava/lang/String;)V == &com/dmdirc/FrameContainer.setIcon
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowActivated()V == &com/dmdirc/FrameContainer.windowActivated
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowClosed()V == &com/dmdirc/FrameContainer.windowClosed
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowClosing()V == &windowClosing
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowDeactivated()V == &com/dmdirc/FrameContainer.windowDeactivated
    //#post(com.dmdirc.CustomWindow__static_init): __Dispatch_Table.windowOpened()V == &com/dmdirc/FrameContainer.windowOpened
    //#CustomWindow.java:: end of method: com.dmdirc.CustomWindow.com.dmdirc.CustomWindow__static_init
    //#CustomWindow.java:: end of class: com.dmdirc.CustomWindow
