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

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

import com.dmdirc.ui.IconManager;
import com.dmdirc.addons.ui_swing.components.ColourChooser;
import com.dmdirc.addons.ui_swing.components.ImageButton;
import com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel.OptionType;
import com.dmdirc.addons.ui_swing.UIUtilities;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;

import net.miginfocom.swing.MigLayout;

/**
 * Current options panel.
 */
public final class CurrentOptionsPanel extends JPanel 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 = 2;
    
    /** Parent settings panel. */
    private final SettingsPanel parent;
    
    /** config option -> text fields. */
    private Map<String, JTextField> textFields;
    /** config option -> checkboxes. */
    private Map<String, JCheckBox> checkBoxes;
    /** config option -> colours. */
    private Map<String, ColourChooser> colours;
    /** config option -> spinners. */
    private Map<String, JSpinner> spinners;
    
    /**
     * Creates a new instance of CurrentOptionsPanel.
     *
     * @param parent Parent settings panel.
     */
    protected CurrentOptionsPanel(final SettingsPanel parent) {
        super();
    //#CurrentOptionsPanel.java:76: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)
    //#input(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): parent
    //#input(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.checkBoxes
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.colours
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.parent
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.spinners
    //#output(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.textFields
    //#new obj(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#2)
    //#new obj(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#3)
    //#new obj(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#4)
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.checkBoxes == &new HashMap(initComponents#2)
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.colours == &new HashMap(initComponents#3)
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.parent == parent
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): init'ed(this.parent)
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.spinners == &new HashMap(initComponents#4)
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): this.textFields == &new HashMap(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): new HashMap(initComponents#4) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): Effects-of-calling:javax.swing.UIManager:getLookAndFeel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): Effects-of-calling:java.lang.Object:getClass
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): Effects-of-calling:java.lang.Class:getName
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)): Effects-of-calling:java.lang.System:getProperty
        
        this.parent = parent;
        
        this.setOpaque(UIUtilities.getTabbedPaneOpaque());
    //#CurrentOptionsPanel.java:80: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setOpaque(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setOpaque(bool)
        initComponents();
    }
    //#CurrentOptionsPanel.java:82: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel(SettingsPanel)
    
    /** Initialises the components. */
    private void initComponents() {
        textFields = new HashMap<String, JTextField>();
    //#CurrentOptionsPanel.java:86: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.initComponents()
    //#input(void initComponents()): this
    //#output(void initComponents()): new HashMap(initComponents#1) num objects
    //#output(void initComponents()): new HashMap(initComponents#2) num objects
    //#output(void initComponents()): new HashMap(initComponents#3) num objects
    //#output(void initComponents()): new HashMap(initComponents#4) num objects
    //#output(void initComponents()): this.checkBoxes
    //#output(void initComponents()): this.colours
    //#output(void initComponents()): this.spinners
    //#output(void initComponents()): this.textFields
    //#new obj(void initComponents()): new HashMap(initComponents#1)
    //#new obj(void initComponents()): new HashMap(initComponents#2)
    //#new obj(void initComponents()): new HashMap(initComponents#3)
    //#new obj(void initComponents()): new HashMap(initComponents#4)
    //#post(void initComponents()): this.checkBoxes == &new HashMap(initComponents#2)
    //#post(void initComponents()): this.colours == &new HashMap(initComponents#3)
    //#post(void initComponents()): this.spinners == &new HashMap(initComponents#4)
    //#post(void initComponents()): this.textFields == &new HashMap(initComponents#1)
    //#post(void initComponents()): new HashMap(initComponents#1) num objects == 1
    //#post(void initComponents()): new HashMap(initComponents#2) num objects == 1
    //#post(void initComponents()): new HashMap(initComponents#3) num objects == 1
    //#post(void initComponents()): new HashMap(initComponents#4) num objects == 1
        checkBoxes = new HashMap<String, JCheckBox>();
        colours = new HashMap<String, ColourChooser>();
        spinners = new HashMap<String, JSpinner>();
    }
    //#CurrentOptionsPanel.java:90: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.initComponents()
    
    /** Clears all the current options. */
    protected void clearOptions() {
        textFields.clear();
    //#CurrentOptionsPanel.java:94: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.clearOptions()
    //#input(void clearOptions()): ": "._tainted
    //#input(void clearOptions()): this
    //#input(void clearOptions()): this.checkBoxes
    //#input(void clearOptions()): this.colours
    //#input(void clearOptions()): this.parent
    //#input(void clearOptions()): this.parent.names
    //#input(void clearOptions()): this.spinners
    //#input(void clearOptions()): this.textFields
    //#pre[2] (void clearOptions()): this.checkBoxes != null
    //#pre[3] (void clearOptions()): this.colours != null
    //#pre[6] (void clearOptions()): this.spinners != null
    //#pre[7] (void clearOptions()): this.textFields != null
    //#pre[4] (void clearOptions()): (soft) this.parent != null
    //#pre[5] (void clearOptions()): (soft) this.parent.names != null
    //#unanalyzed(void clearOptions()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void clearOptions()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setIcon
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setRolloverIcon
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPressedIcon
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setContentAreaFilled
    //#unanalyzed(void clearOptions()): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setBorder
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setMargin
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPreferredSize
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setActionCommand
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void clearOptions()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void clearOptions()): Effects-of-calling:javax.swing.JLabel:setLabelFor
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener
    //#unanalyzed(void clearOptions()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible
    //#unanalyzed(void clearOptions()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setLayout
    //#unanalyzed(void clearOptions()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:removeAll
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void clearOptions()): Effects-of-calling:getOptionName
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void clearOptions()): Effects-of-calling:java.util.Map:get
        checkBoxes.clear();
        colours.clear();
        spinners.clear();
        populateCurrentSettings();
    }
    //#CurrentOptionsPanel.java:99: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.clearOptions()
    
    /**
     * Adds a current option.
     *
     * @param optionName option to add
     * @param type Option type
     * @param value Option value
     */
    protected void addOption(final String optionName,
            final OptionType type, final String value) {
        switch (type) {
    //#CurrentOptionsPanel.java:110: method: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1.com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init
    //#CurrentOptionsPanel.java:110: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1
    //#    method: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType__static_init.new SettingsPanel$OptionType[](SettingsPanel$OptionType__static_init#5).length
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType__static_init.new SettingsPanel$OptionType[](SettingsPanel$OptionType__static_init#5)[0..4]
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.$VALUES
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.CHECKBOX
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.COLOUR
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.SPINNER
    //#input(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.TEXTFIELD
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel$1]
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): new int[](CurrentOptionsPanel$1__static_init#1) num objects
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType.length
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType[0..4_294_967_295]
    //#new obj(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): new int[](CurrentOptionsPanel$1__static_init#1)
    //#pre[1] (com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): (soft) init'ed(com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType__static_init.new SettingsPanel$OptionType[](SettingsPanel$OptionType__static_init#5)[0..4])
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 in {0..3}
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 in {0..3}
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 in {0..3}
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 in {0..3}
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 - values(...).length in range
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 - values(...).length in range
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 - values(...).length in range
    //#presumption(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 - values(...).length in range
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType == &new int[](CurrentOptionsPanel$1__static_init#1)
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): new int[](CurrentOptionsPanel$1__static_init#1) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType.length == 4
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType[0..4_294_967_295] in {0..4}, if init'ed
    //#CurrentOptionsPanel.java:110: end of method: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1.com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init
    //#CurrentOptionsPanel.java:110: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.addOption(String, SettingsPanel$OptionType, String)
    //#CurrentOptionsPanel.java:110: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void addOption(String, SettingsPanel$OptionType, String)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#input(void addOption(String, SettingsPanel$OptionType, String)): ": "._tainted
    //#input(void addOption(String, SettingsPanel$OptionType, String)): "Illegal Type: "._tainted
    //#input(void addOption(String, SettingsPanel$OptionType, String)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1).length
    //#input(void addOption(String, SettingsPanel$OptionType, String)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]
    //#input(void addOption(String, SettingsPanel$OptionType, String)): com/dmdirc/addons/ui_swing/components/ColourChooser.java.awt.Color.DARK_GRAY
    //#input(void addOption(String, SettingsPanel$OptionType, String)): com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel$1.$SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType
    //#input(void addOption(String, SettingsPanel$OptionType, String)): optionName
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this.checkBoxes
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this.colours
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this.parent
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this.parent.names
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this.spinners
    //#input(void addOption(String, SettingsPanel$OptionType, String)): this.textFields
    //#input(void addOption(String, SettingsPanel$OptionType, String)): type
    //#input(void addOption(String, SettingsPanel$OptionType, String)): type._tainted
    //#input(void addOption(String, SettingsPanel$OptionType, String)): value
    //#pre[4] (void addOption(String, SettingsPanel$OptionType, String)): this.checkBoxes != null
    //#pre[5] (void addOption(String, SettingsPanel$OptionType, String)): this.colours != null
    //#pre[8] (void addOption(String, SettingsPanel$OptionType, String)): this.spinners != null
    //#pre[9] (void addOption(String, SettingsPanel$OptionType, String)): this.textFields != null
    //#pre[10] (void addOption(String, SettingsPanel$OptionType, String)): type != null
    //#pre[1] (void addOption(String, SettingsPanel$OptionType, String)): (soft) com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295] in {1..4}
    //#pre[6] (void addOption(String, SettingsPanel$OptionType, String)): (soft) this.parent != null
    //#pre[7] (void addOption(String, SettingsPanel$OptionType, String)): (soft) this.parent.names != null
    //#presumption(void addOption(String, SettingsPanel$OptionType, String)): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 in {0..3}
    //#presumption(void addOption(String, SettingsPanel$OptionType, String)): java.util.Map:get(...)@123 != null
    //#presumption(void addOption(String, SettingsPanel$OptionType, String)): values(...).length - com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@110 in range
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.UIManager:getLookAndFeel
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.Object:getClass
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.Class:getName
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setIcon
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setRolloverIcon
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPressedIcon
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setContentAreaFilled
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setBorder
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setMargin
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPreferredSize
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setActionCommand
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JLabel:setLabelFor
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setLayout
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:removeAll
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:getOptionName
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.ui.messages.ColourManager:getColour
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JPanel:setToolTipText
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.ui.messages.ColourManager:parseColour
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.event.EventListenerList
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:isWindowsUI
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JButton:setMargin
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JPanel:setPreferredSize
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.BorderFactory:createLineBorder
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ColourChooser:setLayout
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ColourChooser:add
    //#unanalyzed(void addOption(String, SettingsPanel$OptionType, String)): Effects-of-calling:java.util.Map:get
    //#test_vector(void addOption(String, SettingsPanel$OptionType, String)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]: {1}, {2}, {3}, {4}
            case TEXTFIELD:
                textFields.put(optionName, new JTextField(value));
                break;
            case CHECKBOX:
                checkBoxes.put(optionName, new JCheckBox("",
                        Boolean.parseBoolean(value)));
                break;
            case COLOUR:
                colours.put(optionName, new ColourChooser(value, true, true));
                break;
            case SPINNER:
                spinners.put(optionName, new JSpinner(new SpinnerNumberModel()));
                spinners.get(optionName).setValue(Integer.parseInt(value));
                break;
            default:
                throw new IllegalArgumentException("Illegal Type: " + type);
        }
        
        populateCurrentSettings();
    }
    //#CurrentOptionsPanel.java:130: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.addOption(String, SettingsPanel$OptionType, String)
    
    /**
     * Deletes a current option.
     *
     * @param optionName Option to delete
     * @param type Option type
     */
    protected void delOption(final String optionName,
            final OptionType type) {
        switch (type) {
    //#CurrentOptionsPanel.java:140: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.delOption(String, SettingsPanel$OptionType)
    //#CurrentOptionsPanel.java:140: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void delOption(String, SettingsPanel$OptionType)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#input(void delOption(String, SettingsPanel$OptionType)): ": "._tainted
    //#input(void delOption(String, SettingsPanel$OptionType)): "Illegal Type: "._tainted
    //#input(void delOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1).length
    //#input(void delOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]
    //#input(void delOption(String, SettingsPanel$OptionType)): com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel$1.$SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType
    //#input(void delOption(String, SettingsPanel$OptionType)): optionName
    //#input(void delOption(String, SettingsPanel$OptionType)): this
    //#input(void delOption(String, SettingsPanel$OptionType)): this.checkBoxes
    //#input(void delOption(String, SettingsPanel$OptionType)): this.colours
    //#input(void delOption(String, SettingsPanel$OptionType)): this.parent
    //#input(void delOption(String, SettingsPanel$OptionType)): this.parent.names
    //#input(void delOption(String, SettingsPanel$OptionType)): this.spinners
    //#input(void delOption(String, SettingsPanel$OptionType)): this.textFields
    //#input(void delOption(String, SettingsPanel$OptionType)): type
    //#input(void delOption(String, SettingsPanel$OptionType)): type._tainted
    //#pre[4] (void delOption(String, SettingsPanel$OptionType)): this.checkBoxes != null
    //#pre[5] (void delOption(String, SettingsPanel$OptionType)): this.colours != null
    //#pre[8] (void delOption(String, SettingsPanel$OptionType)): this.spinners != null
    //#pre[9] (void delOption(String, SettingsPanel$OptionType)): this.textFields != null
    //#pre[10] (void delOption(String, SettingsPanel$OptionType)): type != null
    //#pre[1] (void delOption(String, SettingsPanel$OptionType)): (soft) com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295] in {1..4}
    //#pre[6] (void delOption(String, SettingsPanel$OptionType)): (soft) this.parent != null
    //#pre[7] (void delOption(String, SettingsPanel$OptionType)): (soft) this.parent.names != null
    //#presumption(void delOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@140 in {0..3}
    //#presumption(void delOption(String, SettingsPanel$OptionType)): values(...).length - com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@140 in range
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setIcon
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setRolloverIcon
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPressedIcon
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setContentAreaFilled
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setBorder
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setMargin
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPreferredSize
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setActionCommand
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:javax.swing.JLabel:setLabelFor
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setLayout
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:removeAll
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:getOptionName
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void delOption(String, SettingsPanel$OptionType)): Effects-of-calling:java.util.Map:get
    //#test_vector(void delOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]: {1}, {2}, {3}, {4}
            case TEXTFIELD:
                textFields.remove(optionName);
                break;
            case CHECKBOX:
                checkBoxes.remove(optionName);
                break;
            case COLOUR:
                colours.remove(optionName);
                break;
            case SPINNER:
                spinners.remove(optionName);
                break;
            default:
                throw new IllegalArgumentException("Illegal Type: " + type);
        }
        
        populateCurrentSettings();
    }
    //#CurrentOptionsPanel.java:158: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.delOption(String, SettingsPanel$OptionType)
    
    /**
     * Retrives an options value.
     *
     * @param optionName Option to delete
     * @param type Option type
     *
     * @return Option value or a blank string
     */
    public String getOption(final String optionName, final OptionType type) {
        String returnValue = null;
    //#CurrentOptionsPanel.java:169: method: String com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.getOption(String, SettingsPanel$OptionType)
    //#input(String getOption(String, SettingsPanel$OptionType)): "Illegal Type: "._tainted
    //#input(String getOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1).length
    //#input(String getOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]
    //#input(String getOption(String, SettingsPanel$OptionType)): com/dmdirc/addons/ui_swing/components/ColourChooser.__Descendant_Table[com/dmdirc/addons/ui_swing/components/ColourChooser]
    //#input(String getOption(String, SettingsPanel$OptionType)): com/dmdirc/addons/ui_swing/components/ColourChooser.__Descendant_Table[others]
    //#input(String getOption(String, SettingsPanel$OptionType)): com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel$1.$SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType
    //#input(String getOption(String, SettingsPanel$OptionType)): optionName
    //#input(String getOption(String, SettingsPanel$OptionType)): this
    //#input(String getOption(String, SettingsPanel$OptionType)): this.checkBoxes
    //#input(String getOption(String, SettingsPanel$OptionType)): this.colours
    //#input(String getOption(String, SettingsPanel$OptionType)): this.spinners
    //#input(String getOption(String, SettingsPanel$OptionType)): this.textFields
    //#input(String getOption(String, SettingsPanel$OptionType)): type
    //#input(String getOption(String, SettingsPanel$OptionType)): type._tainted
    //#output(String getOption(String, SettingsPanel$OptionType)): java.lang.Object:toString(...)._tainted
    //#output(String getOption(String, SettingsPanel$OptionType)): return_value
    //#new obj(String getOption(String, SettingsPanel$OptionType)): java.lang.Object:toString(...)
    //#pre[8] (String getOption(String, SettingsPanel$OptionType)): type != null
    //#pre[1] (String getOption(String, SettingsPanel$OptionType)): (soft) com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295] in {1..4}
    //#pre[4] (String getOption(String, SettingsPanel$OptionType)): (soft) this.checkBoxes != null
    //#pre[5] (String getOption(String, SettingsPanel$OptionType)): (soft) this.colours != null
    //#pre[6] (String getOption(String, SettingsPanel$OptionType)): (soft) this.spinners != null
    //#pre[7] (String getOption(String, SettingsPanel$OptionType)): (soft) this.textFields != null
    //#presumption(String getOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@170 in {0..3}
    //#presumption(String getOption(String, SettingsPanel$OptionType)): java.util.Map:get(...).__Tag@187 == com/dmdirc/addons/ui_swing/components/ColourChooser
    //#presumption(String getOption(String, SettingsPanel$OptionType)): java.util.Map:get(...)@173 != null
    //#presumption(String getOption(String, SettingsPanel$OptionType)): java.util.Map:get(...)@178 != null
    //#presumption(String getOption(String, SettingsPanel$OptionType)): java.util.Map:get(...)@187 != null
    //#presumption(String getOption(String, SettingsPanel$OptionType)): java.util.Map:get(...)@192 != null
    //#presumption(String getOption(String, SettingsPanel$OptionType)): javax.swing.JSpinner:getValue(...)@192 != null
    //#presumption(String getOption(String, SettingsPanel$OptionType)): values(...).length - com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel_OptionType:ordinal(...)@170 in range
    //#post(String getOption(String, SettingsPanel$OptionType)): java.lang.Object:toString(...)._tainted == 0
    //#post(String getOption(String, SettingsPanel$OptionType)): init'ed(return_value)
    //#test_vector(String getOption(String, SettingsPanel$OptionType)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]: {1}, {2}, {3}, {4}
    //#test_vector(String getOption(String, SettingsPanel$OptionType)): java.util.Map:containsKey(...)@172: {0}, {1}
    //#test_vector(String getOption(String, SettingsPanel$OptionType)): java.util.Map:containsKey(...)@177: {0}, {1}
    //#test_vector(String getOption(String, SettingsPanel$OptionType)): java.util.Map:containsKey(...)@186: {0}, {1}
    //#test_vector(String getOption(String, SettingsPanel$OptionType)): java.util.Map:containsKey(...)@191: {0}, {1}
    //#test_vector(String getOption(String, SettingsPanel$OptionType)): javax.swing.JCheckBox:isSelected(...)@178: {0}, {1}
        switch (type) {
    //#CurrentOptionsPanel.java:170: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: String getOption(String, SettingsPanel$OptionType)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal()
            case TEXTFIELD:
                if (textFields.containsKey(optionName)) {
                    returnValue =  textFields.get(optionName).getText();
                }
                break;
            case CHECKBOX:
                if (checkBoxes.containsKey(optionName)) {
                    if (checkBoxes.get(optionName).isSelected()) {
                        returnValue = "true";
                    } else {
                        returnValue = "false";
                    }
                }
                break;
            case COLOUR:
                if (colours.containsKey(optionName)) {
                    returnValue = colours.get(optionName).getColour();
                }
                break;
            case SPINNER:
                if (spinners.containsKey(optionName)) {
                    returnValue = spinners.get(optionName).getValue().toString();
                }
                break;
            default:
                throw new IllegalArgumentException("Illegal Type: " + type);
        }
        return returnValue;
    //#CurrentOptionsPanel.java:198: end of method: String com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.getOption(String, SettingsPanel$OptionType)
    }
    
    /**
     * Adds an option to the current options pane.
     * @param configName config option name
     * @param displayName config option display name
     * @param panel parent panel
     * @param component Option component to add
     */
    private void addCurrentOption(final String configName, final String displayName,
            final JPanel panel, final JComponent component) {
        final JLabel label = new JLabel();
    //#CurrentOptionsPanel.java:210: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.addCurrentOption(String, String, JPanel, JComponent)
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): ": "._tainted
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): component
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): configName
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): displayName
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): displayName._tainted
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): panel
    //#input(void addCurrentOption(String, String, JPanel, JComponent)): this
    //#pre[5] (void addCurrentOption(String, String, JPanel, JComponent)): panel != null
    //#presumption(void addCurrentOption(String, String, JPanel, JComponent)): com.dmdirc.ui.IconManager:getIconManager(...)@211 != null
    //#presumption(void addCurrentOption(String, String, JPanel, JComponent)): com.dmdirc.ui.IconManager:getIconManager(...)@211 != null
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setIcon
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setRolloverIcon
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPressedIcon
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setContentAreaFilled
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setBorder
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setMargin
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPreferredSize
    //#unanalyzed(void addCurrentOption(String, String, JPanel, JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setActionCommand
        final ImageButton button = new ImageButton(configName,
    //#CurrentOptionsPanel.java:211: Warning: method not available - call not analyzed
    //#    call on IconManager com.dmdirc.ui.IconManager:getIconManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void addCurrentOption(String, String, JPanel, JComponent)
    //#    unanalyzed callee: IconManager com.dmdirc.ui.IconManager:getIconManager()
    //#CurrentOptionsPanel.java:211: Warning: method not available - call not analyzed
    //#    call on Icon com.dmdirc.ui.IconManager:getIcon(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void addCurrentOption(String, String, JPanel, JComponent)
    //#    unanalyzed callee: Icon com.dmdirc.ui.IconManager:getIcon(String)
                IconManager.getIconManager().getIcon("close-inactive"),
                IconManager.getIconManager().getIcon("close-active"));
        
        label.setText(displayName + ": ");
        label.setLabelFor(component);
        
        button.addActionListener(this);
    //#CurrentOptionsPanel.java:218: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener(ActionListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void addCurrentOption(String, String, JPanel, JComponent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener(ActionListener)
        
        panel.add(label);
        panel.add(component, "growx, pushx");
        panel.add(button, "wrap");
    }
    //#CurrentOptionsPanel.java:223: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.addCurrentOption(String, String, JPanel, JComponent)
    
    
    /** Populates the current settings. */
    protected void populateCurrentSettings() {
        setVisible(false);
    //#CurrentOptionsPanel.java:228: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.populateCurrentSettings()
    //#CurrentOptionsPanel.java:228: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void populateCurrentSettings()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible(bool)
    //#input(void populateCurrentSettings()): ": "._tainted
    //#input(void populateCurrentSettings()): this
    //#input(void populateCurrentSettings()): this.checkBoxes
    //#input(void populateCurrentSettings()): this.colours
    //#input(void populateCurrentSettings()): this.parent
    //#input(void populateCurrentSettings()): this.parent.names
    //#input(void populateCurrentSettings()): this.spinners
    //#input(void populateCurrentSettings()): this.textFields
    //#pre[2] (void populateCurrentSettings()): this.checkBoxes != null
    //#pre[3] (void populateCurrentSettings()): this.colours != null
    //#pre[6] (void populateCurrentSettings()): this.spinners != null
    //#pre[7] (void populateCurrentSettings()): this.textFields != null
    //#pre[4] (void populateCurrentSettings()): (soft) this.parent != null
    //#pre[5] (void populateCurrentSettings()): (soft) this.parent.names != null
    //#presumption(void populateCurrentSettings()): java.util.Iterator:next(...)@234 != null
    //#presumption(void populateCurrentSettings()): java.util.Iterator:next(...)@240 != null
    //#presumption(void populateCurrentSettings()): java.util.Iterator:next(...)@246 != null
    //#presumption(void populateCurrentSettings()): java.util.Iterator:next(...)@252 != null
    //#presumption(void populateCurrentSettings()): java.util.Map:entrySet(...)@234 != null
    //#presumption(void populateCurrentSettings()): java.util.Map:entrySet(...)@240 != null
    //#presumption(void populateCurrentSettings()): java.util.Map:entrySet(...)@246 != null
    //#presumption(void populateCurrentSettings()): java.util.Map:entrySet(...)@252 != null
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setIcon
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setRolloverIcon
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPressedIcon
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setContentAreaFilled
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setBorder
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setMargin
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPreferredSize
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setActionCommand
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:javax.swing.JLabel:setLabelFor
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void populateCurrentSettings()): Effects-of-calling:java.util.Map:get
    //#test_vector(void populateCurrentSettings()): java.util.Iterator:hasNext(...)@234: {0}, {1}
    //#test_vector(void populateCurrentSettings()): java.util.Iterator:hasNext(...)@240: {0}, {1}
    //#test_vector(void populateCurrentSettings()): java.util.Iterator:hasNext(...)@246: {0}, {1}
    //#test_vector(void populateCurrentSettings()): java.util.Iterator:hasNext(...)@252: {0}, {1}
        
        setLayout(new MigLayout("fillx, aligny top"));
    //#CurrentOptionsPanel.java:230: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void populateCurrentSettings()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#CurrentOptionsPanel.java:230: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void populateCurrentSettings()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setLayout(LayoutManager)
        
        removeAll();
    //#CurrentOptionsPanel.java:232: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:removeAll()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void populateCurrentSettings()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:removeAll()
        
        for (Entry<String, JTextField> entry : textFields.entrySet()) {
            addCurrentOption(entry.getKey(),
                    parent.getOptionName(entry.getKey()),
                    this, entry.getValue());
        }
        
        for (Entry<String, JCheckBox> entry : checkBoxes.entrySet()) {
            addCurrentOption(entry.getKey(),
                    parent.getOptionName(entry.getKey()),
                    this, entry.getValue());
        }
        
        for (Entry<String, ColourChooser> entry : colours.entrySet()) {
            addCurrentOption(entry.getKey(),
                    parent.getOptionName(entry.getKey()),
                    this, entry.getValue());
        }
        
        for (Entry<String, JSpinner> entry : spinners.entrySet()) {
            addCurrentOption(entry.getKey(),
                    parent.getOptionName(entry.getKey()),
                    this, entry.getValue());
        }
        
        setVisible(true);
    //#CurrentOptionsPanel.java:258: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
    //#    method: void populateCurrentSettings()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible(bool)
    }
    //#CurrentOptionsPanel.java:259: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.populateCurrentSettings()
    
    /** 
     * {@inheritDoc}
     * 
     * @param e Action performed
     */
    @Override
    public void actionPerformed(final ActionEvent e) {
        delOption(e.getActionCommand(), parent.getOptionType(e.getActionCommand()));
    //#CurrentOptionsPanel.java:268: method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.actionPerformed(ActionEvent)
    //#input(void actionPerformed(ActionEvent)): ": "._tainted
    //#input(void actionPerformed(ActionEvent)): "Illegal Type: "._tainted
    //#input(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1).length
    //#input(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel$1.$SwitchMap$com$dmdirc$addons$ui_swing$components$expandingsettings$SettingsPanel$OptionType
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.__Descendant_Table[com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.checkBoxes
    //#input(void actionPerformed(ActionEvent)): this.colours
    //#input(void actionPerformed(ActionEvent)): this.parent
    //#input(void actionPerformed(ActionEvent)): this.parent.addOptionPanel
    //#input(void actionPerformed(ActionEvent)): this.parent.addOptionPanel.addOptionButton
    //#input(void actionPerformed(ActionEvent)): this.parent.addOptionPanel.addOptionComboBox
    //#input(void actionPerformed(ActionEvent)): this.parent.names
    //#input(void actionPerformed(ActionEvent)): this.parent.types
    //#input(void actionPerformed(ActionEvent)): this.spinners
    //#input(void actionPerformed(ActionEvent)): this.textFields
    //#pre[2] (void actionPerformed(ActionEvent)): e != null
    //#pre[4] (void actionPerformed(ActionEvent)): this.checkBoxes != null
    //#pre[5] (void actionPerformed(ActionEvent)): this.colours != null
    //#pre[6] (void actionPerformed(ActionEvent)): this.parent != null
    //#pre[7] (void actionPerformed(ActionEvent)): this.parent.addOptionPanel != null
    //#pre[8] (void actionPerformed(ActionEvent)): this.parent.addOptionPanel.addOptionButton != null
    //#pre[9] (void actionPerformed(ActionEvent)): this.parent.addOptionPanel.addOptionComboBox != null
    //#pre[11] (void actionPerformed(ActionEvent)): this.parent.types != null
    //#pre[12] (void actionPerformed(ActionEvent)): this.spinners != null
    //#pre[13] (void actionPerformed(ActionEvent)): this.textFields != null
    //#pre[1] (void actionPerformed(ActionEvent)): (soft) com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1__static_init.new int[](CurrentOptionsPanel$1__static_init#1)[0..4_294_967_295] in {1..4}
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.parent.names != null
    //#presumption(void actionPerformed(ActionEvent)): java.util.Map:get(...)@242 != null
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setIcon
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setRolloverIcon
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPressedIcon
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setContentAreaFilled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setBorder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setMargin
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setPreferredSize
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setActionCommand
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JLabel:setLabelFor
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setVisible
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:setLayout
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel:removeAll
    //#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.Iterator:hasNext
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:getOptionName
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.expandingsettings.SettingsPanel$OptionType:ordinal
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:remove
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:addOption
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
        parent.addAddableOption(e.getActionCommand());
    }
    //#CurrentOptionsPanel.java:270: end of method: void com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.actionPerformed(ActionEvent)
    
}
    //#CurrentOptionsPanel.java:: end of class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel$1
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel]
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.addCurrentOption(Ljava/lang/String;Ljava/lang/String;Ljavax/swing/JPanel;Ljavax/swing/JComponent;)V
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.addOption(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.clearOptions()V
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.delOption(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType;)V
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.getOption(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType;)Ljava/lang/String;
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.populateCurrentSettings()V
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/expandingsettings/CurrentOptionsPanel] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.addCurrentOption(Ljava/lang/String;Ljava/lang/String;Ljavax/swing/JPanel;Ljavax/swing/JComponent;)V == &addCurrentOption
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.addOption(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType;Ljava/lang/String;)V == &addOption
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.clearOptions()V == &clearOptions
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.delOption(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType;)V == &delOption
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.getOption(Ljava/lang/String;Lcom/dmdirc/addons/ui_swing/components/expandingsettings/SettingsPanel$OptionType;)Ljava/lang/String; == &getOption
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init): __Dispatch_Table.populateCurrentSettings()V == &populateCurrentSettings
    //#CurrentOptionsPanel.java:: end of method: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel.com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel__static_init
    //#CurrentOptionsPanel.java:: end of class: com.dmdirc.addons.ui_swing.components.expandingsettings.CurrentOptionsPanel
