//# 0 errors, 401 messages
//#
/*
    //#IgnoreListPanel.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#IgnoreListPanel.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init
    //#IgnoreListPanel.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#IgnoreListPanel.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__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.serversetting;

import com.dmdirc.IgnoreList;
import com.dmdirc.Server;
import com.dmdirc.config.prefs.validator.NotEmptyValidator;
import com.dmdirc.config.prefs.validator.RegexValidator;
import com.dmdirc.config.prefs.validator.ValidatorChain;
import com.dmdirc.addons.ui_swing.components.StandardInputDialog;
import com.dmdirc.addons.ui_swing.UIUtilities;

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

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import net.miginfocom.swing.MigLayout;

/**
 * Ignore list panel.
 */
public final class IgnoreListPanel extends JPanel implements ActionListener,
    //#IgnoreListPanel.java:53: method: JCheckBox com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.access$000(IgnoreListPanel)
    //#input(JCheckBox access$000(IgnoreListPanel)): x0
    //#input(JCheckBox access$000(IgnoreListPanel)): x0.viewToggle
    //#output(JCheckBox access$000(IgnoreListPanel)): return_value
    //#pre[1] (JCheckBox access$000(IgnoreListPanel)): x0 != null
    //#pre[2] (JCheckBox access$000(IgnoreListPanel)): init'ed(x0.viewToggle)
    //#post(JCheckBox access$000(IgnoreListPanel)): return_value == x0.viewToggle
    //#post(JCheckBox access$000(IgnoreListPanel)): init'ed(return_value)
    //#IgnoreListPanel.java:53: end of method: JCheckBox com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.access$000(IgnoreListPanel)
    //#IgnoreListPanel.java:53: method: IgnoreList com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.access$100(IgnoreListPanel)
    //#input(IgnoreList access$100(IgnoreListPanel)): x0
    //#input(IgnoreList access$100(IgnoreListPanel)): x0.cachedIgnoreList
    //#output(IgnoreList access$100(IgnoreListPanel)): return_value
    //#pre[1] (IgnoreList access$100(IgnoreListPanel)): x0 != null
    //#pre[2] (IgnoreList access$100(IgnoreListPanel)): init'ed(x0.cachedIgnoreList)
    //#post(IgnoreList access$100(IgnoreListPanel)): return_value == x0.cachedIgnoreList
    //#post(IgnoreList access$100(IgnoreListPanel)): init'ed(return_value)
    //#IgnoreListPanel.java:53: end of method: IgnoreList com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.access$100(IgnoreListPanel)
    //#IgnoreListPanel.java:53: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.access$200(IgnoreListPanel)
    //#input(void access$200(IgnoreListPanel)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel]
    //#input(void access$200(IgnoreListPanel)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[others]
    //#input(void access$200(IgnoreListPanel)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.getSize()I
    //#input(void access$200(IgnoreListPanel)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.notifyUpdated()V
    //#input(void access$200(IgnoreListPanel)): x0
    //#input(void access$200(IgnoreListPanel)): x0.cachedIgnoreList
    //#input(void access$200(IgnoreListPanel)): x0.listModel
    //#input(void access$200(IgnoreListPanel)): x0.listModel.__Tag
    //#input(void access$200(IgnoreListPanel)): x0.listModel.ignoreList
    //#input(void access$200(IgnoreListPanel)): x0.viewToggle
    //#pre[1] (void access$200(IgnoreListPanel)): x0 != null
    //#pre[2] (void access$200(IgnoreListPanel)): x0.cachedIgnoreList != null
    //#pre[3] (void access$200(IgnoreListPanel)): x0.listModel != null
    //#pre[4] (void access$200(IgnoreListPanel)): x0.listModel.__Tag == com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel
    //#pre[5] (void access$200(IgnoreListPanel)): x0.listModel.ignoreList != null
    //#pre[6] (void access$200(IgnoreListPanel)): x0.viewToggle != null
    //#unanalyzed(void access$200(IgnoreListPanel)): Effects-of-calling:com.dmdirc.IgnoreList:canConvert
    //#unanalyzed(void access$200(IgnoreListPanel)): Effects-of-calling:javax.swing.JCheckBox:setSelected
    //#unanalyzed(void access$200(IgnoreListPanel)): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void access$200(IgnoreListPanel)): Effects-of-calling:com.dmdirc.IgnoreList:count
    //#unanalyzed(void access$200(IgnoreListPanel)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListModel:fireContentsChanged
    //#IgnoreListPanel.java:53: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.access$200(IgnoreListPanel)
        ListSelectionListener {

    /**
     * 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 server. */
    private final Server server;
    /** Add button. */
    private JButton addButton;
    /** Remove button. */
    private JButton delButton;
    /** View toggle. */
    private JCheckBox viewToggle;
    /** Size label. */
    private JLabel sizeLabel;
    /** Ignore list. */
    private JList list;
    /** Cached ignore list. */
    private IgnoreList cachedIgnoreList;
    /** Ignore list model . */
    private IgnoreListModel listModel;
    /** Parent window. */
    private Window parentWindow;

    /**
     * Creates a new instance of IgnoreList.
     *
     * @param server Parent server
     * @param parentWindow Parent window
     */
    public IgnoreListPanel(final Server server, final Window parentWindow) {
        super();
    //#IgnoreListPanel.java:88: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): " entr"._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): "ies"._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): "y"._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): parentWindow
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): server
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreList(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2).ignoreList
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2).isSimple
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JButton(initComponents#5) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JButton(initComponents#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JCheckBox(initComponents#8) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JLabel(initComponents#7) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JList(initComponents#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.addButton
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.cachedIgnoreList
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.delButton
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.list
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.listModel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.parentWindow
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.server
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.sizeLabel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.viewToggle
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreList(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JButton(initComponents#5)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JButton(initComponents#6)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JCheckBox(initComponents#8)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JLabel(initComponents#7)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JList(initComponents#3)
    //#pre[2] (void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): server != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.addButton == &new JButton(initComponents#5)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.cachedIgnoreList == &new IgnoreList(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2).ignoreList == &new IgnoreList(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.delButton == &new JButton(initComponents#6)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.list == &new JList(initComponents#3)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.listModel == &new IgnoreListModel(initComponents#2)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.parentWindow == parentWindow
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): init'ed(this.parentWindow)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.server == server
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.server != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.sizeLabel == &new JLabel(initComponents#7)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): this.viewToggle == &new JCheckBox(initComponents#8)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreList(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JButton(initComponents#5) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JButton(initComponents#6) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JCheckBox(initComponents#8) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JLabel(initComponents#7) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new JList(initComponents#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): new IgnoreListModel(initComponents#2).__Tag == com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): init'ed(new IgnoreListModel(initComponents#2).isSimple)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.Server:getIgnoreList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.IgnoreList:getRegexList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.IgnoreList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.AbstractListModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.IgnoreList:canConvert
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JList:setSelectionMode
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JCheckBox:setOpaque
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JCheckBox:setSelected
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JCheckBox:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JList:getSelectionModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.ListSelectionModel:addListSelectionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:com.dmdirc.IgnoreList:count
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JList:getSelectedIndex
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)): Effects-of-calling:javax.swing.JButton:setEnabled

        this.server = server;
        this.parentWindow = parentWindow;

        this.setOpaque(UIUtilities.getTabbedPaneOpaque());
    //#IgnoreListPanel.java:93: 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.serversetting.IgnoreListPanel
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque()
    //#IgnoreListPanel.java:93: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:setOpaque(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:setOpaque(bool)
        initComponents();
        addListeners();
        populateList();
    }
    //#IgnoreListPanel.java:97: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel(Server, Window)

    /** Initialises teh components. */
    private void initComponents() {
        cachedIgnoreList = new IgnoreList(server.getIgnoreList().getRegexList());
    //#IgnoreListPanel.java:101: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.initComponents()
    //#IgnoreListPanel.java:101: Warning: method not available - call not analyzed
    //#    call on IgnoreList com.dmdirc.Server:getIgnoreList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: IgnoreList com.dmdirc.Server:getIgnoreList()
    //#IgnoreListPanel.java:101: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.IgnoreList:getRegexList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: List com.dmdirc.IgnoreList:getRegexList()
    //#IgnoreListPanel.java:101: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.IgnoreList(List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.IgnoreList(List)
    //#input(void initComponents()): this
    //#input(void initComponents()): this.server
    //#output(void initComponents()): new IgnoreList(initComponents#1) num objects
    //#output(void initComponents()): new IgnoreListModel(initComponents#2) num objects
    //#output(void initComponents()): this.listModel.__Tag
    //#output(void initComponents()): this.listModel.ignoreList
    //#output(void initComponents()): this.listModel.isSimple
    //#output(void initComponents()): new JButton(initComponents#5) num objects
    //#output(void initComponents()): new JButton(initComponents#6) num objects
    //#output(void initComponents()): new JCheckBox(initComponents#8) num objects
    //#output(void initComponents()): new JLabel(initComponents#7) num objects
    //#output(void initComponents()): new JList(initComponents#3) num objects
    //#output(void initComponents()): this.addButton
    //#output(void initComponents()): this.cachedIgnoreList
    //#output(void initComponents()): this.delButton
    //#output(void initComponents()): this.list
    //#output(void initComponents()): this.listModel
    //#output(void initComponents()): this.sizeLabel
    //#output(void initComponents()): this.viewToggle
    //#new obj(void initComponents()): new IgnoreList(initComponents#1)
    //#new obj(void initComponents()): new IgnoreListModel(initComponents#2)
    //#new obj(void initComponents()): new JButton(initComponents#5)
    //#new obj(void initComponents()): new JButton(initComponents#6)
    //#new obj(void initComponents()): new JCheckBox(initComponents#8)
    //#new obj(void initComponents()): new JLabel(initComponents#7)
    //#new obj(void initComponents()): new JList(initComponents#3)
    //#pre[2] (void initComponents()): this.server != null
    //#presumption(void initComponents()): com.dmdirc.Server:getIgnoreList(...)@101 != null
    //#post(void initComponents()): this.addButton == &new JButton(initComponents#5)
    //#post(void initComponents()): this.cachedIgnoreList == &new IgnoreList(initComponents#1)
    //#post(void initComponents()): this.listModel.ignoreList == &new IgnoreList(initComponents#1)
    //#post(void initComponents()): this.delButton == &new JButton(initComponents#6)
    //#post(void initComponents()): this.list == &new JList(initComponents#3)
    //#post(void initComponents()): this.listModel == &new IgnoreListModel(initComponents#2)
    //#post(void initComponents()): this.sizeLabel == &new JLabel(initComponents#7)
    //#post(void initComponents()): this.viewToggle == &new JCheckBox(initComponents#8)
    //#post(void initComponents()): new IgnoreList(initComponents#1) num objects == 1
    //#post(void initComponents()): new IgnoreListModel(initComponents#2) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#5) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#6) num objects == 1
    //#post(void initComponents()): new JCheckBox(initComponents#8) num objects == 1
    //#post(void initComponents()): new JLabel(initComponents#7) num objects == 1
    //#post(void initComponents()): new JList(initComponents#3) num objects == 1
    //#post(void initComponents()): this.listModel.__Tag == com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel
    //#post(void initComponents()): init'ed(this.listModel.isSimple)
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.AbstractListModel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.IgnoreList:canConvert

        listModel = new IgnoreListModel(cachedIgnoreList);
        list = new JList(listModel);

        final JScrollPane scrollPane = new JScrollPane(list);

        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        addButton = new JButton("Add");
        delButton = new JButton("Remove");

        sizeLabel = new JLabel("0 entries");
        viewToggle = new JCheckBox("Use advanced expressions");
        viewToggle.setOpaque(UIUtilities.getTabbedPaneOpaque());
    //#IgnoreListPanel.java:115: 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.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.UIUtilities:getTabbedPaneOpaque()
        viewToggle.setSelected(!cachedIgnoreList.canConvert());
    //#IgnoreListPanel.java:116: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.IgnoreList:canConvert()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: bool com.dmdirc.IgnoreList:canConvert()
        viewToggle.setEnabled(cachedIgnoreList.canConvert());
    //#IgnoreListPanel.java:117: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.IgnoreList:canConvert()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: bool com.dmdirc.IgnoreList:canConvert()

        setLayout(new MigLayout("fill, wrap 1"));
    //#IgnoreListPanel.java:119: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#IgnoreListPanel.java:119: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:setLayout(LayoutManager)
        add(scrollPane, "grow, push");
    //#IgnoreListPanel.java:120: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
        add(sizeLabel, "split 2, pushx, growx");
    //#IgnoreListPanel.java:121: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
        add(viewToggle, "alignx center");
    //#IgnoreListPanel.java:122: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
        add(addButton, "split 2, width 50%");
    //#IgnoreListPanel.java:123: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
        add(delButton, "width 50%");
    //#IgnoreListPanel.java:124: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel:add(Component, Object)
    }
    //#IgnoreListPanel.java:125: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.initComponents()

    /** Updates the size label. */
    private void updateSizeLabel() {
        sizeLabel.setText(cachedIgnoreList.count() + " entr" + (cachedIgnoreList.count() == 1 ? "y" : "ies"));
    //#IgnoreListPanel.java:129: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.updateSizeLabel()
    //#IgnoreListPanel.java:129: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.IgnoreList:count()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void updateSizeLabel()
    //#    unanalyzed callee: int com.dmdirc.IgnoreList:count()
    //#input(void updateSizeLabel()): " entr"._tainted
    //#input(void updateSizeLabel()): "ies"._tainted
    //#input(void updateSizeLabel()): "y"._tainted
    //#input(void updateSizeLabel()): this
    //#input(void updateSizeLabel()): this.cachedIgnoreList
    //#input(void updateSizeLabel()): this.sizeLabel
    //#pre[2] (void updateSizeLabel()): this.cachedIgnoreList != null
    //#pre[3] (void updateSizeLabel()): this.sizeLabel != null
    }
    //#IgnoreListPanel.java:130: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.updateSizeLabel()

    /** Adds listeners to the components. */
    private void addListeners() {
        addButton.addActionListener(this);
    //#IgnoreListPanel.java:134: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.addListeners()
    //#input(void addListeners()): this
    //#input(void addListeners()): this.addButton
    //#input(void addListeners()): this.delButton
    //#input(void addListeners()): this.list
    //#input(void addListeners()): this.viewToggle
    //#pre[2] (void addListeners()): this.addButton != null
    //#pre[3] (void addListeners()): this.delButton != null
    //#pre[4] (void addListeners()): this.list != null
    //#pre[5] (void addListeners()): this.viewToggle != null
    //#presumption(void addListeners()): javax.swing.JList:getSelectionModel(...)@137 != null
        delButton.addActionListener(this);
        viewToggle.addActionListener(this);
        list.getSelectionModel().addListSelectionListener(this);
    }
    //#IgnoreListPanel.java:138: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.addListeners()

    /** Populates the ignore list. */
    private void populateList() {
        if (list.getSelectedIndex() == -1) {
    //#IgnoreListPanel.java:142: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.populateList()
    //#input(void populateList()): " entr"._tainted
    //#input(void populateList()): "ies"._tainted
    //#input(void populateList()): "y"._tainted
    //#input(void populateList()): this
    //#input(void populateList()): this.cachedIgnoreList
    //#input(void populateList()): this.delButton
    //#input(void populateList()): this.list
    //#input(void populateList()): this.sizeLabel
    //#pre[2] (void populateList()): this.cachedIgnoreList != null
    //#pre[4] (void populateList()): this.list != null
    //#pre[5] (void populateList()): this.sizeLabel != null
    //#pre[3] (void populateList()): (soft) this.delButton != null
    //#unanalyzed(void populateList()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void populateList()): Effects-of-calling:com.dmdirc.IgnoreList:count
    //#unanalyzed(void populateList()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void populateList()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void populateList()): Effects-of-calling:javax.swing.JLabel:setText
    //#test_vector(void populateList()): javax.swing.JList:getSelectedIndex(...)@142: {-2_147_483_648..-2, 0..4_294_967_295}, {-1}
            delButton.setEnabled(false);
        }

        updateSizeLabel();
    }
    //#IgnoreListPanel.java:147: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.populateList()

    /** Updates the list. */
    private void updateList() {
        listModel.notifyUpdated();
    //#IgnoreListPanel.java:151: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.updateList()
    //#input(void updateList()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel]
    //#input(void updateList()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[others]
    //#input(void updateList()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.getSize()I
    //#input(void updateList()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.notifyUpdated()V
    //#input(void updateList()): this
    //#input(void updateList()): this.cachedIgnoreList
    //#input(void updateList()): this.listModel
    //#input(void updateList()): this.listModel.__Tag
    //#input(void updateList()): this.listModel.ignoreList
    //#input(void updateList()): this.viewToggle
    //#pre[2] (void updateList()): this.cachedIgnoreList != null
    //#pre[3] (void updateList()): this.listModel != null
    //#pre[4] (void updateList()): this.listModel.__Tag == com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel
    //#pre[5] (void updateList()): this.listModel.ignoreList != null
    //#pre[6] (void updateList()): this.viewToggle != null
    //#unanalyzed(void updateList()): Effects-of-calling:com.dmdirc.IgnoreList:count
    //#unanalyzed(void updateList()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListModel:fireContentsChanged
    //#test_vector(void updateList()): com.dmdirc.IgnoreList:canConvert(...)@153: {0}, {1}

        if (cachedIgnoreList.canConvert()) {
    //#IgnoreListPanel.java:153: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.IgnoreList:canConvert()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void updateList()
    //#    unanalyzed callee: bool com.dmdirc.IgnoreList:canConvert()
            viewToggle.setEnabled(true);
        } else {
            viewToggle.setEnabled(false);
            viewToggle.setSelected(true);
        }
    }
    //#IgnoreListPanel.java:159: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.updateList()

    /** Saves the ignore list. */
    public void saveList() {
        server.getIgnoreList().clear();
    //#IgnoreListPanel.java:163: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.saveList()
    //#IgnoreListPanel.java:163: Warning: method not available - call not analyzed
    //#    call on IgnoreList com.dmdirc.Server:getIgnoreList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void saveList()
    //#    unanalyzed callee: IgnoreList com.dmdirc.Server:getIgnoreList()
    //#IgnoreListPanel.java:163: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.IgnoreList:clear()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void saveList()
    //#    unanalyzed callee: void com.dmdirc.IgnoreList:clear()
    //#input(void saveList()): this
    //#input(void saveList()): this.cachedIgnoreList
    //#input(void saveList()): this.server
    //#pre[2] (void saveList()): this.cachedIgnoreList != null
    //#pre[3] (void saveList()): this.server != null
    //#presumption(void saveList()): com.dmdirc.Server:getIgnoreList(...)@163 != null
    //#presumption(void saveList()): com.dmdirc.Server:getIgnoreList(...)@164 != null
        server.getIgnoreList().addAll(cachedIgnoreList.getRegexList());
    //#IgnoreListPanel.java:164: Warning: method not available - call not analyzed
    //#    call on IgnoreList com.dmdirc.Server:getIgnoreList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void saveList()
    //#    unanalyzed callee: IgnoreList com.dmdirc.Server:getIgnoreList()
    //#IgnoreListPanel.java:164: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.IgnoreList:getRegexList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void saveList()
    //#    unanalyzed callee: List com.dmdirc.IgnoreList:getRegexList()
    //#IgnoreListPanel.java:164: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.IgnoreList:addAll(List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void saveList()
    //#    unanalyzed callee: void com.dmdirc.IgnoreList:addAll(List)
        server.saveIgnoreList();
    //#IgnoreListPanel.java:165: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:saveIgnoreList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void saveList()
    //#    unanalyzed callee: void com.dmdirc.Server:saveIgnoreList()
    }
    //#IgnoreListPanel.java:166: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.saveList()

    /** 
     * {@inheritDoc}
     * 
     * @param e Action event
     */
    @SuppressWarnings("unchecked")
    @Override
    public void actionPerformed(final ActionEvent e) {
        if (e.getSource() == addButton) {
    //#IgnoreListPanel.java:176: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.actionPerformed(ActionEvent)
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.getSize()I
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.notifyUpdated()V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.setIsSimple(Z)V
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.addButton
    //#input(void actionPerformed(ActionEvent)): this.cachedIgnoreList
    //#input(void actionPerformed(ActionEvent)): this.delButton
    //#input(void actionPerformed(ActionEvent)): this.list
    //#input(void actionPerformed(ActionEvent)): this.listModel
    //#input(void actionPerformed(ActionEvent)): this.listModel.__Tag
    //#input(void actionPerformed(ActionEvent)): this.listModel.ignoreList
    //#input(void actionPerformed(ActionEvent)): this.parentWindow
    //#input(void actionPerformed(ActionEvent)): this.viewToggle
    //#output(void actionPerformed(ActionEvent)): this.listModel.isSimple
    //#pre[1] (void actionPerformed(ActionEvent)): e != null
    //#pre[4] (void actionPerformed(ActionEvent)): init'ed(this.addButton)
    //#pre[5] (void actionPerformed(ActionEvent)): (soft) this.cachedIgnoreList != null
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) init'ed(this.delButton)
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) this.list != null
    //#pre[8] (void actionPerformed(ActionEvent)): (soft) this.listModel != null
    //#pre[9] (void actionPerformed(ActionEvent)): (soft) this.listModel.__Tag == com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.listModel.ignoreList != null
    //#pre[11] (void actionPerformed(ActionEvent)): (soft) init'ed(this.parentWindow)
    //#pre[12] (void actionPerformed(ActionEvent)): (soft) this.viewToggle != null
    //#presumption(void actionPerformed(ActionEvent)): init'ed(java.awt.Dialog$ModalityType.MODELESS)
    //#post(void actionPerformed(ActionEvent)): possibly_updated(this.listModel.isSimple)
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.IgnoreList:canConvert
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox:setSelected
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardInputDialog
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.IgnoreList:count
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListModel:fireContentsChanged
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JCheckBox:isSelected(...)@177: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JList:getSelectedIndex(...)@210: {-1}, {-2_147_483_648..-2, 0..4_294_967_295}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JOptionPane:showConfirmDialog(...)@210: {-2_147_483_648..-1, 1..4_294_967_295}, {0}
            new StandardInputDialog(parentWindow, ModalityType.MODELESS, 
    //#IgnoreListPanel.java:177: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.validator.NotEmptyValidator()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.validator.NotEmptyValidator()
    //#IgnoreListPanel.java:177: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.validator.RegexValidator()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.validator.RegexValidator()
    //#IgnoreListPanel.java:177: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.validator.ValidatorChain(Validator[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.validator.ValidatorChain(Validator[])
    //#IgnoreListPanel.java:177: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1:display()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1:display()
                    "New ignore list entry",
                    "Please enter the new ignore list entry",
                    viewToggle.isSelected() ? new ValidatorChain<String>(
                    new NotEmptyValidator(), new RegexValidator())
                    : new NotEmptyValidator()) {
    //#IgnoreListPanel.java:182: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)
    //#IgnoreListPanel.java:182: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.StandardInputDialog(Window, Dialog$ModalityType, String, String, Validator)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardInputDialog(Window, Dialog$ModalityType, String, String, Validator)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): this
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): x0
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): x1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): x2
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): x3
    //#input(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): x4
    //#output(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)): init'ed(this.this$0)
    //#IgnoreListPanel.java:182: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1(IgnoreListPanel, Window, Dialog$ModalityType, String, String, Validator)

                /**
                 * 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;

                /** {@inheritDoc} */
                @Override
                public boolean save() {
                    if (viewToggle.isSelected()) {
    //#IgnoreListPanel.java:194: method: bool com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.save()
    //#input(bool save()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel]
    //#input(bool save()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Descendant_Table[others]
    //#input(bool save()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.getSize()I
    //#input(bool save()): com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel.__Dispatch_Table.notifyUpdated()V
    //#input(bool save()): this
    //#input(bool save()): this.this$0
    //#input(bool save()): this.this$0.cachedIgnoreList
    //#input(bool save()): this.this$0.listModel
    //#input(bool save()): this.this$0.listModel.__Tag
    //#input(bool save()): this.this$0.listModel.ignoreList
    //#input(bool save()): this.this$0.viewToggle
    //#output(bool save()): return_value
    //#pre[2] (bool save()): this.this$0 != null
    //#pre[3] (bool save()): this.cachedIgnoreList != null
    //#pre[4] (bool save()): this.listModel != null
    //#pre[5] (bool save()): this.listModel.__Tag == com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListModel
    //#pre[6] (bool save()): this.listModel.ignoreList != null
    //#pre[7] (bool save()): this.viewToggle != null
    //#post(bool save()): return_value == 1
    //#unanalyzed(bool save()): Effects-of-calling:com.dmdirc.IgnoreList:canConvert
    //#unanalyzed(bool save()): Effects-of-calling:javax.swing.JCheckBox:setSelected
    //#unanalyzed(bool save()): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(bool save()): Effects-of-calling:com.dmdirc.IgnoreList:count
    //#unanalyzed(bool save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListModel:fireContentsChanged
    //#test_vector(bool save()): javax.swing.JCheckBox:isSelected(...)@194: {0}, {1}
                        cachedIgnoreList.add(getText());
    //#IgnoreListPanel.java:195: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1:getText()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#    method: bool save()
    //#    unanalyzed callee: String com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1:getText()
    //#IgnoreListPanel.java:195: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.IgnoreList:add(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#    method: bool save()
    //#    unanalyzed callee: void com.dmdirc.IgnoreList:add(String)
                    } else {
                        cachedIgnoreList.addSimple(getText());
    //#IgnoreListPanel.java:197: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1:getText()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#    method: bool save()
    //#    unanalyzed callee: String com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1:getText()
    //#IgnoreListPanel.java:197: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.IgnoreList:addSimple(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#    method: bool save()
    //#    unanalyzed callee: void com.dmdirc.IgnoreList:addSimple(String)
                    }

                    updateList();
                    return true;
    //#IgnoreListPanel.java:201: end of method: bool com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.save()
                }

                /** {@inheritDoc} */
                @Override
                public void cancelled() {
                    //Ignore
                }
    //#IgnoreListPanel.java:208: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.cancelled()
    //#IgnoreListPanel.java:208: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.cancelled()
            }.display();
        } else if (e.getSource() == delButton && list.getSelectedIndex() != -1 && JOptionPane.showConfirmDialog(this,
                "Are you sure you want to delete this item?",
                "Delete Confirmation", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
            cachedIgnoreList.remove(list.getSelectedIndex());
    //#IgnoreListPanel.java:213: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.IgnoreList:remove(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.IgnoreList:remove(int)

            updateList();
        } else if (e.getSource() == viewToggle) {
            listModel.setIsSimple(!viewToggle.isSelected());
        }
    }
    //#IgnoreListPanel.java:219: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.actionPerformed(ActionEvent)

    /** {@inheritDoc} */
    @Override
    public void valueChanged(final ListSelectionEvent e) {
        if (list.getSelectedIndex() == -1) {
    //#IgnoreListPanel.java:224: method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.valueChanged(ListSelectionEvent)
    //#input(void valueChanged(ListSelectionEvent)): this
    //#input(void valueChanged(ListSelectionEvent)): this.delButton
    //#input(void valueChanged(ListSelectionEvent)): this.list
    //#pre[2] (void valueChanged(ListSelectionEvent)): this.delButton != null
    //#pre[3] (void valueChanged(ListSelectionEvent)): this.list != null
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.JList:getSelectedIndex(...)@224: {-2_147_483_648..-2, 0..4_294_967_295}, {-1}
            delButton.setEnabled(false);
        } else {
            delButton.setEnabled(true);
        }
    }
    //#IgnoreListPanel.java:229: end of method: void com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.valueChanged(ListSelectionEvent)
}
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListPanel$1]
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init): __Dispatch_Table.cancelled()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init): __Dispatch_Table.save()Z
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListPanel$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init): __Dispatch_Table.cancelled()V == &cancelled
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init): __Dispatch_Table.save()Z == &save
    //#IgnoreListPanel.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1__static_init
    //#IgnoreListPanel.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel$1
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListPanel]
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.addListeners()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.populateList()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.saveList()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.updateList()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.updateSizeLabel()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/serversetting/IgnoreListPanel] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.addListeners()V == &addListeners
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.populateList()V == &populateList
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.saveList()V == &saveList
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.updateList()V == &updateList
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.updateSizeLabel()V == &updateSizeLabel
    //#post(com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V == &valueChanged
    //#IgnoreListPanel.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel.com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel__static_init
    //#IgnoreListPanel.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.serversetting.IgnoreListPanel
