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

package com.dmdirc.addons.ui_swing;

import com.dmdirc.addons.ui_swing.components.MenuBar;
import com.dmdirc.actions.ActionManager;
import com.dmdirc.actions.CoreActionType;
import com.dmdirc.actions.interfaces.ActionType;
import com.dmdirc.config.IdentityManager;
import com.dmdirc.interfaces.ActionListener;
import com.dmdirc.util.IrcAddress;
import com.dmdirc.util.InvalidAddressException;

import com.dmdirc.logger.ErrorLevel;
import com.dmdirc.logger.Logger;

import java.awt.event.ActionEvent;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Field;
import java.lang.reflect.Proxy;
import java.lang.reflect.InvocationTargetException;

import javax.swing.UIManager;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

import java.util.ArrayList;

/**
 * Integrate DMDirc with OS X better.
 */
public final class Apple implements InvocationHandler, ActionListener {

    /**
     * Dummy interface for ApplicationEvent from the Apple UI on non-Apple platforms.
     * http://developer.apple.com/documentation/Java/Reference/1.5.0/appledoc/api/com/apple/eawt/ApplicationEvent.html
     */
    public interface ApplicationEvent {

        /**
         * Provides the filename associated with a particular AppleEvent.
         *
         * @return The filename associated with a particular AppleEvent.
         */
        String getFilename();

        /**
         * Whether or not this event is handled.
         *
         * @return True if the event is handled, false otherwise
         */
        boolean isHandled();

        /**
         * Sets the handled state of this event.
         *
         * @param handled The new 'handled' state for this event.
         */
        void setHandled(boolean handled);

        /**
         * Retrieves the source of this event.
         *
         * @return This event's source
         */
        Object getSource();

        /**
         * Get a string representation of this object.
         *
         * @return A string representation of this object.
         */
        @Override
        String toString();
    }

    /** The singleton instance of Apple. */
    private static Apple me;
    /** The "Application" object used to do stuff on OS X. */
    private static Object application;
    /** The "NSApplication" object used to do cocoa stuff on OS X. */
    private static Object nsApplication;
    /** Are we listening? */
    private boolean isListener = false;
    /** The MenuBar for the application. */
    private MenuBar menuBar = null;
    /** Has the CLIENT_OPENED action been called? */
    private volatile boolean clientOpened = false;
    /** Store any addresses that are opened before CLIENT_OPENED. */
    private volatile ArrayList<IrcAddress> addresses =
            new ArrayList<IrcAddress>();

    /**
     * Get the "Apple" instance.
     *
     * @return Apple instance.
     */
    public static Apple getApple() {
        if (me == null) {
    //#Apple.java:121: method: Apple com.dmdirc.addons.ui_swing.Apple.getApple()
    //#input(Apple getApple()): com.dmdirc.actions.CoreActionType.CLIENT_OPENED
    //#input(Apple getApple()): com.dmdirc.logger.ErrorLevel.MEDIUM
    //#input(Apple getApple()): me
    //#output(Apple getApple()): me
    //#output(Apple getApple()): new Apple(getApple#1) num objects
    //#output(Apple getApple()): new Apple(getApple#1).__Tag
    //#output(Apple getApple()): new Apple(getApple#1).addresses
    //#output(Apple getApple()): new Apple(getApple#1).clientOpened
    //#output(Apple getApple()): new Apple(getApple#1).isListener
    //#output(Apple getApple()): new Apple(getApple#1).menuBar
    //#output(Apple getApple()): new ArrayList(Apple#1) num objects
    //#output(Apple getApple()): return_value
    //#new obj(Apple getApple()): new Apple(getApple#1)
    //#new obj(Apple getApple()): new ArrayList(Apple#1)
    //#pre[1] (Apple getApple()): init'ed(me)
    //#post(Apple getApple()): me == One-of{old me, &new Apple(getApple#1)}
    //#post(Apple getApple()): me != null
    //#post(Apple getApple()): return_value == me
    //#post(Apple getApple()): new Apple(getApple#1) num objects <= 1
    //#post(Apple getApple()): new Apple(getApple#1).__Tag == com/dmdirc/addons/ui_swing/Apple
    //#post(Apple getApple()): new Apple(getApple#1).addresses == &new ArrayList(Apple#1)
    //#post(Apple getApple()): new Apple(getApple#1).clientOpened == 0
    //#post(Apple getApple()): new Apple(getApple#1).isListener == 0
    //#post(Apple getApple()): new Apple(getApple#1).menuBar == null
    //#post(Apple getApple()): new ArrayList(Apple#1) num objects <= 1
    //#unanalyzed(Apple getApple()): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(Apple getApple()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Apple getApple()): Effects-of-calling:java.lang.System:loadLibrary
    //#unanalyzed(Apple getApple()): Effects-of-calling:registerOpenURLCallback
    //#unanalyzed(Apple getApple()): Effects-of-calling:com.dmdirc.actions.ActionManager:addListener
    //#unanalyzed(Apple getApple()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Apple getApple()): Effects-of-calling:com.dmdirc.logger.Logger:userError
    //#test_vector(Apple getApple()): me: Inverse{null}, Addr_Set{null}
            me = new Apple();
        }
        return me;
    //#Apple.java:124: end of method: Apple com.dmdirc.addons.ui_swing.Apple.getApple()
    }

    /**
     * Create the Apple class.
     * <p>This attempts to:</p>
     *
     * <ul>
     *  <li>load the JNI library</li>
     *  <li>register the callback</li>
     *  <li>register a CLIENT_OPENED listener</li>
     * </ul>
     */
    private Apple() {
    //#Apple.java:137: method: void com.dmdirc.addons.ui_swing.Apple.com.dmdirc.addons.ui_swing.Apple()
    //#input(void com.dmdirc.addons.ui_swing.Apple()): com.dmdirc.actions.CoreActionType.CLIENT_OPENED
    //#input(void com.dmdirc.addons.ui_swing.Apple()): com.dmdirc.logger.ErrorLevel.MEDIUM
    //#input(void com.dmdirc.addons.ui_swing.Apple()): this
    //#output(void com.dmdirc.addons.ui_swing.Apple()): new ArrayList(Apple#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.Apple()): this.addresses
    //#output(void com.dmdirc.addons.ui_swing.Apple()): this.clientOpened
    //#output(void com.dmdirc.addons.ui_swing.Apple()): this.isListener
    //#output(void com.dmdirc.addons.ui_swing.Apple()): this.menuBar
    //#new obj(void com.dmdirc.addons.ui_swing.Apple()): new ArrayList(Apple#1)
    //#presumption(void com.dmdirc.addons.ui_swing.Apple()): init'ed(com.dmdirc.actions.CoreActionType.CLIENT_OPENED)
    //#presumption(void com.dmdirc.addons.ui_swing.Apple()): init'ed(com.dmdirc.logger.ErrorLevel.MEDIUM)
    //#post(void com.dmdirc.addons.ui_swing.Apple()): this.addresses == &new ArrayList(Apple#1)
    //#post(void com.dmdirc.addons.ui_swing.Apple()): this.clientOpened == 0
    //#post(void com.dmdirc.addons.ui_swing.Apple()): this.isListener == 0
    //#post(void com.dmdirc.addons.ui_swing.Apple()): this.menuBar == null
    //#post(void com.dmdirc.addons.ui_swing.Apple()): new ArrayList(Apple#1) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.Apple()): Effects-of-calling:java.lang.System:getProperty
        if (isApple()) {
            try {
                System.loadLibrary("DMDirc-Apple");
                registerOpenURLCallback();
    //#Apple.java:141: Warning: method not available - call not analyzed
    //#    call on int registerOpenURLCallback()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void com.dmdirc.addons.ui_swing.Apple()
    //#    unanalyzed callee: int registerOpenURLCallback()
                ActionManager.addListener(this, CoreActionType.CLIENT_OPENED);
    //#Apple.java:142: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void com.dmdirc.addons.ui_swing.Apple()
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
            } catch (UnsatisfiedLinkError ule) {
                Logger.userError(ErrorLevel.MEDIUM,
    //#Apple.java:144: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:userError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void com.dmdirc.addons.ui_swing.Apple()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:userError(ErrorLevel, String, Throwable)
                        "Unable to load JNI library.", ule);
            }
        }
    }
    //#Apple.java:148: end of method: void com.dmdirc.addons.ui_swing.Apple.com.dmdirc.addons.ui_swing.Apple()

    /**
     * Get the "Application" object
     *
     * @return Object that on OSX will be an "Application"
     */
    public static Object getApplication() {
        if (application == null && isApple()) {
    //#Apple.java:156: method: Object com.dmdirc.addons.ui_swing.Apple.getApplication()
    //#input(Object getApplication()): application
    //#output(Object getApplication()): application
    //#output(Object getApplication()): return_value
    //#pre[1] (Object getApplication()): init'ed(application)
    //#presumption(Object getApplication()): java.lang.Class:forName(...)@158 != null
    //#presumption(Object getApplication()): java.lang.Class:getMethod(...)@159 != null
    //#post(Object getApplication()): init'ed(application)
    //#post(Object getApplication()): return_value == application
    //#unanalyzed(Object getApplication()): Effects-of-calling:java.lang.System:getProperty
    //#test_vector(Object getApplication()): application: Inverse{null}, Addr_Set{null}
            try {
                final Class<?> app = Class.forName("com.apple.eawt.Application");
                final Method method = app.getMethod("getApplication",
                        new Class[0]);
                application = method.invoke(null, new Object[0]);
            } catch (ClassNotFoundException ex) { // Probably not on OS X, do nothing.
            } catch (NoSuchMethodException ex) { // Probably not on OS X, do nothing.
            } catch (SecurityException ex) { // Probably not on OS X, do nothing.
            } catch (IllegalAccessException ex) { // Probably not on OS X, do nothing.
            } catch (IllegalArgumentException ex) { // Probably not on OS X, do nothing.
            } catch (InvocationTargetException ex) { // Probably not on OS X, do nothing.
            }
        }
        return application;
    //#Apple.java:170: end of method: Object com.dmdirc.addons.ui_swing.Apple.getApplication()
    }

    /**
     * Get the "NSApplication" object
     *
     * @return Object that on OSX will be an "NSApplication"
     */
    public static Object getNSApplication() {
        if (nsApplication == null && isApple()) {
    //#Apple.java:179: method: Object com.dmdirc.addons.ui_swing.Apple.getNSApplication()
    //#input(Object getNSApplication()): nsApplication
    //#output(Object getNSApplication()): nsApplication
    //#output(Object getNSApplication()): return_value
    //#pre[1] (Object getNSApplication()): init'ed(nsApplication)
    //#presumption(Object getNSApplication()): java.lang.Class:forName(...)@181 != null
    //#presumption(Object getNSApplication()): java.lang.Class:getMethod(...)@183 != null
    //#post(Object getNSApplication()): init'ed(nsApplication)
    //#post(Object getNSApplication()): return_value == nsApplication
    //#unanalyzed(Object getNSApplication()): Effects-of-calling:java.lang.System:getProperty
    //#test_vector(Object getNSApplication()): nsApplication: Inverse{null}, Addr_Set{null}
            try {
                final Class<?> app = Class.forName(
                        "com.apple.cocoa.application.NSApplication");
                final Method method = app.getMethod("sharedApplication",
                        new Class[0]);
                nsApplication = method.invoke(null, new Object[0]);
            } catch (ClassNotFoundException ex) { // Probably not on OS X, do nothing.
            } catch (NoSuchMethodException ex) { // Probably not on OS X, do nothing.
            } catch (IllegalAccessException ex) { // Probably not on OS X, do nothing.
            } catch (InvocationTargetException ex) { // Probably not on OS X, do nothing.
            }
        }
        return nsApplication;
    //#Apple.java:192: end of method: Object com.dmdirc.addons.ui_swing.Apple.getNSApplication()
    }

    /**
     * Are we on OS X?
     *
     * @return true if we are running on OS X
     */
    public static boolean isApple() {
        return (System.getProperty("mrj.version") != null);
    //#Apple.java:201: method: bool com.dmdirc.addons.ui_swing.Apple.isApple()
    //#output(bool isApple()): return_value
    //#post(bool isApple()): init'ed(return_value)
    //#Apple.java:201: end of method: bool com.dmdirc.addons.ui_swing.Apple.isApple()
    }

    /**
     * Are we using the OS X look and feel?
     *
     * @return true if we are using the OS X look and feel
     */
    public static boolean isAppleUI() {
        return isApple() && UIManager.getLookAndFeel().getClass().getName().
    //#Apple.java:210: method: bool com.dmdirc.addons.ui_swing.Apple.isAppleUI()
    //#output(bool isAppleUI()): return_value
    //#presumption(bool isAppleUI()): java.lang.Class:getName(...)@210 != null
    //#presumption(bool isAppleUI()): java.lang.Object:getClass(...)@210 != null
    //#presumption(bool isAppleUI()): javax.swing.UIManager:getLookAndFeel(...)@210 != null
    //#post(bool isAppleUI()): init'ed(return_value)
    //#unanalyzed(bool isAppleUI()): Effects-of-calling:java.lang.System:getProperty
    //#Apple.java:210: end of method: bool com.dmdirc.addons.ui_swing.Apple.isAppleUI()
                equals("apple.laf.AquaLookAndFeel");
    }

    /**
     * Set some OS X only UI settings.
     */
    public void setUISettings() {
        if (!isApple()) {
    //#Apple.java:218: method: void com.dmdirc.addons.ui_swing.Apple.setUISettings()
    //#presumption(void setUISettings()): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@223 != null
    //#unanalyzed(void setUISettings()): Effects-of-calling:java.lang.System:getProperty
            return;
        }

        // Set some Apple OS X related stuff from http://tinyurl.com/6xwuld
        final String aaText = IdentityManager.getGlobalConfig().getOptionBool(
    //#Apple.java:223: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void setUISettings()
    //#    unanalyzed callee: ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#Apple.java:223: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void setUISettings()
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
                "ui", "antialias") ? "on" : "off";

        System.setProperty("apple.awt.antialiasing", aaText);
        System.setProperty("apple.awt.textantialiasing", aaText);
        System.setProperty("apple.awt.showGrowBox", "true");
        System.setProperty("com.apple.mrj.application.apple.menu.about.name",
                "DMDirc");
        System.setProperty("apple.laf.useScreenMenuBar", "true");
        System.setProperty("com.apple.mrj.application.growbox.intrudes", "false");
        System.setProperty("com.apple.mrj.application.live-resize", "true");
    }
    //#Apple.java:234: end of method: void com.dmdirc.addons.ui_swing.Apple.setUISettings()

    /**
     * Request user attention (Bounce the dock).
     *
     * @param isCritical If this is false, the dock icon only bounces once,
     *                   otherwise it will bounce until clicked on.
     */
    public void requestUserAttention(final boolean isCritical) {
        if (!isApple()) {
    //#Apple.java:243: method: void com.dmdirc.addons.ui_swing.Apple.requestUserAttention(bool)
    //#input(void requestUserAttention(bool)): isCritical
    //#input(void requestUserAttention(bool)): java.lang.Integer.TYPE
    //#output(void requestUserAttention(bool)): nsApplication
    //#presumption(void requestUserAttention(bool)): java.lang.Class:getField(...)@248 != null
    //#presumption(void requestUserAttention(bool)): java.lang.Class:getField(...)@248 != null
    //#presumption(void requestUserAttention(bool)): java.lang.Class:getMethod(...)@251 != null
    //#presumption(void requestUserAttention(bool)): init'ed(java.lang.Integer.TYPE)
    //#presumption(void requestUserAttention(bool)): java.lang.Object:getClass(...)@248 != null
    //#presumption(void requestUserAttention(bool)): java.lang.Object:getClass(...)@248 != null
    //#presumption(void requestUserAttention(bool)): java.lang.Object:getClass(...)@251 != null
    //#post(void requestUserAttention(bool)): possibly_updated(nsApplication)
    //#unanalyzed(void requestUserAttention(bool)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void requestUserAttention(bool)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void requestUserAttention(bool)): Effects-of-calling:java.lang.Class:forName
    //#unanalyzed(void requestUserAttention(bool)): Effects-of-calling:java.lang.Class:getMethod
    //#unanalyzed(void requestUserAttention(bool)): Effects-of-calling:java.lang.reflect.Method:invoke
    //#test_vector(void requestUserAttention(bool)): isCritical: {0}, {1}
            return;
        }

        try {
            final Field type = isCritical ? getNSApplication().getClass().
    //#Apple.java:248: ?precondition failure
    //#    com/dmdirc/addons/ui_swing/Apple.getNSApplication: init'ed(nsApplication)
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void requestUserAttention(bool)
    //#    basic block: bb_6
    //#    assertion: init'ed(nsApplication)
    //#    callee: Object com/dmdirc/addons/ui_swing/Apple.getNSApplication()
    //#    callee assertion: init'ed(nsApplication)
    //#    callee file: Apple.java
    //#    callee precondition index: [1]
    //#    callee srcpos: 179
    //#    VN: nsApplication
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#Apple.java:248: ?null dereference
    //#    getNSApplication(...) != null
    //#    severity: MEDIUM
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void requestUserAttention(bool)
    //#    basic block: bb_6
    //#    assertion: getNSApplication(...) != null
    //#    VN: nsApplication
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#Apple.java:248: ?precondition failure
    //#    com/dmdirc/addons/ui_swing/Apple.getNSApplication: init'ed(nsApplication)
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void requestUserAttention(bool)
    //#    basic block: bb_5
    //#    assertion: init'ed(nsApplication)
    //#    callee: Object com/dmdirc/addons/ui_swing/Apple.getNSApplication()
    //#    callee assertion: init'ed(nsApplication)
    //#    callee file: Apple.java
    //#    callee precondition index: [1]
    //#    callee srcpos: 179
    //#    VN: nsApplication
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#Apple.java:248: ?null dereference
    //#    getNSApplication(...) != null
    //#    severity: MEDIUM
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void requestUserAttention(bool)
    //#    basic block: bb_5
    //#    assertion: getNSApplication(...) != null
    //#    VN: nsApplication
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
                    getField("UserAttentionRequestCritical") : getNSApplication().
                    getClass().getField("Informational");
            final Method method = getNSApplication().getClass().getMethod(
    //#Apple.java:251: ?null dereference
    //#    getNSApplication(...) != null
    //#    severity: MEDIUM
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void requestUserAttention(bool)
    //#    basic block: bb_7
    //#    assertion: getNSApplication(...) != null
    //#    VN: nsApplication
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
                    "requestUserAttention", new Class[]{Integer.TYPE});
            method.invoke(getNSApplication(), new Object[]{type.get(null)});
        } catch (NoSuchFieldException ex) { // Probably not on OS X, do nothing.
        } catch (NoSuchMethodException ex) { // Probably not on OS X, do nothing.
        } catch (IllegalAccessException ex) { // Probably not on OS X, do nothing.
        } catch (InvocationTargetException ex) { // Probably not on OS X, do nothing.
        }
    }
    //#Apple.java:259: end of method: void com.dmdirc.addons.ui_swing.Apple.requestUserAttention(bool)

    /**
     * Set this up as a listener for the Apple Events
     *
     * @return True if the listener was added, else false.
     */
    public boolean setListener() {
        if (!isApple() || isListener) {
    //#Apple.java:267: method: bool com.dmdirc.addons.ui_swing.Apple.setListener()
    //#input(bool setListener()): java.lang.Boolean.TRUE
    //#input(bool setListener()): java.lang.Boolean.TYPE
    //#input(bool setListener()): this
    //#input(bool setListener()): this.isListener
    //#output(bool setListener()): application
    //#output(bool setListener()): return_value
    //#output(bool setListener()): this.isListener
    //#pre[2] (bool setListener()): (soft) init'ed(this.isListener)
    //#presumption(bool setListener()): init'ed(java.lang.Boolean.TRUE)
    //#presumption(bool setListener()): init'ed(java.lang.Boolean.TYPE)
    //#presumption(bool setListener()): java.lang.Class:getMethod(...)@277 != null
    //#presumption(bool setListener()): java.lang.Class:getMethod(...)@283 != null
    //#presumption(bool setListener()): java.lang.Class:getMethod(...)@287 != null
    //#presumption(bool setListener()): java.lang.Object:getClass(...)@274 != null
    //#presumption(bool setListener()): java.lang.Object:getClass(...)@277 != null
    //#presumption(bool setListener()): java.lang.Object:getClass(...)@283 != null
    //#presumption(bool setListener()): java.lang.Object:getClass(...)@287 != null
    //#post(bool setListener()): possibly_updated(application)
    //#post(bool setListener()): init'ed(return_value)
    //#post(bool setListener()): init'ed(this.isListener)
    //#unanalyzed(bool setListener()): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(bool setListener()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(bool setListener()): Effects-of-calling:java.lang.Class:forName
    //#unanalyzed(bool setListener()): Effects-of-calling:java.lang.Class:getMethod
    //#unanalyzed(bool setListener()): Effects-of-calling:java.lang.reflect.Method:invoke
    //#test_vector(bool setListener()): this.isListener: {0}, {1}
            return false;
        }

        try {
            final Class listenerClass = Class.forName(
                    "com.apple.eawt.ApplicationListener");
            final Object listener = Proxy.newProxyInstance(getClass().
                    getClassLoader(), new Class[]{listenerClass}, this);

            Method method = getApplication().getClass().getMethod(
    //#Apple.java:277: ?precondition failure
    //#    com/dmdirc/addons/ui_swing/Apple.getApplication: init'ed(application)
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: bool setListener()
    //#    basic block: bb_5
    //#    assertion: init'ed(application)
    //#    callee: Object com/dmdirc/addons/ui_swing/Apple.getApplication()
    //#    callee assertion: init'ed(application)
    //#    callee file: Apple.java
    //#    callee precondition index: [1]
    //#    callee srcpos: 156
    //#    VN: application
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
    //#Apple.java:277: ?null dereference
    //#    getApplication(...) != null
    //#    severity: MEDIUM
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: bool setListener()
    //#    basic block: bb_5
    //#    assertion: getApplication(...) != null
    //#    VN: application
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
                    "addApplicationListener", new Class[]{listenerClass});
            method.invoke(getApplication(), listener);

            isListener = true;

            method = getApplication().getClass().getMethod(
    //#Apple.java:283: ?null dereference
    //#    getApplication(...) != null
    //#    severity: MEDIUM
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: bool setListener()
    //#    basic block: bb_5
    //#    assertion: getApplication(...) != null
    //#    VN: application
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
                    "setEnabledPreferencesMenu", new Class[]{Boolean.TYPE});
            method.invoke(getApplication(), new Object[]{Boolean.TRUE});

            method =
    //#Apple.java:287: ?null dereference
    //#    getApplication(...) != null
    //#    severity: MEDIUM
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: bool setListener()
    //#    basic block: bb_5
    //#    assertion: getApplication(...) != null
    //#    VN: application
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
                    getApplication().getClass().getMethod("setEnabledAboutMenu",
                    new Class[]{Boolean.TYPE});
            method.invoke(getApplication(), new Object[]{Boolean.TRUE});
            return true;
        } catch (ClassNotFoundException ex) { // Probably not on OS X, do nothing.
        } catch (NoSuchMethodException ex) { // Probably not on OS X, do nothing.
        } catch (IllegalAccessException ex) { // Probably not on OS X, do nothing.
        } catch (InvocationTargetException ex) { // Probably not on OS X, do nothing.
        }
        return false;
    //#Apple.java:297: end of method: bool com.dmdirc.addons.ui_swing.Apple.setListener()
    }

    /**
     * {@inheritDoc}
     *
     * @throws Throwable Throws stuff on errors
     */
    @Override
    public Object invoke(final Object proxy, final Method method,
            final Object[] args) throws Throwable {
        if (!isApple()) {
    //#Apple.java:308: method: Object com.dmdirc.addons.ui_swing.Apple.invoke(Object, Method, Object[])
    //#input(Object invoke(Object, Method, Object[])): args
    //#input(Object invoke(Object, Method, Object[])): args.length
    //#input(Object invoke(Object, Method, Object[])): args[0]
    //#input(Object invoke(Object, Method, Object[])): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent]
    //#input(Object invoke(Object, Method, Object[])): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[others]
    //#input(Object invoke(Object, Method, Object[])): method
    //#input(Object invoke(Object, Method, Object[])): proxy
    //#input(Object invoke(Object, Method, Object[])): this
    //#output(Object invoke(Object, Method, Object[])): return_value
    //#pre[1] (Object invoke(Object, Method, Object[])): (soft) args != null
    //#pre[3] (Object invoke(Object, Method, Object[])): (soft) init'ed(args[0])
    //#pre[4] (Object invoke(Object, Method, Object[])): (soft) method != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.Class:getMethod(...)@325 != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.Object:getClass(...)@313 != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.Object:getClass(...)@325 != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.reflect.Method:getName(...)@329 != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.reflect.Proxy:newProxyInstance(...).__Tag@313 == com/dmdirc/addons/ui_swing/Apple$ApplicationEvent
    //#post(Object invoke(Object, Method, Object[])): init'ed(return_value)
    //#unanalyzed(Object invoke(Object, Method, Object[])): Effects-of-calling:java.lang.System:getProperty
            return null;
        }

        try {
            final ApplicationEvent event = (ApplicationEvent) Proxy.
                    newProxyInstance(getClass().getClassLoader(), new Class[]{
                        ApplicationEvent.class}, new InvocationHandler() {
    //#Apple.java:315: method: void com.dmdirc.addons.ui_swing.Apple$1.com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])
    //#input(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): Param_1
    //#input(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): Param_2
    //#input(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): this
    //#output(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): this.val$args
    //#post(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): this.val$args == Param_2
    //#post(void com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])): init'ed(this.val$args)
    //#Apple.java:315: end of method: void com.dmdirc.addons.ui_swing.Apple$1.com.dmdirc.addons.ui_swing.Apple$1(Apple, Object[])

                /** {@inheritDoc} */
                @Override
                public Object invoke(final Object p, final Method m,
                        final Object[] a) throws Throwable {
                    return args[0].getClass().getMethod(m.getName(), m.
    //#Apple.java:321: method: Object com.dmdirc.addons.ui_swing.Apple$1.invoke(Object, Method, Object[])
    //#input(Object invoke(Object, Method, Object[])): a
    //#input(Object invoke(Object, Method, Object[])): m
    //#input(Object invoke(Object, Method, Object[])): this
    //#input(Object invoke(Object, Method, Object[])): this.val$args
    //#input(Object invoke(Object, Method, Object[])): this.val$args.length
    //#input(Object invoke(Object, Method, Object[])): this.val$args[0]
    //#output(Object invoke(Object, Method, Object[])): return_value
    //#pre[2] (Object invoke(Object, Method, Object[])): m != null
    //#pre[4] (Object invoke(Object, Method, Object[])): this.val$args != null
    //#pre[5] (Object invoke(Object, Method, Object[])): this.val$args.length >= 1
    //#pre[6] (Object invoke(Object, Method, Object[])): this.val$args[0] != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.Class:getMethod(...)@321 != null
    //#presumption(Object invoke(Object, Method, Object[])): java.lang.Object:getClass(...)@321 != null
    //#post(Object invoke(Object, Method, Object[])): init'ed(return_value)
    //#Apple.java:321: end of method: Object com.dmdirc.addons.ui_swing.Apple$1.invoke(Object, Method, Object[])
                            getParameterTypes()).invoke(args[0], a);
                }
            });
            Method thisMethod = this.getClass().getMethod(method.getName(),
                    new Class[]{ApplicationEvent.class});
            return thisMethod.invoke(this, event);
        } catch (NoSuchMethodException e) {
            if (method.getName().equals("equals") && args.length == 1) {
                return Boolean.valueOf(proxy == args[0]);
            }
        }

        return null;
    //#Apple.java:334: end of method: Object com.dmdirc.addons.ui_swing.Apple.invoke(Object, Method, Object[])
    }

    /**
     * Set the MenuBar.
     * This will unset all menu mnemonics aswell if on the OSX ui.
     *
     * @param menuBar MenuBar to use to send events to,
     */
    public void setMenuBar(final MenuBar menuBar) {
        this.menuBar = menuBar;
    //#Apple.java:344: method: void com.dmdirc.addons.ui_swing.Apple.setMenuBar(MenuBar)
    //#input(void setMenuBar(MenuBar)): menuBar
    //#input(void setMenuBar(MenuBar)): this
    //#output(void setMenuBar(MenuBar)): this.menuBar
    //#pre[1] (void setMenuBar(MenuBar)): (soft) menuBar != null
    //#post(void setMenuBar(MenuBar)): this.menuBar == menuBar
    //#post(void setMenuBar(MenuBar)): this.menuBar != null
    //#unanalyzed(void setMenuBar(MenuBar)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void setMenuBar(MenuBar)): Effects-of-calling:javax.swing.UIManager:getLookAndFeel
    //#unanalyzed(void setMenuBar(MenuBar)): Effects-of-calling:java.lang.Object:getClass
    //#unanalyzed(void setMenuBar(MenuBar)): Effects-of-calling:java.lang.Class:getName
    //#unanalyzed(void setMenuBar(MenuBar)): Effects-of-calling:java.lang.String:equals
    //#test_vector(void setMenuBar(MenuBar)): com.dmdirc.addons.ui_swing.components.MenuBar:getMenu(...)@347: Addr_Set{null}, Inverse{null}
    //#test_vector(void setMenuBar(MenuBar)): javax.swing.JMenu:getItem(...)@351: Addr_Set{null}, Inverse{null}
        if (isAppleUI()) {
            for (int i = 0; i < menuBar.getMenuCount(); i++) {
    //#Apple.java:346: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.MenuBar:getMenuCount()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void setMenuBar(MenuBar)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.MenuBar:getMenuCount()
                final JMenu menu = menuBar.getMenu(i);
    //#Apple.java:347: Warning: method not available - call not analyzed
    //#    call on JMenu com.dmdirc.addons.ui_swing.components.MenuBar:getMenu(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void setMenuBar(MenuBar)
    //#    unanalyzed callee: JMenu com.dmdirc.addons.ui_swing.components.MenuBar:getMenu(int)
                if (menu != null) {
                    menu.setMnemonic(0);
                    for (int j = 0; j < menu.getItemCount(); j++) {
                        final JMenuItem menuItem = menu.getItem(j);
                        if (menuItem != null) {
                            menuItem.setMnemonic(0);
                        }
                    }
                }
            }
        }
    }
    //#Apple.java:359: end of method: void com.dmdirc.addons.ui_swing.Apple.setMenuBar(MenuBar)

    /**
     * Handle an event using the menuBar
     *
     * @param name The name of the event according to the menubar
     * @param event The ApplicationEvent we are handingle
     */
    public void handleMenuBarEvent(final String name,
            final ApplicationEvent event) {
        if (!isApple() || menuBar == null) {
    //#Apple.java:369: method: void com.dmdirc.addons.ui_swing.Apple.handleMenuBarEvent(String, Apple$ApplicationEvent)
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[others]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Dispatch_Table.setHandled(Z)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/UIUtilities.com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[others]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.java.awt.Dialog$ModalityType.MODELESS
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/nickcolours/NickColourInputDialog]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/ColourPickerDialog]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar$1]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardDialog]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardInputDialog]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[others]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ChannelFrame]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[others]
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): event
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): event.__Tag
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): name
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar.__Tag
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar.controller
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar.controller.mainFrameCreated
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar.controller.me
    //#input(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar.mainFrame
    //#output(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar.mainFrame.exitCode
    //#pre[1] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) event != null
    //#pre[2] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) event.__Tag == com/dmdirc/addons/ui_swing/Apple$ApplicationEvent
    //#pre[6] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) init'ed(this.menuBar)
    //#pre[7] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) this.menuBar.__Tag == com/dmdirc/addons/ui_swing/components/MenuBar
    //#pre[8] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) this.menuBar.controller != null
    //#pre[9] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) this.menuBar.controller.mainFrameCreated != null
    //#pre[10] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) this.menuBar.controller.me != null
    //#pre[11] (void handleMenuBarEvent(String, Apple$ApplicationEvent)): (soft) this.menuBar.mainFrame != null
    //#post(void handleMenuBarEvent(String, Apple$ApplicationEvent)): possibly_updated(this.menuBar.mainFrame.exitCode)
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:invokeLater
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent:getActionCommand
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:showNewServerDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:showSwingPreferencesDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.about.AboutDialog:showAboutDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:showProfileManagerDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:quit
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog:showActionsManagerDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:showAliasManagerDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:joinDevChat
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:showFeedbackDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:getActiveFrame
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.util.concurrent.atomic.AtomicBoolean:get
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:getContainer
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.Server:disconnect
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.MenuBar$1
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:display
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:isEventDispatchThread
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.lang.Runnable:run
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JOptionPane:showConfirmDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.MainFrame$8:execute
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeAndWait
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:run
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:getObject
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getParent
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getText
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:getOkButton
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:orderButtons
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:getCancelButton
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:addWindowListener
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getDocument
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getRootPane
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JRootPane:registerKeyboardAction
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setLayout
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:add
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:getLeftButton
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:getRightButton
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setTitle
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setDefaultCloseOperation
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setDefaultCapable
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setPreferredSize
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setMinimumSize
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setIconImages
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JDialog
    //#unanalyzed(void handleMenuBarEvent(String, Apple$ApplicationEvent)): Effects-of-calling:java.awt.Window:getIconImages
    //#test_vector(void handleMenuBarEvent(String, Apple$ApplicationEvent)): this.menuBar: Inverse{null}, Addr_Set{null}
            return;
        }
        final ActionEvent actionEvent = new ActionEvent(this,
                ActionEvent.ACTION_PERFORMED, name);

        menuBar.actionPerformed(actionEvent);
        event.setHandled(true);
    //#Apple.java:376: Warning: method not available - call not analyzed
    //#    call on void setHandled(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void handleMenuBarEvent(String, Apple$ApplicationEvent)
    //#    unanalyzed callee: void setHandled(bool)
    }
    //#Apple.java:377: end of method: void com.dmdirc.addons.ui_swing.Apple.handleMenuBarEvent(String, Apple$ApplicationEvent)

    /**
     * This is called when Quit is selected from the Application menu
     *
     * @param event an ApplicationEvent object
     */
    public void handleQuit(final ApplicationEvent event) {
        handleMenuBarEvent("Exit", event);
    //#Apple.java:385: method: void com.dmdirc.addons.ui_swing.Apple.handleQuit(Apple$ApplicationEvent)
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[others]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Dispatch_Table.setHandled(Z)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/UIUtilities.com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[others]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.java.awt.Dialog$ModalityType.MODELESS
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/nickcolours/NickColourInputDialog]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/ColourPickerDialog]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar$1]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardDialog]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardInputDialog]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[others]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ChannelFrame]
    //#input(void handleQuit(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[others]
    //#input(void handleQuit(Apple$ApplicationEvent)): event
    //#input(void handleQuit(Apple$ApplicationEvent)): event.__Tag
    //#input(void handleQuit(Apple$ApplicationEvent)): this
    //#input(void handleQuit(Apple$ApplicationEvent)): this.menuBar
    //#input(void handleQuit(Apple$ApplicationEvent)): this.menuBar.__Tag
    //#input(void handleQuit(Apple$ApplicationEvent)): this.menuBar.controller
    //#input(void handleQuit(Apple$ApplicationEvent)): this.menuBar.controller.mainFrameCreated
    //#input(void handleQuit(Apple$ApplicationEvent)): this.menuBar.controller.me
    //#input(void handleQuit(Apple$ApplicationEvent)): this.menuBar.mainFrame
    //#output(void handleQuit(Apple$ApplicationEvent)): this.menuBar.mainFrame.exitCode
    //#pre[1] (void handleQuit(Apple$ApplicationEvent)): (soft) event != null
    //#pre[2] (void handleQuit(Apple$ApplicationEvent)): (soft) event.__Tag == com/dmdirc/addons/ui_swing/Apple$ApplicationEvent
    //#pre[5] (void handleQuit(Apple$ApplicationEvent)): (soft) init'ed(this.menuBar)
    //#pre[6] (void handleQuit(Apple$ApplicationEvent)): (soft) this.menuBar.__Tag == com/dmdirc/addons/ui_swing/components/MenuBar
    //#pre[7] (void handleQuit(Apple$ApplicationEvent)): (soft) this.menuBar.controller != null
    //#pre[8] (void handleQuit(Apple$ApplicationEvent)): (soft) this.menuBar.controller.mainFrameCreated != null
    //#pre[9] (void handleQuit(Apple$ApplicationEvent)): (soft) this.menuBar.controller.me != null
    //#pre[10] (void handleQuit(Apple$ApplicationEvent)): (soft) this.menuBar.mainFrame != null
    //#post(void handleQuit(Apple$ApplicationEvent)): possibly_updated(this.menuBar.mainFrame.exitCode)
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:actionPerformed
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:setHandled
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:invokeLater
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent:getActionCommand
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:showNewServerDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:showSwingPreferencesDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.about.AboutDialog:showAboutDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:showProfileManagerDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:quit
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog:showActionsManagerDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:showAliasManagerDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:joinDevChat
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:showFeedbackDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:getActiveFrame
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.util.concurrent.atomic.AtomicBoolean:get
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:getContainer
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.Server:disconnect
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.MenuBar$1
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:display
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:isEventDispatchThread
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.lang.Runnable:run
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JOptionPane:showConfirmDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.MainFrame$8:execute
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeAndWait
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:run
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:getObject
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getParent
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getText
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:getOkButton
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:orderButtons
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:getCancelButton
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:addWindowListener
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getDocument
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getRootPane
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JRootPane:registerKeyboardAction
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setLayout
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:add
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:getLeftButton
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:getRightButton
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setTitle
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setDefaultCloseOperation
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setDefaultCapable
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setPreferredSize
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setMinimumSize
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setIconImages
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JDialog
    //#unanalyzed(void handleQuit(Apple$ApplicationEvent)): Effects-of-calling:java.awt.Window:getIconImages
    }
    //#Apple.java:386: end of method: void com.dmdirc.addons.ui_swing.Apple.handleQuit(Apple$ApplicationEvent)

    /**
     * This is called when About is selected from the Application menu
     *
     * @param event an ApplicationEvent object
     */
    public void handleAbout(final ApplicationEvent event) {
        handleMenuBarEvent("About", event);
    //#Apple.java:394: method: void com.dmdirc.addons.ui_swing.Apple.handleAbout(Apple$ApplicationEvent)
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[others]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Dispatch_Table.setHandled(Z)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/UIUtilities.com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[others]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.java.awt.Dialog$ModalityType.MODELESS
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/nickcolours/NickColourInputDialog]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/ColourPickerDialog]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar$1]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardDialog]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardInputDialog]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[others]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ChannelFrame]
    //#input(void handleAbout(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[others]
    //#input(void handleAbout(Apple$ApplicationEvent)): event
    //#input(void handleAbout(Apple$ApplicationEvent)): event.__Tag
    //#input(void handleAbout(Apple$ApplicationEvent)): this
    //#input(void handleAbout(Apple$ApplicationEvent)): this.menuBar
    //#input(void handleAbout(Apple$ApplicationEvent)): this.menuBar.__Tag
    //#input(void handleAbout(Apple$ApplicationEvent)): this.menuBar.controller
    //#input(void handleAbout(Apple$ApplicationEvent)): this.menuBar.controller.mainFrameCreated
    //#input(void handleAbout(Apple$ApplicationEvent)): this.menuBar.controller.me
    //#input(void handleAbout(Apple$ApplicationEvent)): this.menuBar.mainFrame
    //#output(void handleAbout(Apple$ApplicationEvent)): this.menuBar.mainFrame.exitCode
    //#pre[1] (void handleAbout(Apple$ApplicationEvent)): (soft) event != null
    //#pre[2] (void handleAbout(Apple$ApplicationEvent)): (soft) event.__Tag == com/dmdirc/addons/ui_swing/Apple$ApplicationEvent
    //#pre[5] (void handleAbout(Apple$ApplicationEvent)): (soft) init'ed(this.menuBar)
    //#pre[6] (void handleAbout(Apple$ApplicationEvent)): (soft) this.menuBar.__Tag == com/dmdirc/addons/ui_swing/components/MenuBar
    //#pre[7] (void handleAbout(Apple$ApplicationEvent)): (soft) this.menuBar.controller != null
    //#pre[8] (void handleAbout(Apple$ApplicationEvent)): (soft) this.menuBar.controller.mainFrameCreated != null
    //#pre[9] (void handleAbout(Apple$ApplicationEvent)): (soft) this.menuBar.controller.me != null
    //#pre[10] (void handleAbout(Apple$ApplicationEvent)): (soft) this.menuBar.mainFrame != null
    //#post(void handleAbout(Apple$ApplicationEvent)): possibly_updated(this.menuBar.mainFrame.exitCode)
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:actionPerformed
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:setHandled
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:invokeLater
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent:getActionCommand
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:showNewServerDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:showSwingPreferencesDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.about.AboutDialog:showAboutDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:showProfileManagerDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:quit
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog:showActionsManagerDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:showAliasManagerDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:joinDevChat
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:showFeedbackDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:getActiveFrame
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.util.concurrent.atomic.AtomicBoolean:get
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:getContainer
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.Server:disconnect
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.MenuBar$1
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:display
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:isEventDispatchThread
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.lang.Runnable:run
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JOptionPane:showConfirmDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.MainFrame$8:execute
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeAndWait
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:run
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:getObject
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getParent
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getText
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:getOkButton
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:orderButtons
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:getCancelButton
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:addWindowListener
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getDocument
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getRootPane
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JRootPane:registerKeyboardAction
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setLayout
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:add
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:getLeftButton
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:getRightButton
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setTitle
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setDefaultCloseOperation
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setDefaultCapable
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setPreferredSize
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setMinimumSize
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setIconImages
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JDialog
    //#unanalyzed(void handleAbout(Apple$ApplicationEvent)): Effects-of-calling:java.awt.Window:getIconImages
    }
    //#Apple.java:395: end of method: void com.dmdirc.addons.ui_swing.Apple.handleAbout(Apple$ApplicationEvent)

    /**
     * This is called when Preferences is selected from the Application menu
     *
     * @param event an ApplicationEvent object
     */
    public void handlePreferences(final ApplicationEvent event) {
        handleMenuBarEvent("Preferences", event);
    //#Apple.java:403: method: void com.dmdirc.addons.ui_swing.Apple.handlePreferences(Apple$ApplicationEvent)
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/nickcolours/NickColourInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Descendant_Table[others]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/Apple$ApplicationEvent.__Dispatch_Table.setHandled(Z)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/UIUtilities.com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/ColourPickerDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar$1.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Descendant_Table[others]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.__Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/MenuBar.java.awt.Dialog$ModalityType.MODELESS
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/nickcolours/NickColourInputDialog]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/ColourPickerDialog]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/MenuBar$1]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardDialog]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/StandardInputDialog]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Descendant_Table[others]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/StandardInputDialog.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setCancelButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/durationeditor/DurationEditor.__Dispatch_Table.setOkButton(Ljavax/swing/JButton;)V
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/ChannelFrame]
    //#input(void handlePreferences(Apple$ApplicationEvent)): com/dmdirc/addons/ui_swing/components/frames/ChannelFrame.__Descendant_Table[others]
    //#input(void handlePreferences(Apple$ApplicationEvent)): event
    //#input(void handlePreferences(Apple$ApplicationEvent)): event.__Tag
    //#input(void handlePreferences(Apple$ApplicationEvent)): this
    //#input(void handlePreferences(Apple$ApplicationEvent)): this.menuBar
    //#input(void handlePreferences(Apple$ApplicationEvent)): this.menuBar.__Tag
    //#input(void handlePreferences(Apple$ApplicationEvent)): this.menuBar.controller
    //#input(void handlePreferences(Apple$ApplicationEvent)): this.menuBar.controller.mainFrameCreated
    //#input(void handlePreferences(Apple$ApplicationEvent)): this.menuBar.controller.me
    //#input(void handlePreferences(Apple$ApplicationEvent)): this.menuBar.mainFrame
    //#output(void handlePreferences(Apple$ApplicationEvent)): this.menuBar.mainFrame.exitCode
    //#pre[1] (void handlePreferences(Apple$ApplicationEvent)): (soft) event != null
    //#pre[2] (void handlePreferences(Apple$ApplicationEvent)): (soft) event.__Tag == com/dmdirc/addons/ui_swing/Apple$ApplicationEvent
    //#pre[5] (void handlePreferences(Apple$ApplicationEvent)): (soft) init'ed(this.menuBar)
    //#pre[6] (void handlePreferences(Apple$ApplicationEvent)): (soft) this.menuBar.__Tag == com/dmdirc/addons/ui_swing/components/MenuBar
    //#pre[7] (void handlePreferences(Apple$ApplicationEvent)): (soft) this.menuBar.controller != null
    //#pre[8] (void handlePreferences(Apple$ApplicationEvent)): (soft) this.menuBar.controller.mainFrameCreated != null
    //#pre[9] (void handlePreferences(Apple$ApplicationEvent)): (soft) this.menuBar.controller.me != null
    //#pre[10] (void handlePreferences(Apple$ApplicationEvent)): (soft) this.menuBar.mainFrame != null
    //#post(void handlePreferences(Apple$ApplicationEvent)): possibly_updated(this.menuBar.mainFrame.exitCode)
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:actionPerformed
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:setHandled
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:invokeLater
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.ActionEvent:getActionCommand
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:showNewServerDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:showSwingPreferencesDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.about.AboutDialog:showAboutDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:showProfileManagerDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:quit
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actionsmanager.ActionsManagerDialog:showActionsManagerDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:showAliasManagerDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ServerManager:joinDevChat
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:showFeedbackDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:getActiveFrame
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.util.concurrent.atomic.AtomicBoolean:get
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:getContainer
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.Server:disconnect
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.MenuBar$1
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:display
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:isEventDispatchThread
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.lang.Runnable:run
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JOptionPane:showConfirmDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.MainFrame$8:execute
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeAndWait
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:run
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread:getObject
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.util.ReturnableThread
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getParent
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getText
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:getOkButton
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:orderButtons
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:getCancelButton
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:addWindowListener
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getDocument
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:getRootPane
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JRootPane:registerKeyboardAction
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setLayout
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:add
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:getLeftButton
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:getRightButton
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setTitle
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog:setDefaultCloseOperation
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setDefaultCapable
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setPreferredSize
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JButton:setMinimumSize
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setIconImages
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:javax.swing.JDialog
    //#unanalyzed(void handlePreferences(Apple$ApplicationEvent)): Effects-of-calling:java.awt.Window:getIconImages
    }
    //#Apple.java:404: end of method: void com.dmdirc.addons.ui_swing.Apple.handlePreferences(Apple$ApplicationEvent)

    /**
     * This is called when the Application is opened
     *
     * @param event an ApplicationEvent object
     */
    public void handleOpenApplication(final ApplicationEvent event) {
    }
    //#Apple.java:412: method: void com.dmdirc.addons.ui_swing.Apple.handleOpenApplication(Apple$ApplicationEvent)
    //#Apple.java:412: end of method: void com.dmdirc.addons.ui_swing.Apple.handleOpenApplication(Apple$ApplicationEvent)

    /**
     * This is called when the application is asked to open a file
     *
     * @param event an ApplicationEvent object
     */
    public void handleOpenFile(final ApplicationEvent event) {
    }
    //#Apple.java:420: method: void com.dmdirc.addons.ui_swing.Apple.handleOpenFile(Apple$ApplicationEvent)
    //#Apple.java:420: end of method: void com.dmdirc.addons.ui_swing.Apple.handleOpenFile(Apple$ApplicationEvent)

    /**
     * This is called when asked to print
     *
     * @param event an ApplicationEvent object
     */
    public void handlePrintFile(final ApplicationEvent event) {
    }
    //#Apple.java:428: method: void com.dmdirc.addons.ui_swing.Apple.handlePrintFile(Apple$ApplicationEvent)
    //#Apple.java:428: end of method: void com.dmdirc.addons.ui_swing.Apple.handlePrintFile(Apple$ApplicationEvent)

    /**
     * This is called when the application is reopened
     *
     * @param event an ApplicationEvent object
     */
    public void handleReopenApplication(final ApplicationEvent event) {
    }
    //#Apple.java:436: method: void com.dmdirc.addons.ui_swing.Apple.handleReopenApplication(Apple$ApplicationEvent)
    //#Apple.java:436: end of method: void com.dmdirc.addons.ui_swing.Apple.handleReopenApplication(Apple$ApplicationEvent)

    /** {@inheritDoc} */
    @Override
    public void processEvent(final ActionType type, final StringBuffer format,
            final Object... arguments) {
        if (type == CoreActionType.CLIENT_OPENED) {
    //#Apple.java:442: method: void com.dmdirc.addons.ui_swing.Apple.processEvent(ActionType, StringBuffer, Object[])
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com.dmdirc.actions.CoreActionType.CLIENT_OPENED
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.addresses
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.addresses.__Lock
    //#input(void processEvent(ActionType, StringBuffer, Object[])): type
    //#output(void processEvent(ActionType, StringBuffer, Object[])): this.clientOpened
    //#pre[3] (void processEvent(ActionType, StringBuffer, Object[])): (soft) this.addresses != null
    //#presumption(void processEvent(ActionType, StringBuffer, Object[])): init'ed(com.dmdirc.actions.CoreActionType.CLIENT_OPENED)
    //#presumption(void processEvent(ActionType, StringBuffer, Object[])): java.util.ArrayList:iterator(...)@445 != null
    //#presumption(void processEvent(ActionType, StringBuffer, Object[])): java.util.Iterator:next(...)@445 != null
    //#post(void processEvent(ActionType, StringBuffer, Object[])): possibly_updated(this.clientOpened)
    //#test_vector(void processEvent(ActionType, StringBuffer, Object[])): java.util.Iterator:hasNext(...)@445: {0}, {1}
            synchronized (addresses) {
                clientOpened = true;
                for (IrcAddress addr : addresses) {
                    addr.connect();
    //#Apple.java:446: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.IrcAddress:connect()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void processEvent(ActionType, StringBuffer, Object[])
    //#    unanalyzed callee: void com.dmdirc.util.IrcAddress:connect()
                }
                addresses.clear();
            }
        }
    }
    //#Apple.java:451: end of method: void com.dmdirc.addons.ui_swing.Apple.processEvent(ActionType, StringBuffer, Object[])

    /**
     * Callback from JNI library.
     * If called before the client has finished opening, the URL will be added to
     * a list that will be connected to once the CLIENT_OPENED action is called.
     * Otherwise we connect right away.
     *
     * @param url The irc url to connect to.
     */
    public void handleOpenURL(final String url) {
        if (isApple()) {
    //#Apple.java:462: method: void com.dmdirc.addons.ui_swing.Apple.handleOpenURL(String)
    //#input(void handleOpenURL(String)): this
    //#input(void handleOpenURL(String)): this.addresses
    //#input(void handleOpenURL(String)): this.addresses.__Lock
    //#input(void handleOpenURL(String)): url
    //#pre[2] (void handleOpenURL(String)): (soft) this.addresses != null
    //#presumption(void handleOpenURL(String)): java.lang.Thread:currentThread(...)@472 != null
    //#presumption(void handleOpenURL(String)): java.lang.Thread:currentThread(...)@474 != null
    //#unanalyzed(void handleOpenURL(String)): Effects-of-calling:java.lang.System:getProperty
    //#test_vector(void handleOpenURL(String)): java.lang.Thread:getContextClassLoader(...)@472: Inverse{null}, Addr_Set{null}
    //#test_vector(void handleOpenURL(String)): this.clientOpened: {1}, {0}
            try {
                synchronized (addresses) {
                    final IrcAddress addr = new IrcAddress(url);
    //#Apple.java:465: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.IrcAddress(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void handleOpenURL(String)
    //#    unanalyzed callee: void com.dmdirc.util.IrcAddress(String)
                    if (!clientOpened) {
                        addresses.add(addr);
                    } else {
                        // When the JNI callback is called there is no
                        // ContextClassLoader set, which causes an NPE in
                        // IconManager if no servers have been connected to yet.
                        if (Thread.currentThread().getContextClassLoader() ==
                                null) {
                            Thread.currentThread().setContextClassLoader(ClassLoader.
                                    getSystemClassLoader());
                        }
                        addr.connect();
    //#Apple.java:477: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.IrcAddress:connect()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.Apple
    //#    method: void handleOpenURL(String)
    //#    unanalyzed callee: void com.dmdirc.util.IrcAddress:connect()
                    }
                }
            } catch (InvalidAddressException iae) {
            }
        }
    }
    //#Apple.java:483: end of method: void com.dmdirc.addons.ui_swing.Apple.handleOpenURL(String)

    /**
     * Register the getURL Callback.
     *
     * @return 0 on success, 1 on failure.
     */
    private synchronized final native int registerOpenURLCallback();
}
    //#output(com.dmdirc.addons.ui_swing.Apple$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/Apple$1]
    //#output(com.dmdirc.addons.ui_swing.Apple$1__static_init): __Dispatch_Table.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.Apple$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/Apple$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.Apple$1__static_init): __Dispatch_Table.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; == &invoke
    //#Apple.java:: end of method: com.dmdirc.addons.ui_swing.Apple$1.com.dmdirc.addons.ui_swing.Apple$1__static_init
    //#Apple.java:: end of class: com.dmdirc.addons.ui_swing.Apple$1
    //#output(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent]
    //#output(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.getFilename()Ljava/lang/String;
    //#output(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.getSource()Ljava/lang/Object;
    //#output(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.isHandled()Z
    //#output(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.setHandled(Z)V
    //#output(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#post(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/Apple$ApplicationEvent] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.getFilename()Ljava/lang/String; == &getFilename
    //#post(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.getSource()Ljava/lang/Object; == &getSource
    //#post(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.isHandled()Z == &isHandled
    //#post(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.setHandled(Z)V == &setHandled
    //#post(com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#Apple.java:: end of method: com.dmdirc.addons.ui_swing.Apple$ApplicationEvent.com.dmdirc.addons.ui_swing.Apple$ApplicationEvent__static_init
    //#Apple.java:: end of class: com.dmdirc.addons.ui_swing.Apple$ApplicationEvent
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/Apple]
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleAbout(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleMenuBarEvent(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleOpenApplication(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleOpenFile(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleOpenURL(Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handlePreferences(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handlePrintFile(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleQuit(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleReopenApplication(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.processEvent(Lcom/dmdirc/actions/interfaces/ActionType;Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.registerOpenURLCallback()I
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.requestUserAttention(Z)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.setListener()Z
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.setMenuBar(Lcom/dmdirc/addons/ui_swing/components/MenuBar;)V
    //#output(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.setUISettings()V
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/Apple] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleAbout(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handleAbout
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleMenuBarEvent(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handleMenuBarEvent
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleOpenApplication(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handleOpenApplication
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleOpenFile(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handleOpenFile
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleOpenURL(Ljava/lang/String;)V == &handleOpenURL
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handlePreferences(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handlePreferences
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handlePrintFile(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handlePrintFile
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleQuit(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handleQuit
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.handleReopenApplication(Lcom/dmdirc/addons/ui_swing/Apple$ApplicationEvent;)V == &handleReopenApplication
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; == &invoke
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.processEvent(Lcom/dmdirc/actions/interfaces/ActionType;Ljava/lang/StringBuffer;[Ljava/lang/Object;)V == &processEvent
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.registerOpenURLCallback()I == &registerOpenURLCallback
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.requestUserAttention(Z)V == &requestUserAttention
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.setListener()Z == &setListener
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.setMenuBar(Lcom/dmdirc/addons/ui_swing/components/MenuBar;)V == &setMenuBar
    //#post(com.dmdirc.addons.ui_swing.Apple__static_init): __Dispatch_Table.setUISettings()V == &setUISettings
    //#Apple.java:: end of method: com.dmdirc.addons.ui_swing.Apple.com.dmdirc.addons.ui_swing.Apple__static_init
    //#Apple.java:: end of class: com.dmdirc.addons.ui_swing.Apple
