//# 0 errors, 1,146 messages
//#
/*
    //#ChannelSettingsDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#ChannelSettingsDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__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.dialogs.channelsetting;

import com.dmdirc.Channel;
import com.dmdirc.config.Identity;
import com.dmdirc.config.IdentityManager;
import com.dmdirc.addons.ui_swing.UIUtilities;
import com.dmdirc.addons.ui_swing.components.StandardDialog;
import com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel;
import com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel.OptionType;

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

import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.WindowConstants;

import net.miginfocom.swing.MigLayout;

/**
 * Allows the user to modify channel settings (modes, topics, etc).
 */
public final class ChannelSettingsDialog extends StandardDialog implements ActionListener {

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 8;

    /** Channel settings dialogs, semi singleton use. */
    private static volatile ChannelSettingsDialog me;

    /** The channel object that this dialog belongs to. */
    private final Channel channel;

    /** Tabbed pane. */
    private JTabbedPane tabbedPane;

    /** Client settings panel. */
    private SettingsPanel channelSettingsPane;

    /** List modes panel. */
    private ChannelModesPane channelModesPane;

    /** List modes panel. */
    private TopicPane topicModesPane;

    /** List modes panel. */
    private ChannelListModesPane channelListModesPane;

    /** Channel identity file. */
    private final Identity identity;

    /**
     * Creates a new instance of ChannelSettingsDialog.
     *
     * @param newChannel The channel object that we're editing settings for
     */
    private ChannelSettingsDialog(final Channel newChannel, 
            final Window parentWindow) {
        super(parentWindow, ModalityType.MODELESS);
    //#ChannelSettingsDialog.java:87: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#ChannelSettingsDialog.java:87: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): newChannel
    //#input(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): parentWindow
    //#input(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): this.channel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): this.identity
    //#pre[1] (void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): newChannel != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): com.dmdirc.Channel:getChannelInfo(...)@90 != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): com.dmdirc.Channel:getServer(...)@90 != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): init'ed(java.awt.Dialog$ModalityType.MODELESS)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): this.channel == newChannel
    //#post(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): this.channel != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): init'ed(this.identity)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton

        channel = newChannel;
        identity = IdentityManager.getChannelConfig(channel.getServer().
    //#ChannelSettingsDialog.java:90: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.Channel:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: Server com.dmdirc.Channel:getServer()
    //#ChannelSettingsDialog.java:90: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.Server:getNetwork()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: String com.dmdirc.Server:getNetwork()
    //#ChannelSettingsDialog.java:90: Warning: method not available - call not analyzed
    //#    call on ChannelInfo com.dmdirc.Channel:getChannelInfo()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: ChannelInfo com.dmdirc.Channel:getChannelInfo()
    //#ChannelSettingsDialog.java:90: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ChannelInfo:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ChannelInfo:getName()
    //#ChannelSettingsDialog.java:90: Warning: method not available - call not analyzed
    //#    call on Identity com.dmdirc.config.IdentityManager:getChannelConfig(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: Identity com.dmdirc.config.IdentityManager:getChannelConfig(String, String)
                getNetwork(), channel.getChannelInfo().getName());

        initComponents();
    //#ChannelSettingsDialog.java:93: Warning: call too complex - analysis skipped
    //#    call on void initComponents()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: void initComponents()
        initListeners();
    }
    //#ChannelSettingsDialog.java:95: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog(Channel, Window)

    /**
     * Creates the dialog if one doesn't exist, and displays it.
     *
     * @param channel The channel object that we're editing settings for
     * @param parentWindow Parent window
     */
    public static void showChannelSettingsDialog(
            final Channel channel, final Window parentWindow) {
        me = getChannelSettingsDialog(channel, parentWindow);
    //#ChannelSettingsDialog.java:105: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.showChannelSettingsDialog(Channel, Window)
    //#input(void showChannelSettingsDialog(Channel, Window)): __Class_Obj.__Lock
    //#input(void showChannelSettingsDialog(Channel, Window)): channel
    //#input(void showChannelSettingsDialog(Channel, Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void showChannelSettingsDialog(Channel, Window)): me
    //#input(void showChannelSettingsDialog(Channel, Window)): parentWindow
    //#output(void showChannelSettingsDialog(Channel, Window)): me
    //#output(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1) num objects
    //#output(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).__Tag
    //#output(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).channel
    //#output(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).identity
    //#new obj(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1)
    //#pre[2] (void showChannelSettingsDialog(Channel, Window)): init'ed(me)
    //#pre[1] (void showChannelSettingsDialog(Channel, Window)): (soft) channel != null
    //#post(void showChannelSettingsDialog(Channel, Window)): me == One-of{old me, &new ChannelSettingsDialog(getChannelSettingsDialog#1)}
    //#post(void showChannelSettingsDialog(Channel, Window)): me != null
    //#post(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1) num objects <= 1
    //#post(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog
    //#post(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).channel == channel
    //#post(void showChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).channel != null
    //#post(void showChannelSettingsDialog(Channel, Window)): init'ed(new ChannelSettingsDialog(getChannelSettingsDialog#1).identity)
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.Server:getNetwork
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getName
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.config.IdentityManager:getChannelConfig
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:initComponents
    //#unanalyzed(void showChannelSettingsDialog(Channel, Window)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj

        me.pack();
    //#ChannelSettingsDialog.java:107: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:pack()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void showChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:pack()
        me.setLocationRelativeTo(parentWindow);
    //#ChannelSettingsDialog.java:108: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void showChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setLocationRelativeTo(Component)
        me.setVisible(true);
    //#ChannelSettingsDialog.java:109: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void showChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setVisible(bool)
        me.requestFocusInWindow();
    //#ChannelSettingsDialog.java:110: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:requestFocusInWindow()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void showChannelSettingsDialog(Channel, Window)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:requestFocusInWindow()
    }
    //#ChannelSettingsDialog.java:111: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.showChannelSettingsDialog(Channel, Window)

    /**
     * Returns the current instance of the ChannelSettingsDialog.
     *
     * @param channel The channel object that we're editing settings for
     * @param parentWindow Parent window
     *
     * @return The current ChannelSettingsDialog instance
     */
    public static ChannelSettingsDialog getChannelSettingsDialog(
            final Channel channel, final Window parentWindow) {
        synchronized (ChannelSettingsDialog.class) {
    //#ChannelSettingsDialog.java:123: method: ChannelSettingsDialog com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.getChannelSettingsDialog(Channel, Window)
    //#input(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): __Class_Obj.__Lock
    //#input(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): channel
    //#input(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): me
    //#input(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): parentWindow
    //#output(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): me
    //#output(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1) num objects
    //#output(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).__Tag
    //#output(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).channel
    //#output(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).identity
    //#output(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): return_value
    //#new obj(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1)
    //#pre[2] (ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): init'ed(me)
    //#pre[1] (ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): (soft) channel != null
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): me == One-of{old me, &new ChannelSettingsDialog(getChannelSettingsDialog#1)}
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): me != null
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): return_value == One-of{old me, &new ChannelSettingsDialog(getChannelSettingsDialog#1)}
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): return_value != null
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1) num objects <= 1
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).channel == channel
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): new ChannelSettingsDialog(getChannelSettingsDialog#1).channel != null
    //#post(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): init'ed(new ChannelSettingsDialog(getChannelSettingsDialog#1).identity)
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.Server:getNetwork
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getName
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:com.dmdirc.config.IdentityManager:getChannelConfig
    //#unanalyzed(ChannelSettingsDialog getChannelSettingsDialog(Channel, Window)): Effects-of-calling:initComponents
            if (me == null) {
                me = new ChannelSettingsDialog(channel, parentWindow);
            }
        }

        return me;
    //#ChannelSettingsDialog.java:129: end of method: ChannelSettingsDialog com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.getChannelSettingsDialog(Channel, Window)
    }

    /** Initialises the main UI components. */
    private void initComponents() {
        tabbedPane = new JTabbedPane();
    //#ChannelSettingsDialog.java:134: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initComponents()
    //#input(void initComponents()): " available "._tainted
    //#input(void initComponents()): " available"._tainted
    //#input(void initComponents()): " characters"._tainted
    //#input(void initComponents()): " list"._tainted
    //#input(void initComponents()): " mode"._tainted
    //#input(void initComponents()): " of "._tainted
    //#input(void initComponents()): " set (maximum of "._tainted
    //#input(void initComponents()): " set"._tainted
    //#input(void initComponents()): " too many characters"._tainted
    //#input(void initComponents()): ""._tainted
    //#input(void initComponents()): "&#10; on "._tainted
    //#input(void initComponents()): ")"._tainted
    //#input(void initComponents()): "0 of "._tainted
    //#input(void initComponents()): ": "._tainted
    //#input(void initComponents()): ": Unknown"._tainted
    //#input(void initComponents()): "; "._tainted
    //#input(void initComponents()): "Channel settings for "._tainted
    //#input(void initComponents()): "Mode "._tainted
    //#input(void initComponents()): "Set by "._tainted
    //#input(void initComponents()): "body { font-family: "._tainted
    //#input(void initComponents()): "enablemode"._tainted
    //#input(void initComponents()): "font-size: "._tainted
    //#input(void initComponents()): "mode"._tainted
    //#input(void initComponents()): "pt; }"._tainted
    //#input(void initComponents()): "s"._tainted
    //#input(void initComponents()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.CHECKBOX
    //#input(void initComponents()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.COLOUR
    //#input(void initComponents()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.SPINNER
    //#input(void initComponents()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.TEXTFIELD
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.com.dmdirc.logger.ErrorLevel.LOW
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java.awt.Color.BLACK
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java.awt.Color.RED
    //#input(void initComponents()): this
    //#input(void initComponents()): this.channel
    //#input(void initComponents()): this.channel._tainted
    //#input(void initComponents()): this.identity
    //#output(void initComponents()): new ArrayList(ChannelListModesPane#4) num objects
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1) num objects
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).__Tag
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).addListModeButton
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).channel
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).existingListItems
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesArray
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesMenu
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesPanel
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesPanels
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).modeCount
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).removeListModeButton
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).renderer
    //#output(void initComponents()): new ChannelListModesPane(initListModesTab#1).toggle
    //#output(void initComponents()): new ChannelModesPane(initIrcTab#1) num objects
    //#output(void initComponents()): new ChannelModesPane(initIrcTab#1).__Tag
    //#output(void initComponents()): new ChannelModesPane(initIrcTab#1).channel
    //#output(void initComponents()): new ChannelModesPane(initIrcTab#1).modeCheckBoxes
    //#output(void initComponents()): new ChannelModesPane(initIrcTab#1).modeInputs
    //#output(void initComponents()): new ExtendedListModeCellRenderer(ChannelListModesPane#1) num objects
    //#output(void initComponents()): new ExtendedListModeCellRenderer(ChannelListModesPane#1).__Tag
    //#output(void initComponents()): new Hashtable(initModesPanel#14) num objects
    //#output(void initComponents()): new Hashtable(initModesPanel#2) num objects
    //#output(void initComponents()): new JButton(ChannelListModesPane#8) num objects
    //#output(void initComponents()): new JButton(ChannelListModesPane#9) num objects
    //#output(void initComponents()): new JCheckBox(ChannelListModesPane#11) num objects
    //#output(void initComponents()): new JComboBox(ChannelListModesPane#6) num objects
    //#output(void initComponents()): new JComboBox(initTopicsPanel#3) num objects
    //#output(void initComponents()): new JLabel(ChannelListModesPane#10) num objects
    //#output(void initComponents()): new JLabel(initTopicsPanel#1) num objects
    //#output(void initComponents()): new JScrollPane(ChannelListModesPane#3) num objects
    //#output(void initComponents()): new JTabbedPane(initComponents#1) num objects
    //#output(void initComponents()): new ListModeCellRenderer(ChannelListModesPane#2) num objects
    //#output(void initComponents()): new ListModeCellRenderer(ChannelListModesPane#2).__Tag
    //#output(void initComponents()): new MapList(ChannelListModesPane#5) num objects
    //#output(void initComponents()): new SettingsPanel(initSettingsPanel#1) num objects
    //#output(void initComponents()): new SimpleAttributeSet(TextLabel#6) num objects
    //#output(void initComponents()): new TextAreaInputField(initTopicsPanel#2) num objects
    //#output(void initComponents()): new TextLabel(initTopicsPanel#5) num objects
    //#output(void initComponents()): new TextLabel(initTopicsPanel#5).__Tag
    //#output(void initComponents()): new TextLabel(initTopicsPanel#5).sas
    //#output(void initComponents()): new TopicPane(initTopicTab#1) num objects
    //#output(void initComponents()): new TopicPane(initTopicTab#1).__Tag
    //#output(void initComponents()): new TopicPane(initTopicTab#1).channel
    //#output(void initComponents()): new TopicPane(initTopicTab#1).parent
    //#output(void initComponents()): new TopicPane(initTopicTab#1).topicHistory
    //#output(void initComponents()): new TopicPane(initTopicTab#1).topicLengthLabel
    //#output(void initComponents()): new TopicPane(initTopicTab#1).topicLengthMax
    //#output(void initComponents()): new TopicPane(initTopicTab#1).topicText
    //#output(void initComponents()): new TopicPane(initTopicTab#1).topicWho
    //#output(void initComponents()): this.channelListModesPane
    //#output(void initComponents()): this.channelModesPane
    //#output(void initComponents()): this.channelSettingsPane
    //#output(void initComponents()): this.tabbedPane
    //#output(void initComponents()): this.topicModesPane
    //#new obj(void initComponents()): new ArrayList(ChannelListModesPane#4)
    //#new obj(void initComponents()): new ChannelListModesPane(initListModesTab#1)
    //#new obj(void initComponents()): new ChannelModesPane(initIrcTab#1)
    //#new obj(void initComponents()): new ExtendedListModeCellRenderer(ChannelListModesPane#1)
    //#new obj(void initComponents()): new Hashtable(initModesPanel#14)
    //#new obj(void initComponents()): new Hashtable(initModesPanel#2)
    //#new obj(void initComponents()): new JButton(ChannelListModesPane#8)
    //#new obj(void initComponents()): new JButton(ChannelListModesPane#9)
    //#new obj(void initComponents()): new JCheckBox(ChannelListModesPane#11)
    //#new obj(void initComponents()): new JComboBox(ChannelListModesPane#6)
    //#new obj(void initComponents()): new JComboBox(initTopicsPanel#3)
    //#new obj(void initComponents()): new JLabel(ChannelListModesPane#10)
    //#new obj(void initComponents()): new JLabel(initTopicsPanel#1)
    //#new obj(void initComponents()): new JScrollPane(ChannelListModesPane#3)
    //#new obj(void initComponents()): new JTabbedPane(initComponents#1)
    //#new obj(void initComponents()): new ListModeCellRenderer(ChannelListModesPane#2)
    //#new obj(void initComponents()): new MapList(ChannelListModesPane#5)
    //#new obj(void initComponents()): new SettingsPanel(initSettingsPanel#1)
    //#new obj(void initComponents()): new SimpleAttributeSet(TextLabel#6)
    //#new obj(void initComponents()): new TextAreaInputField(initTopicsPanel#2)
    //#new obj(void initComponents()): new TextLabel(initTopicsPanel#5)
    //#new obj(void initComponents()): new TopicPane(initTopicTab#1)
    //#pre[2] (void initComponents()): this.channel != null
    //#presumption(void initComponents()): com.dmdirc.Channel:getConfigManager(...)@155 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane(...)@142 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane(...)@143 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane(...)@144 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane(...)@145 != null
    //#post(void initComponents()): this.channelListModesPane == &new ChannelListModesPane(initListModesTab#1)
    //#post(void initComponents()): this.channelModesPane == &new ChannelModesPane(initIrcTab#1)
    //#post(void initComponents()): this.channelSettingsPane == &new SettingsPanel(initSettingsPanel#1)
    //#post(void initComponents()): this.tabbedPane == &new JTabbedPane(initComponents#1)
    //#post(void initComponents()): this.topicModesPane == &new TopicPane(initTopicTab#1)
    //#post(void initComponents()): new ArrayList(ChannelListModesPane#4) num objects == 1
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1) num objects == 1
    //#post(void initComponents()): new ChannelModesPane(initIrcTab#1) num objects == 1
    //#post(void initComponents()): new Hashtable(initModesPanel#14) num objects == 1
    //#post(void initComponents()): new Hashtable(initModesPanel#2) num objects == 1
    //#post(void initComponents()): new JButton(ChannelListModesPane#8) num objects == 1
    //#post(void initComponents()): new JButton(ChannelListModesPane#9) num objects == 1
    //#post(void initComponents()): new JCheckBox(ChannelListModesPane#11) num objects == 1
    //#post(void initComponents()): new JComboBox(ChannelListModesPane#6) num objects == 1
    //#post(void initComponents()): new JComboBox(initTopicsPanel#3) num objects == 1
    //#post(void initComponents()): new JLabel(ChannelListModesPane#10) num objects == 1
    //#post(void initComponents()): new JLabel(initTopicsPanel#1) num objects == 1
    //#post(void initComponents()): new JScrollPane(ChannelListModesPane#3) num objects == 1
    //#post(void initComponents()): new JTabbedPane(initComponents#1) num objects == 1
    //#post(void initComponents()): new MapList(ChannelListModesPane#5) num objects == 1
    //#post(void initComponents()): new SettingsPanel(initSettingsPanel#1) num objects == 1
    //#post(void initComponents()): new SimpleAttributeSet(TextLabel#6) num objects == 1
    //#post(void initComponents()): new TextAreaInputField(initTopicsPanel#2) num objects == 1
    //#post(void initComponents()): new TextLabel(initTopicsPanel#5) num objects == 1
    //#post(void initComponents()): new TopicPane(initTopicTab#1) num objects == 1
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelListModesPane
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).addListModeButton == &new JButton(ChannelListModesPane#8)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).channel == this.channel
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).channel != null
    //#post(void initComponents()): new ChannelModesPane(initIrcTab#1).channel == new ChannelListModesPane(initListModesTab#1).channel
    //#post(void initComponents()): new TopicPane(initTopicTab#1).channel == new ChannelListModesPane(initListModesTab#1).channel
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).existingListItems == &new MapList(ChannelListModesPane#5)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesArray != null
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesMenu == &new JComboBox(ChannelListModesPane#6)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesPanel == &new JScrollPane(ChannelListModesPane#3)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).listModesPanels == &new ArrayList(ChannelListModesPane#4)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).modeCount == &new JLabel(ChannelListModesPane#10)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).removeListModeButton == &new JButton(ChannelListModesPane#9)
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).renderer == One-of{&new ExtendedListModeCellRenderer(ChannelListModesPane#1), &new ListModeCellRenderer(ChannelListModesPane#2)}
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).renderer in Addr_Set{&new ExtendedListModeCellRenderer(ChannelListModesPane#1),&new ListModeCellRenderer(ChannelListModesPane#2)}
    //#post(void initComponents()): new ChannelListModesPane(initListModesTab#1).toggle == &new JCheckBox(ChannelListModesPane#11)
    //#post(void initComponents()): new ChannelModesPane(initIrcTab#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelModesPane
    //#post(void initComponents()): new ChannelModesPane(initIrcTab#1).modeCheckBoxes == &new Hashtable(initModesPanel#2)
    //#post(void initComponents()): new ChannelModesPane(initIrcTab#1).modeInputs == &new Hashtable(initModesPanel#14)
    //#post(void initComponents()): new ExtendedListModeCellRenderer(ChannelListModesPane#1) num objects <= 1
    //#post(void initComponents()): init'ed(new ExtendedListModeCellRenderer(ChannelListModesPane#1).__Tag)
    //#post(void initComponents()): new ListModeCellRenderer(ChannelListModesPane#2) num objects <= 1
    //#post(void initComponents()): init'ed(new ListModeCellRenderer(ChannelListModesPane#2).__Tag)
    //#post(void initComponents()): new TextLabel(initTopicsPanel#5).__Tag == com/dmdirc/addons/ui_swing/components/text/TextLabel
    //#post(void initComponents()): new TextLabel(initTopicsPanel#5).sas == &new SimpleAttributeSet(TextLabel#6)
    //#post(void initComponents()): new TopicPane(initTopicTab#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane
    //#post(void initComponents()): new TopicPane(initTopicTab#1).parent == this
    //#post(void initComponents()): new TopicPane(initTopicTab#1).parent != null
    //#post(void initComponents()): new TopicPane(initTopicTab#1).topicHistory == &new JComboBox(initTopicsPanel#3)
    //#post(void initComponents()): new TopicPane(initTopicTab#1).topicLengthLabel == &new JLabel(initTopicsPanel#1)
    //#post(void initComponents()): init'ed(new TopicPane(initTopicTab#1).topicLengthMax)
    //#post(void initComponents()): new TopicPane(initTopicTab#1).topicText == &new TextAreaInputField(initTopicsPanel#2)
    //#post(void initComponents()): new TopicPane(initTopicTab#1).topicWho == &new TextLabel(initTopicsPanel#5)
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel:setForeground
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getText
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getTopic
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Topic:getClient
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Topic:getTime
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Date
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Topic:getTopic
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Channel:getTopics
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultComboBoxModel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:setPrototypeDisplayValue
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.ComboBoxModel:getSize
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setLineWrap
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setWrapStyleWord
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setRows
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setColumns
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Channel:getFrame
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputHandler
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputHandler:setTypes
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getActionMap
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.NoNewlinesPasteAction
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.ActionMap:put
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getInputMap
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.AbstractAction
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.InputMap:put
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getCtrlDownMask
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:addUndoManager
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:setVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:removeAll
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Server:getParser
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:get005
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.logger.Logger:userError
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTabbedPane:addTab
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getBoolChanModes
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeStr
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetOnlyChanModes
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetUnsetChanModes
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Hashtable
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:toCharArray
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:subSequence
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:contains
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.Channel:getConfigManager
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.ConfigManager:hasOptionString
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox:setMargin
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox:setToolTipText
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:isUserSettable
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeParam
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getCheckboxComponent
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getValueComponent
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.BorderFactory:createTitledBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:add
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:setVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setHorizontalScrollBarPolicy
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:getViewport
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JViewport:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:getSelectedIndex
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.ListModel:getSize
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getMaxListModes
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListModel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList:setCellRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList:setVisibleRowCount
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:isVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.util.MapList:clear
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getListModeParam
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListModel:removeAllElements
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListModel:addElement
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListCellRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getListChanModes
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JCheckBox:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:setVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption

        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    //#ChannelSettingsDialog.java:136: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setDefaultCloseOperation(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setDefaultCloseOperation(int)
        setTitle("Channel settings for " + channel);
    //#ChannelSettingsDialog.java:137: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setTitle(String)
        setResizable(false);
    //#ChannelSettingsDialog.java:138: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setResizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:setResizable(bool)

        orderButtons(new JButton(), new JButton());
    //#ChannelSettingsDialog.java:140: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:orderButtons(JButton, JButton)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:orderButtons(JButton, JButton)

        getContentPane().setLayout(new MigLayout("fill, wrap 1, ins panel, hmax 80sp"));
    //#ChannelSettingsDialog.java:142: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#ChannelSettingsDialog.java:142: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
        getContentPane().add(tabbedPane, "growy, pushy, wmin 460, wmax 460");
    //#ChannelSettingsDialog.java:143: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
        getContentPane().add(getLeftButton(), "split 3, right");
    //#ChannelSettingsDialog.java:144: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#ChannelSettingsDialog.java:144: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getLeftButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getLeftButton()
        getContentPane().add(getRightButton(), "right");
    //#ChannelSettingsDialog.java:145: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getContentPane()
    //#ChannelSettingsDialog.java:145: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getRightButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getRightButton()

        initTopicTab();

        initIrcTab();

        initListModesTab();

        initSettingsTab();

        tabbedPane.setSelectedIndex(channel.getConfigManager().
    //#ChannelSettingsDialog.java:155: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.Channel:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: ConfigManager com.dmdirc.Channel:getConfigManager()
    //#ChannelSettingsDialog.java:155: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.config.ConfigManager:getOptionInt(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: int com.dmdirc.config.ConfigManager:getOptionInt(String, String)
                getOptionInt("dialogstate", "channelsettingsdialog"));
    }
    //#ChannelSettingsDialog.java:157: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initComponents()

    /** Initialises the Topic tab. */
    private void initTopicTab() {
        topicModesPane = new TopicPane(channel, this);
    //#ChannelSettingsDialog.java:161: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initTopicTab()
    //#input(void initTopicTab()): " available "._tainted
    //#input(void initTopicTab()): " available"._tainted
    //#input(void initTopicTab()): " characters"._tainted
    //#input(void initTopicTab()): " of "._tainted
    //#input(void initTopicTab()): " too many characters"._tainted
    //#input(void initTopicTab()): "&#10; on "._tainted
    //#input(void initTopicTab()): "0 of "._tainted
    //#input(void initTopicTab()): "; "._tainted
    //#input(void initTopicTab()): "Set by "._tainted
    //#input(void initTopicTab()): "body { font-family: "._tainted
    //#input(void initTopicTab()): "font-size: "._tainted
    //#input(void initTopicTab()): "pt; }"._tainted
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.com.dmdirc.logger.ErrorLevel.LOW
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java.awt.Color.BLACK
    //#input(void initTopicTab()): com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane.java.awt.Color.RED
    //#input(void initTopicTab()): this
    //#input(void initTopicTab()): this.channel
    //#input(void initTopicTab()): this.tabbedPane
    //#output(void initTopicTab()): new JComboBox(initTopicsPanel#3) num objects
    //#output(void initTopicTab()): new JLabel(initTopicsPanel#1) num objects
    //#output(void initTopicTab()): new SimpleAttributeSet(TextLabel#6) num objects
    //#output(void initTopicTab()): new TextAreaInputField(initTopicsPanel#2) num objects
    //#output(void initTopicTab()): new TextLabel(initTopicsPanel#5) num objects
    //#output(void initTopicTab()): new TextLabel(initTopicsPanel#5).__Tag
    //#output(void initTopicTab()): new TextLabel(initTopicsPanel#5).sas
    //#output(void initTopicTab()): new TopicPane(initTopicTab#1) num objects
    //#output(void initTopicTab()): this.topicModesPane.__Tag
    //#output(void initTopicTab()): this.topicModesPane.channel
    //#output(void initTopicTab()): this.topicModesPane.parent
    //#output(void initTopicTab()): this.topicModesPane.topicHistory
    //#output(void initTopicTab()): this.topicModesPane.topicLengthLabel
    //#output(void initTopicTab()): this.topicModesPane.topicLengthMax
    //#output(void initTopicTab()): this.topicModesPane.topicText
    //#output(void initTopicTab()): this.topicModesPane.topicWho
    //#output(void initTopicTab()): this.topicModesPane
    //#new obj(void initTopicTab()): new JComboBox(initTopicsPanel#3)
    //#new obj(void initTopicTab()): new JLabel(initTopicsPanel#1)
    //#new obj(void initTopicTab()): new SimpleAttributeSet(TextLabel#6)
    //#new obj(void initTopicTab()): new TextAreaInputField(initTopicsPanel#2)
    //#new obj(void initTopicTab()): new TextLabel(initTopicsPanel#5)
    //#new obj(void initTopicTab()): new TopicPane(initTopicTab#1)
    //#pre[2] (void initTopicTab()): this.channel != null
    //#pre[3] (void initTopicTab()): this.tabbedPane != null
    //#post(void initTopicTab()): this.topicModesPane == &new TopicPane(initTopicTab#1)
    //#post(void initTopicTab()): new JComboBox(initTopicsPanel#3) num objects == 1
    //#post(void initTopicTab()): new JLabel(initTopicsPanel#1) num objects == 1
    //#post(void initTopicTab()): new SimpleAttributeSet(TextLabel#6) num objects == 1
    //#post(void initTopicTab()): new TextAreaInputField(initTopicsPanel#2) num objects == 1
    //#post(void initTopicTab()): new TextLabel(initTopicsPanel#5) num objects == 1
    //#post(void initTopicTab()): new TopicPane(initTopicTab#1) num objects == 1
    //#post(void initTopicTab()): new TextLabel(initTopicsPanel#5).__Tag == com/dmdirc/addons/ui_swing/components/text/TextLabel
    //#post(void initTopicTab()): new TextLabel(initTopicsPanel#5).sas == &new SimpleAttributeSet(TextLabel#6)
    //#post(void initTopicTab()): this.topicModesPane.__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/TopicPane
    //#post(void initTopicTab()): this.topicModesPane.channel == this.channel
    //#post(void initTopicTab()): this.topicModesPane.channel != null
    //#post(void initTopicTab()): this.topicModesPane.parent == this
    //#post(void initTopicTab()): this.topicModesPane.parent != null
    //#post(void initTopicTab()): this.topicModesPane.topicHistory == &new JComboBox(initTopicsPanel#3)
    //#post(void initTopicTab()): this.topicModesPane.topicLengthLabel == &new JLabel(initTopicsPanel#1)
    //#post(void initTopicTab()): init'ed(this.topicModesPane.topicLengthMax)
    //#post(void initTopicTab()): this.topicModesPane.topicText == &new TextAreaInputField(initTopicsPanel#2)
    //#post(void initTopicTab()): this.topicModesPane.topicWho == &new TextLabel(initTopicsPanel#5)
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JLabel:setForeground
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getText
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getTopic
    //#unanalyzed(void initTopicTab()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:setLayout
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:add
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Topic:getClient
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Topic:getTime
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.util.Date
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Topic:getTopic
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setText
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Channel:getTopics
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.DefaultComboBoxModel
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JComboBox:setPrototypeDisplayValue
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.ComboBoxModel:getSize
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setLineWrap
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setWrapStyleWord
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setRows
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:setColumns
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Channel:getFrame
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputHandler
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingInputHandler:setTypes
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getActionMap
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.NoNewlinesPasteAction
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.ActionMap:put
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getInputMap
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.AbstractAction
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.InputMap:put
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getCtrlDownMask
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:addUndoManager
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:setVisible
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:removeAll
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getDocument
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JComboBox:addActionListener
    //#unanalyzed(void initTopicTab()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.TopicPane:setOpaque
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.Server:getParser
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:get005
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void initTopicTab()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void initTopicTab()): Effects-of-calling:com.dmdirc.logger.Logger:userError
        tabbedPane.addTab("Topic", topicModesPane);
    }
    //#ChannelSettingsDialog.java:163: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initTopicTab()

    /** Initialises the IRC Settings tab. */
    private void initIrcTab() {
        channelModesPane = new ChannelModesPane(channel);
    //#ChannelSettingsDialog.java:167: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initIrcTab()
    //#input(void initIrcTab()): ": "._tainted
    //#input(void initIrcTab()): ": Unknown"._tainted
    //#input(void initIrcTab()): "Mode "._tainted
    //#input(void initIrcTab()): "enablemode"._tainted
    //#input(void initIrcTab()): "mode"._tainted
    //#input(void initIrcTab()): this
    //#input(void initIrcTab()): this.channel
    //#input(void initIrcTab()): this.tabbedPane
    //#output(void initIrcTab()): new ChannelModesPane(initIrcTab#1) num objects
    //#output(void initIrcTab()): this.channelModesPane.__Tag
    //#output(void initIrcTab()): this.channelModesPane.channel
    //#output(void initIrcTab()): this.channelModesPane.modeCheckBoxes
    //#output(void initIrcTab()): this.channelModesPane.modeInputs
    //#output(void initIrcTab()): new Hashtable(initModesPanel#14) num objects
    //#output(void initIrcTab()): new Hashtable(initModesPanel#2) num objects
    //#output(void initIrcTab()): this.channelModesPane
    //#new obj(void initIrcTab()): new ChannelModesPane(initIrcTab#1)
    //#new obj(void initIrcTab()): new Hashtable(initModesPanel#14)
    //#new obj(void initIrcTab()): new Hashtable(initModesPanel#2)
    //#pre[2] (void initIrcTab()): this.channel != null
    //#pre[3] (void initIrcTab()): this.tabbedPane != null
    //#presumption(void initIrcTab()): javax.swing.JScrollPane:getViewport(...)@172 != null
    //#post(void initIrcTab()): this.channelModesPane == &new ChannelModesPane(initIrcTab#1)
    //#post(void initIrcTab()): new ChannelModesPane(initIrcTab#1) num objects == 1
    //#post(void initIrcTab()): new Hashtable(initModesPanel#14) num objects == 1
    //#post(void initIrcTab()): new Hashtable(initModesPanel#2) num objects == 1
    //#post(void initIrcTab()): this.channelModesPane.__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelModesPane
    //#post(void initIrcTab()): this.channelModesPane.channel == this.channel
    //#post(void initIrcTab()): this.channelModesPane.channel != null
    //#post(void initIrcTab()): this.channelModesPane.modeCheckBoxes == &new Hashtable(initModesPanel#2)
    //#post(void initIrcTab()): this.channelModesPane.modeInputs == &new Hashtable(initModesPanel#14)
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.Server:getParser
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getBoolChanModes
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeStr
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetOnlyChanModes
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetUnsetChanModes
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.util.Hashtable
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:toCharArray
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:subSequence
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:contains
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.Channel:getConfigManager
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:hasOptionString
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JCheckBox:setMargin
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JCheckBox:setToolTipText
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JCheckBox:setOpaque
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:isUserSettable
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeParam
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel
    //#unanalyzed(void initIrcTab()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void initIrcTab()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getCheckboxComponent
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getValueComponent
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.BorderFactory:createTitledBorder
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void initIrcTab()): Effects-of-calling:javax.swing.JPanel:setOpaque
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:setLayout
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:add
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:setOpaque
    //#unanalyzed(void initIrcTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelModesPane:setVisible

        final JScrollPane channelModesSP = new JScrollPane(channelModesPane);
        channelModesSP.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        channelModesSP.setOpaque(UIUtilities.getTabbedPaneOpaque());
    //#ChannelSettingsDialog.java:171: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initIrcTab()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque()
        channelModesSP.getViewport().setOpaque(UIUtilities.getTabbedPaneOpaque());
    //#ChannelSettingsDialog.java:172: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initIrcTab()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque()
        channelModesSP.setBorder(null);

        tabbedPane.addTab("Channel Modes", channelModesSP);
    }
    //#ChannelSettingsDialog.java:176: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initIrcTab()

    /** Initialises the IRC Settings tab. */
    private void initListModesTab() {
        channelListModesPane = new ChannelListModesPane(channel);
    //#ChannelSettingsDialog.java:180: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initListModesTab()
    //#input(void initListModesTab()): " list"._tainted
    //#input(void initListModesTab()): " mode"._tainted
    //#input(void initListModesTab()): " set (maximum of "._tainted
    //#input(void initListModesTab()): " set"._tainted
    //#input(void initListModesTab()): ""._tainted
    //#input(void initListModesTab()): ")"._tainted
    //#input(void initListModesTab()): "mode"._tainted
    //#input(void initListModesTab()): "s"._tainted
    //#input(void initListModesTab()): this
    //#input(void initListModesTab()): this.channel
    //#input(void initListModesTab()): this.tabbedPane
    //#output(void initListModesTab()): new ArrayList(ChannelListModesPane#4) num objects
    //#output(void initListModesTab()): new ChannelListModesPane(initListModesTab#1) num objects
    //#output(void initListModesTab()): this.channelListModesPane.__Tag
    //#output(void initListModesTab()): this.channelListModesPane.addListModeButton
    //#output(void initListModesTab()): this.channelListModesPane.channel
    //#output(void initListModesTab()): this.channelListModesPane.existingListItems
    //#output(void initListModesTab()): this.channelListModesPane.listModesArray
    //#output(void initListModesTab()): this.channelListModesPane.listModesMenu
    //#output(void initListModesTab()): this.channelListModesPane.listModesPanel
    //#output(void initListModesTab()): this.channelListModesPane.listModesPanels
    //#output(void initListModesTab()): this.channelListModesPane.modeCount
    //#output(void initListModesTab()): this.channelListModesPane.removeListModeButton
    //#output(void initListModesTab()): this.channelListModesPane.renderer
    //#output(void initListModesTab()): this.channelListModesPane.toggle
    //#output(void initListModesTab()): new ExtendedListModeCellRenderer(ChannelListModesPane#1) num objects
    //#output(void initListModesTab()): new ExtendedListModeCellRenderer(ChannelListModesPane#1).__Tag
    //#output(void initListModesTab()): new JButton(ChannelListModesPane#8) num objects
    //#output(void initListModesTab()): new JButton(ChannelListModesPane#9) num objects
    //#output(void initListModesTab()): new JCheckBox(ChannelListModesPane#11) num objects
    //#output(void initListModesTab()): new JComboBox(ChannelListModesPane#6) num objects
    //#output(void initListModesTab()): new JLabel(ChannelListModesPane#10) num objects
    //#output(void initListModesTab()): new JScrollPane(ChannelListModesPane#3) num objects
    //#output(void initListModesTab()): new ListModeCellRenderer(ChannelListModesPane#2) num objects
    //#output(void initListModesTab()): new ListModeCellRenderer(ChannelListModesPane#2).__Tag
    //#output(void initListModesTab()): new MapList(ChannelListModesPane#5) num objects
    //#output(void initListModesTab()): this.channelListModesPane
    //#new obj(void initListModesTab()): new ArrayList(ChannelListModesPane#4)
    //#new obj(void initListModesTab()): new ChannelListModesPane(initListModesTab#1)
    //#new obj(void initListModesTab()): new ExtendedListModeCellRenderer(ChannelListModesPane#1)
    //#new obj(void initListModesTab()): new JButton(ChannelListModesPane#8)
    //#new obj(void initListModesTab()): new JButton(ChannelListModesPane#9)
    //#new obj(void initListModesTab()): new JCheckBox(ChannelListModesPane#11)
    //#new obj(void initListModesTab()): new JComboBox(ChannelListModesPane#6)
    //#new obj(void initListModesTab()): new JLabel(ChannelListModesPane#10)
    //#new obj(void initListModesTab()): new JScrollPane(ChannelListModesPane#3)
    //#new obj(void initListModesTab()): new ListModeCellRenderer(ChannelListModesPane#2)
    //#new obj(void initListModesTab()): new MapList(ChannelListModesPane#5)
    //#pre[2] (void initListModesTab()): this.channel != null
    //#pre[3] (void initListModesTab()): this.tabbedPane != null
    //#post(void initListModesTab()): this.channelListModesPane == &new ChannelListModesPane(initListModesTab#1)
    //#post(void initListModesTab()): new ArrayList(ChannelListModesPane#4) num objects == 1
    //#post(void initListModesTab()): new ChannelListModesPane(initListModesTab#1) num objects == 1
    //#post(void initListModesTab()): new JButton(ChannelListModesPane#8) num objects == 1
    //#post(void initListModesTab()): new JButton(ChannelListModesPane#9) num objects == 1
    //#post(void initListModesTab()): new JCheckBox(ChannelListModesPane#11) num objects == 1
    //#post(void initListModesTab()): new JComboBox(ChannelListModesPane#6) num objects == 1
    //#post(void initListModesTab()): new JLabel(ChannelListModesPane#10) num objects == 1
    //#post(void initListModesTab()): new JScrollPane(ChannelListModesPane#3) num objects == 1
    //#post(void initListModesTab()): new MapList(ChannelListModesPane#5) num objects == 1
    //#post(void initListModesTab()): this.channelListModesPane.__Tag == com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelListModesPane
    //#post(void initListModesTab()): this.channelListModesPane.addListModeButton == &new JButton(ChannelListModesPane#8)
    //#post(void initListModesTab()): this.channelListModesPane.channel == this.channel
    //#post(void initListModesTab()): this.channelListModesPane.channel != null
    //#post(void initListModesTab()): this.channelListModesPane.existingListItems == &new MapList(ChannelListModesPane#5)
    //#post(void initListModesTab()): this.channelListModesPane.listModesArray != null
    //#post(void initListModesTab()): this.channelListModesPane.listModesMenu == &new JComboBox(ChannelListModesPane#6)
    //#post(void initListModesTab()): this.channelListModesPane.listModesPanel == &new JScrollPane(ChannelListModesPane#3)
    //#post(void initListModesTab()): this.channelListModesPane.listModesPanels == &new ArrayList(ChannelListModesPane#4)
    //#post(void initListModesTab()): this.channelListModesPane.modeCount == &new JLabel(ChannelListModesPane#10)
    //#post(void initListModesTab()): this.channelListModesPane.removeListModeButton == &new JButton(ChannelListModesPane#9)
    //#post(void initListModesTab()): this.channelListModesPane.renderer == One-of{&new ExtendedListModeCellRenderer(ChannelListModesPane#1), &new ListModeCellRenderer(ChannelListModesPane#2)}
    //#post(void initListModesTab()): this.channelListModesPane.renderer in Addr_Set{&new ExtendedListModeCellRenderer(ChannelListModesPane#1),&new ListModeCellRenderer(ChannelListModesPane#2)}
    //#post(void initListModesTab()): this.channelListModesPane.toggle == &new JCheckBox(ChannelListModesPane#11)
    //#post(void initListModesTab()): new ExtendedListModeCellRenderer(ChannelListModesPane#1) num objects <= 1
    //#post(void initListModesTab()): init'ed(new ExtendedListModeCellRenderer(ChannelListModesPane#1).__Tag)
    //#post(void initListModesTab()): new ListModeCellRenderer(ChannelListModesPane#2) num objects <= 1
    //#post(void initListModesTab()): init'ed(new ListModeCellRenderer(ChannelListModesPane#2).__Tag)
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JComboBox:getSelectedIndex
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.ListModel:getSize
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.Server:getParser
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getMaxListModes
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.Channel:getConfigManager
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:hasOptionString
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.DefaultListModel
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JList
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JList:setCellRenderer
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JList:setVisibleRowCount
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JScrollPane:setVisible
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JScrollPane:isVisible
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.util.MapList:clear
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getListModeParam
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.DefaultListModel:removeAllElements
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.DefaultListModel:addElement
    //#unanalyzed(void initListModesTab()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:setLayout
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:add
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JComboBox:addActionListener
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JCheckBox:addActionListener
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:setOpaque
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.DefaultListCellRenderer
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getListChanModes
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.lang.String:toCharArray
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.DefaultComboBoxModel
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JCheckBox:setOpaque
    //#unanalyzed(void initListModesTab()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JCheckBox:setMargin
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void initListModesTab()): Effects-of-calling:javax.swing.JCheckBox:setBorder
    //#unanalyzed(void initListModesTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelListModesPane:setVisible
        tabbedPane.addTab("List Modes", channelListModesPane);
    }
    //#ChannelSettingsDialog.java:182: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initListModesTab()

    /** Initialises the channel Settings (identities) tab. */
    private void initSettingsTab() {
        initSettingsPanel();
    //#ChannelSettingsDialog.java:186: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initSettingsTab()
    //#input(void initSettingsTab()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.CHECKBOX
    //#input(void initSettingsTab()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.COLOUR
    //#input(void initSettingsTab()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.SPINNER
    //#input(void initSettingsTab()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.TEXTFIELD
    //#input(void initSettingsTab()): this
    //#input(void initSettingsTab()): this.identity
    //#input(void initSettingsTab()): this.tabbedPane
    //#output(void initSettingsTab()): new SettingsPanel(initSettingsPanel#1) num objects
    //#output(void initSettingsTab()): this.channelSettingsPane
    //#new obj(void initSettingsTab()): new SettingsPanel(initSettingsPanel#1)
    //#pre[3] (void initSettingsTab()): this.tabbedPane != null
    //#post(void initSettingsTab()): this.channelSettingsPane == &new SettingsPanel(initSettingsPanel#1)
    //#post(void initSettingsTab()): new SettingsPanel(initSettingsPanel#1) num objects == 1
    //#unanalyzed(void initSettingsTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel
    //#unanalyzed(void initSettingsTab()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption

        tabbedPane.addTab("Client Settings", channelSettingsPane);
    }
    //#ChannelSettingsDialog.java:189: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initSettingsTab()

    /** Initialises the channel settings. */
    private void initSettingsPanel() {
        channelSettingsPane = new SettingsPanel(identity,
    //#ChannelSettingsDialog.java:193: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initSettingsPanel()
    //#ChannelSettingsDialog.java:193: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel(Identity, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel(Identity, String)
    //#input(void initSettingsPanel()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.CHECKBOX
    //#input(void initSettingsPanel()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.COLOUR
    //#input(void initSettingsPanel()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.SPINNER
    //#input(void initSettingsPanel()): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.TEXTFIELD
    //#input(void initSettingsPanel()): this
    //#input(void initSettingsPanel()): this.identity
    //#output(void initSettingsPanel()): new SettingsPanel(initSettingsPanel#1) num objects
    //#output(void initSettingsPanel()): this.channelSettingsPane
    //#new obj(void initSettingsPanel()): new SettingsPanel(initSettingsPanel#1)
    //#presumption(void initSettingsPanel()): init'ed(com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.CHECKBOX)
    //#presumption(void initSettingsPanel()): init'ed(com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.COLOUR)
    //#presumption(void initSettingsPanel()): init'ed(com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.SPINNER)
    //#presumption(void initSettingsPanel()): init'ed(com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType.TEXTFIELD)
    //#post(void initSettingsPanel()): this.channelSettingsPane == &new SettingsPanel(initSettingsPanel#1)
    //#post(void initSettingsPanel()): new SettingsPanel(initSettingsPanel#1) num objects == 1
                "These settings are specific to this channel on this network," +
                " any settings specified here will overwrite global settings");

        channelSettingsPane.addOption("channel.splitusermodes",
    //#ChannelSettingsDialog.java:197: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Split user modes", OptionType.CHECKBOX);
        channelSettingsPane.addOption("channel.sendwho",
    //#ChannelSettingsDialog.java:199: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Send channel WHOs", OptionType.CHECKBOX);
        channelSettingsPane.addOption("channel.showmodeprefix",
    //#ChannelSettingsDialog.java:201: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Show mode prefixes", OptionType.CHECKBOX);
        channelSettingsPane.addOption("ui.shownickcoloursinnicklist",
    //#ChannelSettingsDialog.java:203: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Show colours in nicklist", OptionType.CHECKBOX);
        channelSettingsPane.addOption("ui.shownickcoloursintext",
    //#ChannelSettingsDialog.java:205: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Show colours in textpane", OptionType.CHECKBOX);
        channelSettingsPane.addOption("general.cyclemessage",
    //#ChannelSettingsDialog.java:207: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Cycle message", OptionType.TEXTFIELD);
        channelSettingsPane.addOption("general.kickmessage",
    //#ChannelSettingsDialog.java:209: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Kick message", OptionType.TEXTFIELD);
        channelSettingsPane.addOption("general.partmessage",
    //#ChannelSettingsDialog.java:211: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Part message", OptionType.TEXTFIELD);
        channelSettingsPane.addOption("ui.backgroundcolour",
    //#ChannelSettingsDialog.java:213: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Background colour", OptionType.COLOUR);
        channelSettingsPane.addOption("ui.foregroundcolour",
    //#ChannelSettingsDialog.java:215: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Foreground colour", OptionType.COLOUR);
        channelSettingsPane.addOption("ui.frameBufferSize",
    //#ChannelSettingsDialog.java:217: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Frame buffer size", OptionType.SPINNER);
        channelSettingsPane.addOption("ui.textPaneFontName", "Textpane font name",
    //#ChannelSettingsDialog.java:219: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                OptionType.TEXTFIELD);
        //TODO issue 2251
        //channelSettingsPane.addOption("ui.textPaneFontSize", "Textpane font size",
        //        OptionType.SPINNER);
        channelSettingsPane.addOption("ui.inputbuffersize",
    //#ChannelSettingsDialog.java:224: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Input buffer size", OptionType.SPINNER);
        channelSettingsPane.addOption("ui.inputbackgroundcolour",
    //#ChannelSettingsDialog.java:226: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Inputfield background colour", OptionType.COLOUR);
        channelSettingsPane.addOption("ui.inputforegroundcolour",
    //#ChannelSettingsDialog.java:228: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Inputfield foreground colour", OptionType.COLOUR);
        channelSettingsPane.addOption("ui.nicklistbackgroundcolour",
    //#ChannelSettingsDialog.java:230: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Nicklist background colour", OptionType.COLOUR);
        channelSettingsPane.addOption("ui.nicklistforegroundcolour",
    //#ChannelSettingsDialog.java:232: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                "Nicklist foreground colour", OptionType.COLOUR);
        channelSettingsPane.addOption("channel.encoding", "Encoding",
    //#ChannelSettingsDialog.java:234: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initSettingsPanel()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:addOption(String, String, SettingsPanel$OptionType)
                OptionType.TEXTFIELD);
    }
    //#ChannelSettingsDialog.java:236: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initSettingsPanel()

    /** Initialises listeners for this dialog. */
    private void initListeners() {
        getOkButton().addActionListener(this);
    //#ChannelSettingsDialog.java:240: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initListeners()
    //#ChannelSettingsDialog.java:240: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton()
    //#input(void initListeners()): this
    //#presumption(void initListeners()): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton(...)@241 != null
    //#presumption(void initListeners()): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton(...)@240 != null
        getCancelButton().addActionListener(this);
    //#ChannelSettingsDialog.java:241: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void initListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton()
    }
    //#ChannelSettingsDialog.java:242: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.initListeners()

    /**
     * Called whenever the user clicks on one of the two buttons.
     *
     * @param actionEvent Event generated by this action
     */
    @Override
    public void actionPerformed(final ActionEvent actionEvent) {
        if (getOkButton().equals(actionEvent.getSource())) {
    //#ChannelSettingsDialog.java:251: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.actionPerformed(ActionEvent)
    //#ChannelSettingsDialog.java:251: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton()
    //#input(void actionPerformed(ActionEvent)): actionEvent
    //#input(void actionPerformed(ActionEvent)): me
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.channel
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.existingListItems
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.listModesArray
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.listModesArray.length
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.listModesArray[0..4_294_967_295]
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.listModesPanels
    //#input(void actionPerformed(ActionEvent)): this.channelListModesPane.toggle
    //#input(void actionPerformed(ActionEvent)): this.channelModesPane
    //#input(void actionPerformed(ActionEvent)): this.channelModesPane.channel
    //#input(void actionPerformed(ActionEvent)): this.channelModesPane.modeCheckBoxes
    //#input(void actionPerformed(ActionEvent)): this.channelModesPane.modeInputs
    //#input(void actionPerformed(ActionEvent)): this.channelSettingsPane
    //#input(void actionPerformed(ActionEvent)): this.identity
    //#input(void actionPerformed(ActionEvent)): this.tabbedPane
    //#input(void actionPerformed(ActionEvent)): this.topicModesPane
    //#input(void actionPerformed(ActionEvent)): this.topicModesPane.channel
    //#input(void actionPerformed(ActionEvent)): this.topicModesPane.topicText
    //#output(void actionPerformed(ActionEvent)): me
    //#pre[1] (void actionPerformed(ActionEvent)): actionEvent != null
    //#pre[3] (void actionPerformed(ActionEvent)): (soft) init'ed(me)
    //#pre[5] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane != null
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane.channel != null
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane.existingListItems != null
    //#pre[8] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane.listModesArray != null
    //#pre[9] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane.listModesArray.length <= 4_294_967_295
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) init'ed(this.channelListModesPane.listModesArray[0..4_294_967_295])
    //#pre[11] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane.listModesPanels != null
    //#pre[12] (void actionPerformed(ActionEvent)): (soft) this.channelListModesPane.toggle != null
    //#pre[13] (void actionPerformed(ActionEvent)): (soft) this.channelModesPane != null
    //#pre[14] (void actionPerformed(ActionEvent)): (soft) this.channelModesPane.channel != null
    //#pre[15] (void actionPerformed(ActionEvent)): (soft) this.channelModesPane.modeCheckBoxes != null
    //#pre[16] (void actionPerformed(ActionEvent)): (soft) this.channelModesPane.modeInputs != null
    //#pre[17] (void actionPerformed(ActionEvent)): (soft) this.channelSettingsPane != null
    //#pre[18] (void actionPerformed(ActionEvent)): (soft) this.identity != null
    //#pre[19] (void actionPerformed(ActionEvent)): (soft) this.tabbedPane != null
    //#pre[20] (void actionPerformed(ActionEvent)): (soft) this.topicModesPane != null
    //#pre[21] (void actionPerformed(ActionEvent)): (soft) this.topicModesPane.channel != null
    //#pre[22] (void actionPerformed(ActionEvent)): (soft) this.topicModesPane.topicText != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton(...)@253 != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getOkButton(...)@251 != null
    //#post(void actionPerformed(ActionEvent)): me == One-of{old me, null}
    //#post(void actionPerformed(ActionEvent)): init'ed(me)
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getTopic
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.Server:getParser
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getBoolChanModes
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeStr
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetOnlyChanModes
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetUnsetChanModes
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:toCharArray
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:subSequence
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:contains
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeParam
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox:isSelected
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:alterMode
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getState
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getValue
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:sendModes
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.Channel:setTopic
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:save
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.DefaultListModel:elements
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Enumeration:hasMoreElements
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Enumeration:nextElement
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:remove
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.parser.irc.ChannelListModeItem:getItem
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.config.IdentityManager:getConfigIdentity
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.config.Identity:setOption
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTabbedPane:getSelectedIndex
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:valueOf
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@251: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@253: {0}, {1}
            save();
        } else if (getCancelButton().equals(actionEvent.getSource())) {
    //#ChannelSettingsDialog.java:253: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog:getCancelButton()
            dispose();
        }
    }
    //#ChannelSettingsDialog.java:256: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.actionPerformed(ActionEvent)

    /** Saves the settings. */
    protected void save() {
        channelModesPane.setChangedBooleanModes();
    //#ChannelSettingsDialog.java:260: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.save()
    //#input(void save()): me
    //#input(void save()): this
    //#input(void save()): this.channelListModesPane
    //#input(void save()): this.channelListModesPane.channel
    //#input(void save()): this.channelListModesPane.existingListItems
    //#input(void save()): this.channelListModesPane.listModesArray
    //#input(void save()): this.channelListModesPane.listModesArray.length
    //#input(void save()): this.channelListModesPane.listModesArray[0..4_294_967_295]
    //#input(void save()): this.channelListModesPane.listModesPanels
    //#input(void save()): this.channelListModesPane.toggle
    //#input(void save()): this.channelModesPane
    //#input(void save()): this.channelModesPane.channel
    //#input(void save()): this.channelModesPane.modeCheckBoxes
    //#input(void save()): this.channelModesPane.modeInputs
    //#input(void save()): this.channelSettingsPane
    //#input(void save()): this.identity
    //#input(void save()): this.tabbedPane
    //#input(void save()): this.topicModesPane
    //#input(void save()): this.topicModesPane.channel
    //#input(void save()): this.topicModesPane.topicText
    //#output(void save()): me
    //#pre[2] (void save()): init'ed(me)
    //#pre[4] (void save()): this.channelListModesPane != null
    //#pre[5] (void save()): this.channelListModesPane.channel != null
    //#pre[7] (void save()): this.channelListModesPane.listModesArray != null
    //#pre[8] (void save()): this.channelListModesPane.listModesArray.length <= 4_294_967_295
    //#pre[11] (void save()): this.channelListModesPane.toggle != null
    //#pre[12] (void save()): this.channelModesPane != null
    //#pre[13] (void save()): this.channelModesPane.channel != null
    //#pre[16] (void save()): this.channelSettingsPane != null
    //#pre[17] (void save()): this.identity != null
    //#pre[18] (void save()): this.tabbedPane != null
    //#pre[19] (void save()): this.topicModesPane != null
    //#pre[20] (void save()): this.topicModesPane.channel != null
    //#pre[21] (void save()): this.topicModesPane.topicText != null
    //#pre[6] (void save()): (soft) this.channelListModesPane.existingListItems != null
    //#pre[9] (void save()): (soft) init'ed(this.channelListModesPane.listModesArray[0..4_294_967_295])
    //#pre[10] (void save()): (soft) this.channelListModesPane.listModesPanels != null
    //#pre[14] (void save()): (soft) this.channelModesPane.modeCheckBoxes != null
    //#pre[15] (void save()): (soft) this.channelModesPane.modeInputs != null
    //#post(void save()): me == null
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TextAreaInputField:getText
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.Channel:getChannelInfo
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getTopic
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.Channel:getServer
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.Server:getParser
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getBoolChanModes
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeStr
    //#unanalyzed(void save()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetOnlyChanModes
    //#unanalyzed(void save()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getSetUnsetChanModes
    //#unanalyzed(void save()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:toCharArray
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:subSequence
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:contains
    //#unanalyzed(void save()): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:getModeParam
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void save()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox:isSelected
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:alterMode
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getState
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ParamModePanel:getValue
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.ChannelInfo:sendModes
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.Channel:setTopic
    //#unanalyzed(void save()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.DefaultListModel:elements
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void save()): Effects-of-calling:java.util.Enumeration:hasMoreElements
    //#unanalyzed(void save()): Effects-of-calling:java.util.Enumeration:nextElement
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void save()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map:remove
    //#unanalyzed(void save()): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.parser.irc.ChannelListModeItem:getItem
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.IdentityManager:getConfigIdentity
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.Identity:setOption
        topicModesPane.setChangedTopic();
        channelSettingsPane.save();
    //#ChannelSettingsDialog.java:262: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:save()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel:save()
        channelListModesPane.save();

        identity.setOption("dialogstate", "channelsettingsdialog",
    //#ChannelSettingsDialog.java:265: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.Identity:setOption(String, String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.config.Identity:setOption(String, String, String)
                String.valueOf(tabbedPane.getSelectedIndex()));

        dispose();
    }
    //#ChannelSettingsDialog.java:269: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.save()
    
    /** {@inheritDoc} */
    @Override
    public void dispose() {
        if (me == null) {
    //#ChannelSettingsDialog.java:274: method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.dispose()
    //#input(void dispose()): me
    //#input(void dispose()): me.__Lock
    //#input(void dispose()): this
    //#output(void dispose()): me
    //#pre[1] (void dispose()): init'ed(me)
    //#post(void dispose()): me == null
    //#test_vector(void dispose()): me: Inverse{null}, Addr_Set{null}
            return;
        }
        synchronized (me) {
            super.dispose();
    //#ChannelSettingsDialog.java:278: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
    //#    method: void dispose()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
            me = null;
        }
    }
    //#ChannelSettingsDialog.java:281: end of method: void com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.dispose()
}
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog]
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.dispose()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initIrcTab()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initListModesTab()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initListeners()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initSettingsPanel()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initSettingsTab()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initTopicTab()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.save()V
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/channelsetting/ChannelSettingsDialog] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.dispose()V == &dispose
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initIrcTab()V == &initIrcTab
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initListModesTab()V == &initListModesTab
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initListeners()V == &initListeners
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initSettingsPanel()V == &initSettingsPanel
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initSettingsTab()V == &initSettingsTab
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.initTopicTab()V == &initTopicTab
    //#post(com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init): __Dispatch_Table.save()V == &save
    //#ChannelSettingsDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog.com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog__static_init
    //#ChannelSettingsDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.channelsetting.ChannelSettingsDialog
