//# 1 errors, 1,113 messages
//#
/*
    //#AliasManagerDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1
    //#AliasManagerDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1__static_init
    //#AliasManagerDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#AliasManagerDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__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.aliases;

import com.dmdirc.addons.ui_swing.components.renderers.ArrayCellRenderer;
import com.dmdirc.addons.ui_swing.components.renderers.ActionConditionCellRenderer;
import com.dmdirc.actions.wrappers.Alias;
import com.dmdirc.actions.Action;
import com.dmdirc.actions.ActionCondition;
import com.dmdirc.actions.ActionManager;
import com.dmdirc.actions.CoreActionComparison;
import com.dmdirc.actions.wrappers.AliasWrapper;
import com.dmdirc.addons.ui_swing.components.PackingTable;
import com.dmdirc.addons.ui_swing.components.StandardDialog;

import java.awt.Dimension;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableCellRenderer;

import net.miginfocom.layout.PlatformDefaults;
import net.miginfocom.swing.MigLayout;

/**
 * Alias manager dialog.
 */
public final class AliasManagerDialog extends StandardDialog implements
        ActionListener, 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 = 3;
    /** Previously instantiated instance of AliasManagerDialog. */
    private static volatile AliasManagerDialog me;
    /** Table scrollpane. */
    private JScrollPane scrollPane;
    /** Error table. */
    private JTable table;
    /** Table model. */
    private AliasTableModel tableModel;
    /** Error detail panel. */
    private AliasPanel aliasDetails;
    /** Add/edit button. */
    private JButton addButton;
    /** Delete button. */
    private JButton deleteButton;
    /** Selected row. */
    private int selectedRow;
    /** Substitutions panel. */
    private AliasSubstitutionsPanel subsPanel;
    /** Show/Hide subsitution button. */
    private JButton showSubs;

    /** 
     * Creates a new instance of ErrorListDialog. 
     * 
     * @param parentWindow Parent window     
     */
    private AliasManagerDialog(final Window parentWindow) {
        super(parentWindow, ModalityType.MODELESS);
    //#AliasManagerDialog.java:96: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)
    //#AliasManagerDialog.java:96: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel$Alignment.VERTICAL
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Dispatch_Table.setType(Ljava/lang/Object;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.checkError()V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setEnabled(Z)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Dispatch_Table.setType(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Dispatch_Table.setType(Ljava/lang/Object;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_EQUALS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_GREATER
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_LESS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.java.lang.Boolean.TRUE
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Dispatch_Table.setType(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Dispatch_Table.setType(Ljava/lang/Object;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.com.dmdirc.actions.CoreActionType.UNKNOWN_COMMAND
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): parentWindow
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ActionConditionCellRenderer(initComponents#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ActionConditionCellRenderer(initComponents#2).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).this$0
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).val$arrayRenderer
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).val$conditionRenderer
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).alias
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).argumentComponent
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).argumentNumber
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).command
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).response
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11).alignment
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11).description
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8).aliases
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayCellRenderer(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayCellRenderer(initComponents#1).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayList(AliasTableModel#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#12) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#5) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JComboBox(AliasPanel#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JLabel(ValidatingJTextField#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JScrollPane(initComponents#7) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JSpinner(AliasPanel#8) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JTextArea(AliasPanel#10) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JTextField(ValidatingJTextField#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).errorIcon
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).textField
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).validator
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatorChain(AliasPanel#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.addButton
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.aliasDetails
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.deleteButton
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.scrollPane
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.selectedRow
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.showSubs
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.subsPanel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.table
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.tableModel
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ActionConditionCellRenderer(initComponents#2)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayCellRenderer(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayList(AliasTableModel#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#12)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#5)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#6)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JComboBox(AliasPanel#6)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JLabel(ValidatingJTextField#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JScrollPane(initComponents#7)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JSpinner(AliasPanel#8)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JTextArea(AliasPanel#10)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JTextField(ValidatingJTextField#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatorChain(AliasPanel#2)
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): init'ed(java.awt.Dialog$ModalityType.MODELESS)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.addButton == &new JButton(initComponents#5)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.aliasDetails == &new AliasPanel(initComponents#10)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.deleteButton == &new JButton(initComponents#6)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.scrollPane == &new JScrollPane(initComponents#7)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): init'ed(this.selectedRow)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.showSubs == &new JButton(initComponents#12)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.subsPanel == &new AliasSubstitutionsPanel(initComponents#11)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.table == &new AliasManagerDialog$1(initComponents#9)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): this.tableModel == &new AliasTableModel(initComponents#8)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ActionConditionCellRenderer(initComponents#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayCellRenderer(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayList(AliasTableModel#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#12) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#5) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JButton(initComponents#6) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JComboBox(AliasPanel#6) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JLabel(ValidatingJTextField#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JScrollPane(initComponents#7) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JSpinner(AliasPanel#8) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JTextArea(AliasPanel#10) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new JTextField(ValidatingJTextField#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatorChain(AliasPanel#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ActionConditionCellRenderer(initComponents#2).__Tag == com/dmdirc/addons/ui_swing/components/renderers/ActionConditionCellRenderer
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog$1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).this$0 == this
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).this$0 != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).val$arrayRenderer == &new ArrayCellRenderer(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasManagerDialog$1(initComponents#9).val$conditionRenderer == &new ActionConditionCellRenderer(initComponents#2)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): init'ed(new AliasPanel(initComponents#10).alias)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).argumentComponent == &new JComboBox(AliasPanel#6)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).argumentNumber == &new JSpinner(AliasPanel#8)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).command == &new ValidatingJTextField(AliasPanel#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasPanel(initComponents#10).response == &new JTextArea(AliasPanel#10)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11).__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11).alignment == &com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel$Alignment__static_init.new SubstitutionsPanel$Alignment(SubstitutionsPanel$Alignment__static_init#2)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasSubstitutionsPanel(initComponents#11).description == &"Substitutions may be used in the response field"
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8).__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasTableModel
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new AliasTableModel(initComponents#8).aliases == &new ArrayList(AliasTableModel#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ArrayCellRenderer(initComponents#1).__Tag == com/dmdirc/addons/ui_swing/components/renderers/ArrayCellRenderer
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).errorIcon == &new JLabel(ValidatingJTextField#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).textField == &new JTextField(ValidatingJTextField#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): new ValidatingJTextField(AliasPanel#1).validator == &new ValidatorChain(AliasPanel#2)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:iterator
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.Action:getConditions
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComparison
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getTarget
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.Action:getResponse
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.table.DefaultTableCellRenderer
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:orderButtons
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.table.AbstractTableModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.PackingTable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setAutoCreateRowSorter
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setAutoCreateColumnsFromModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setColumnSelectionAllowed
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setCellSelectionEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setDragEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setFillsViewportHeight
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setRowSelectionAllowed
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setSelectionMode
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:getRowSorter
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.RowSorter:toggleSortOrder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:getTableHeader
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.table.JTableHeader:setReorderingAllowed
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.lang.Integer:valueOf
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JSpinner:setEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:getFailureReason
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JLabel:setToolTipText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JLabel:isVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:firePropertyChange
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextArea:setEnabled
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComboBox:setSelectedItem
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JSpinner:setValue
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextArea:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.config.prefs.validator.CommandNameValidator
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.config.prefs.validator.FileNameValidator
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidatorChain
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextField:getDocument
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComponent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextField
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.SpinnerNumberModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JSpinner
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextArea
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTextArea:setRows
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.DefaultListCellRenderer
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComboBox:setRenderer
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComboBox:putClientProperty
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JComboBox:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:addUndoManager
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel:getBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.BorderFactory:createTitledBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel:setBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel$Alignment:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:setType
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setMinimumSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:setPreferredScrollableViewportSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JScrollPane:setMinimumSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JSplitPane:setDividerSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getLeftButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getRightButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JTable:getSelectionModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.ListSelectionModel:addListSelectionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getOkButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getCancelButton

        setTitle("DMDirc: Alias manager");
    //#AliasManagerDialog.java:98: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setTitle(String)

        selectedRow = -1;

        initComponents();
        layoutComponents();
        initListeners();
    }
    //#AliasManagerDialog.java:105: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)

    /** 
     * Creates the dialog if one doesn't exist, and displays it. 
     * 
     * @param parentWindow Parent window     
     */
    public static void showAliasManagerDialog(final Window parentWindow) {
        me = getAliasManagerDialog(parentWindow);
    //#AliasManagerDialog.java:113: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.showAliasManagerDialog(Window)
    //#input(void showAliasManagerDialog(Window)): __Class_Obj.__Lock
    //#input(void showAliasManagerDialog(Window)): me
    //#input(void showAliasManagerDialog(Window)): parentWindow
    //#output(void showAliasManagerDialog(Window)): me
    //#output(void showAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1) num objects
    //#output(void showAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1).__Tag
    //#new obj(void showAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1)
    //#pre[1] (void showAliasManagerDialog(Window)): init'ed(me)
    //#post(void showAliasManagerDialog(Window)): me == One-of{old me, &new AliasManagerDialog(getAliasManagerDialog#1)}
    //#post(void showAliasManagerDialog(Window)): me != null
    //#post(void showAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1) num objects <= 1
    //#post(void showAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog
    //#unanalyzed(void showAliasManagerDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#unanalyzed(void showAliasManagerDialog(Window)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj

        me.setLocationRelativeTo(parentWindow);
    //#AliasManagerDialog.java:115: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void showAliasManagerDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setLocationRelativeTo(Component)
        me.setVisible(true);
    //#AliasManagerDialog.java:116: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void showAliasManagerDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setVisible(bool)
        me.requestFocusInWindow();
    //#AliasManagerDialog.java:117: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:requestFocusInWindow()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void showAliasManagerDialog(Window)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:requestFocusInWindow()
    }
    //#AliasManagerDialog.java:118: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.showAliasManagerDialog(Window)

    /**
     * Returns the instance of AliasManagerDialog.
     * 
     * @param parentWindow Parent window     
     *
     * @return Instance of AliasManagerDialog
     */
    public static AliasManagerDialog getAliasManagerDialog(final Window parentWindow) {
        synchronized (AliasManagerDialog.class) {
    //#AliasManagerDialog.java:128: method: AliasManagerDialog com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.getAliasManagerDialog(Window)
    //#input(AliasManagerDialog getAliasManagerDialog(Window)): __Class_Obj.__Lock
    //#input(AliasManagerDialog getAliasManagerDialog(Window)): me
    //#input(AliasManagerDialog getAliasManagerDialog(Window)): parentWindow
    //#output(AliasManagerDialog getAliasManagerDialog(Window)): me
    //#output(AliasManagerDialog getAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1) num objects
    //#output(AliasManagerDialog getAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1).__Tag
    //#output(AliasManagerDialog getAliasManagerDialog(Window)): return_value
    //#new obj(AliasManagerDialog getAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1)
    //#pre[1] (AliasManagerDialog getAliasManagerDialog(Window)): init'ed(me)
    //#post(AliasManagerDialog getAliasManagerDialog(Window)): me == One-of{old me, &new AliasManagerDialog(getAliasManagerDialog#1)}
    //#post(AliasManagerDialog getAliasManagerDialog(Window)): me != null
    //#post(AliasManagerDialog getAliasManagerDialog(Window)): return_value == One-of{old me, &new AliasManagerDialog(getAliasManagerDialog#1)}
    //#post(AliasManagerDialog getAliasManagerDialog(Window)): return_value != null
    //#post(AliasManagerDialog getAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1) num objects <= 1
    //#post(AliasManagerDialog getAliasManagerDialog(Window)): new AliasManagerDialog(getAliasManagerDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog
            if (me == null) {
                me = new AliasManagerDialog(parentWindow);
    //#AliasManagerDialog.java:130: Warning: call too complex - analysis skipped
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: AliasManagerDialog getAliasManagerDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog(Window)
            }
        }

        return me;
    //#AliasManagerDialog.java:134: end of method: AliasManagerDialog com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.getAliasManagerDialog(Window)
    }

    /** Initialises the components. */
    private void initComponents() {
        final TableCellRenderer arrayRenderer = new ArrayCellRenderer();
    //#AliasManagerDialog.java:139: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.initComponents()
    //#input(void initComponents()): com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel$Alignment.VERTICAL
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/substitutions/SubstitutionsPanel.__Dispatch_Table.setType(Ljava/lang/Object;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.checkError()V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Dispatch_Table.setType(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Dispatch_Table.setType(Ljava/lang/Object;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_EQUALS
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_GREATER
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_LESS
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.java.lang.Boolean.TRUE
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Dispatch_Table.setType(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.__Dispatch_Table.setType(Ljava/lang/Object;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel.com.dmdirc.actions.CoreActionType.UNKNOWN_COMMAND
    //#input(void initComponents()): this
    //#output(void initComponents()): new ActionConditionCellRenderer(initComponents#2) num objects
    //#output(void initComponents()): this.table.val$conditionRenderer.__Tag
    //#output(void initComponents()): new AliasManagerDialog$1(initComponents#9) num objects
    //#output(void initComponents()): this.table.__Tag
    //#output(void initComponents()): this.table.this$0
    //#output(void initComponents()): this.table.val$arrayRenderer
    //#output(void initComponents()): this.table.val$conditionRenderer
    //#output(void initComponents()): new AliasPanel(initComponents#10) num objects
    //#output(void initComponents()): this.aliasDetails.__Tag
    //#output(void initComponents()): this.aliasDetails.alias
    //#output(void initComponents()): this.aliasDetails.argumentComponent
    //#output(void initComponents()): this.aliasDetails.argumentNumber
    //#output(void initComponents()): this.aliasDetails.command
    //#output(void initComponents()): this.aliasDetails.response
    //#output(void initComponents()): new AliasSubstitutionsPanel(initComponents#11) num objects
    //#output(void initComponents()): this.subsPanel.__Tag
    //#output(void initComponents()): this.subsPanel.alignment
    //#output(void initComponents()): this.subsPanel.description
    //#output(void initComponents()): new AliasTableModel(initComponents#8) num objects
    //#output(void initComponents()): this.tableModel.__Tag
    //#output(void initComponents()): this.tableModel.aliases
    //#output(void initComponents()): new ArrayCellRenderer(initComponents#1) num objects
    //#output(void initComponents()): this.table.val$arrayRenderer.__Tag
    //#output(void initComponents()): new ArrayList(AliasTableModel#1) num objects
    //#output(void initComponents()): new JButton(initComponents#12) num objects
    //#output(void initComponents()): new JButton(initComponents#5) num objects
    //#output(void initComponents()): new JButton(initComponents#6) num objects
    //#output(void initComponents()): new JComboBox(AliasPanel#6) num objects
    //#output(void initComponents()): new JLabel(ValidatingJTextField#1) num objects
    //#output(void initComponents()): new JScrollPane(initComponents#7) num objects
    //#output(void initComponents()): new JSpinner(AliasPanel#8) num objects
    //#output(void initComponents()): new JTextArea(AliasPanel#10) num objects
    //#output(void initComponents()): new JTextField(ValidatingJTextField#1) num objects
    //#output(void initComponents()): new ValidatingJTextField(AliasPanel#1) num objects
    //#output(void initComponents()): new ValidatingJTextField(AliasPanel#1).__Tag
    //#output(void initComponents()): new ValidatingJTextField(AliasPanel#1).errorIcon
    //#output(void initComponents()): new ValidatingJTextField(AliasPanel#1).textField
    //#output(void initComponents()): new ValidatingJTextField(AliasPanel#1).validator
    //#output(void initComponents()): new ValidatorChain(AliasPanel#2) num objects
    //#output(void initComponents()): this.addButton
    //#output(void initComponents()): this.aliasDetails
    //#output(void initComponents()): this.deleteButton
    //#output(void initComponents()): this.scrollPane
    //#output(void initComponents()): this.showSubs
    //#output(void initComponents()): this.subsPanel
    //#output(void initComponents()): this.table
    //#output(void initComponents()): this.tableModel
    //#new obj(void initComponents()): new ActionConditionCellRenderer(initComponents#2)
    //#new obj(void initComponents()): new AliasManagerDialog$1(initComponents#9)
    //#new obj(void initComponents()): new AliasPanel(initComponents#10)
    //#new obj(void initComponents()): new AliasSubstitutionsPanel(initComponents#11)
    //#new obj(void initComponents()): new AliasTableModel(initComponents#8)
    //#new obj(void initComponents()): new ArrayCellRenderer(initComponents#1)
    //#new obj(void initComponents()): new ArrayList(AliasTableModel#1)
    //#new obj(void initComponents()): new JButton(initComponents#12)
    //#new obj(void initComponents()): new JButton(initComponents#5)
    //#new obj(void initComponents()): new JButton(initComponents#6)
    //#new obj(void initComponents()): new JComboBox(AliasPanel#6)
    //#new obj(void initComponents()): new JLabel(ValidatingJTextField#1)
    //#new obj(void initComponents()): new JScrollPane(initComponents#7)
    //#new obj(void initComponents()): new JSpinner(AliasPanel#8)
    //#new obj(void initComponents()): new JTextArea(AliasPanel#10)
    //#new obj(void initComponents()): new JTextField(ValidatingJTextField#1)
    //#new obj(void initComponents()): new ValidatingJTextField(AliasPanel#1)
    //#new obj(void initComponents()): new ValidatorChain(AliasPanel#2)
    //#presumption(void initComponents()): javax.swing.JTable:getRowSorter(...)@178 != null
    //#presumption(void initComponents()): javax.swing.JTable:getTableHeader(...)@180 != null
    //#post(void initComponents()): this.addButton == &new JButton(initComponents#5)
    //#post(void initComponents()): this.aliasDetails == &new AliasPanel(initComponents#10)
    //#post(void initComponents()): this.deleteButton == &new JButton(initComponents#6)
    //#post(void initComponents()): this.scrollPane == &new JScrollPane(initComponents#7)
    //#post(void initComponents()): this.showSubs == &new JButton(initComponents#12)
    //#post(void initComponents()): this.subsPanel == &new AliasSubstitutionsPanel(initComponents#11)
    //#post(void initComponents()): this.table == &new AliasManagerDialog$1(initComponents#9)
    //#post(void initComponents()): this.tableModel == &new AliasTableModel(initComponents#8)
    //#post(void initComponents()): new ActionConditionCellRenderer(initComponents#2) num objects == 1
    //#post(void initComponents()): new AliasManagerDialog$1(initComponents#9) num objects == 1
    //#post(void initComponents()): new AliasPanel(initComponents#10) num objects == 1
    //#post(void initComponents()): new AliasSubstitutionsPanel(initComponents#11) num objects == 1
    //#post(void initComponents()): new AliasTableModel(initComponents#8) num objects == 1
    //#post(void initComponents()): new ArrayCellRenderer(initComponents#1) num objects == 1
    //#post(void initComponents()): new ArrayList(AliasTableModel#1) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#12) 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 JComboBox(AliasPanel#6) num objects == 1
    //#post(void initComponents()): new JLabel(ValidatingJTextField#1) num objects == 1
    //#post(void initComponents()): new JScrollPane(initComponents#7) num objects == 1
    //#post(void initComponents()): new JSpinner(AliasPanel#8) num objects == 1
    //#post(void initComponents()): new JTextArea(AliasPanel#10) num objects == 1
    //#post(void initComponents()): new JTextField(ValidatingJTextField#1) num objects == 1
    //#post(void initComponents()): new ValidatingJTextField(AliasPanel#1) num objects == 1
    //#post(void initComponents()): new ValidatorChain(AliasPanel#2) num objects == 1
    //#post(void initComponents()): this.table.val$conditionRenderer.__Tag == com/dmdirc/addons/ui_swing/components/renderers/ActionConditionCellRenderer
    //#post(void initComponents()): this.table.__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog$1
    //#post(void initComponents()): this.table.this$0 == this
    //#post(void initComponents()): this.table.this$0 != null
    //#post(void initComponents()): this.table.val$arrayRenderer == &new ArrayCellRenderer(initComponents#1)
    //#post(void initComponents()): this.table.val$conditionRenderer == &new ActionConditionCellRenderer(initComponents#2)
    //#post(void initComponents()): this.aliasDetails.__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel
    //#post(void initComponents()): this.aliasDetails.alias == null
    //#post(void initComponents()): this.aliasDetails.argumentComponent == &new JComboBox(AliasPanel#6)
    //#post(void initComponents()): this.aliasDetails.argumentNumber == &new JSpinner(AliasPanel#8)
    //#post(void initComponents()): this.aliasDetails.command == &new ValidatingJTextField(AliasPanel#1)
    //#post(void initComponents()): this.aliasDetails.response == &new JTextArea(AliasPanel#10)
    //#post(void initComponents()): this.subsPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasSubstitutionsPanel
    //#post(void initComponents()): this.subsPanel.alignment == &com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel$Alignment__static_init.new SubstitutionsPanel$Alignment(SubstitutionsPanel$Alignment__static_init#2)
    //#post(void initComponents()): this.subsPanel.description == &"Substitutions may be used in the response field"
    //#post(void initComponents()): this.tableModel.__Tag == com/dmdirc/addons/ui_swing/dialogs/aliases/AliasTableModel
    //#post(void initComponents()): this.tableModel.aliases == &new ArrayList(AliasTableModel#1)
    //#post(void initComponents()): this.table.val$arrayRenderer.__Tag == com/dmdirc/addons/ui_swing/components/renderers/ArrayCellRenderer
    //#post(void initComponents()): new ValidatingJTextField(AliasPanel#1).__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#post(void initComponents()): new ValidatingJTextField(AliasPanel#1).errorIcon == &new JLabel(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(AliasPanel#1).textField == &new JTextField(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(AliasPanel#1).validator == &new ValidatorChain(AliasPanel#2)
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:iterator
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.Action:getConditions
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComparison
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getTarget
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.Action:getResponse
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.table.DefaultTableCellRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.table.AbstractTableModel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.PackingTable
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Integer:valueOf
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JSpinner:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:getFailureReason
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel:setToolTipText
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel:isVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:firePropertyChange
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextArea:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:setSelectedItem
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JSpinner:setValue
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextArea:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.CommandNameValidator
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.FileNameValidator
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidatorChain
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:getDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComponent
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.SpinnerNumberModel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JSpinner
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextArea
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextArea:setRows
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListCellRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:setRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:putClientProperty
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:addUndoManager
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel:getBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.BorderFactory:createTitledBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel$Alignment:equals
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:setType
        final TableCellRenderer conditionRenderer =
                new ActionConditionCellRenderer();

        orderButtons(new JButton(), new JButton());
    //#AliasManagerDialog.java:143: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:orderButtons(JButton, JButton)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:orderButtons(JButton, JButton)
        addButton = new JButton("Add");
        deleteButton = new JButton("Delete");

        deleteButton.setEnabled(false);

        scrollPane = new JScrollPane();

        tableModel = new AliasTableModel(getTableData());
        table = new PackingTable(tableModel, false, scrollPane, false) {
    //#AliasManagerDialog.java:152: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)
    //#AliasManagerDialog.java:152: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.PackingTable(TableModel, bool, JScrollPane, bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.PackingTable(TableModel, bool, JScrollPane, bool)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): Param_6
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): Param_7
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): x0
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): x1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): x2
    //#input(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): x3
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this.val$arrayRenderer
    //#output(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this.val$conditionRenderer
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this.val$arrayRenderer == Param_7
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): init'ed(this.val$arrayRenderer)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): this.val$conditionRenderer == Param_6
    //#post(void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)): init'ed(this.val$conditionRenderer)
    //#AliasManagerDialog.java:152: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1(AliasManagerDialog, TableModel, bool, JScrollPane, bool, TableCellRenderer, TableCellRenderer)

            private static final long serialVersionUID = 1;

            @Override
            public TableCellRenderer getCellRenderer(final int row,
                    final int column) {
                switch (column) {
    //#AliasManagerDialog.java:159: method: TableCellRenderer com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1.getCellRenderer(int, int)
    //#input(TableCellRenderer getCellRenderer(int, int)): column
    //#input(TableCellRenderer getCellRenderer(int, int)): row
    //#input(TableCellRenderer getCellRenderer(int, int)): this
    //#input(TableCellRenderer getCellRenderer(int, int)): this.val$arrayRenderer
    //#input(TableCellRenderer getCellRenderer(int, int)): this.val$conditionRenderer
    //#output(TableCellRenderer getCellRenderer(int, int)): return_value
    //#post(TableCellRenderer getCellRenderer(int, int)): init'ed(return_value)
    //#test_vector(TableCellRenderer getCellRenderer(int, int)): column: {1}, {2}, {-2_147_483_648..0, 3..4_294_967_295}
                    case 1:
                        return conditionRenderer;
                    case 2:
                        return arrayRenderer;
                    default:
                        return super.getCellRenderer(row, column);
    //#AliasManagerDialog.java:165: Warning: method not available - call not analyzed
    //#    call on TableCellRenderer com.dmdirc.addons.ui_swing.components.PackingTable:getCellRenderer(int, int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1
    //#    method: TableCellRenderer getCellRenderer(int, int)
    //#    unanalyzed callee: TableCellRenderer com.dmdirc.addons.ui_swing.components.PackingTable:getCellRenderer(int, int)
    //#AliasManagerDialog.java:165: end of method: TableCellRenderer com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1.getCellRenderer(int, int)
                }
            }
        };

        table.setAutoCreateRowSorter(true);
        table.setAutoCreateColumnsFromModel(true);
        table.setColumnSelectionAllowed(false);
        table.setCellSelectionEnabled(false);
        table.setDragEnabled(false);
        table.setFillsViewportHeight(false);
        table.setRowSelectionAllowed(true);
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        table.getRowSorter().toggleSortOrder(0);

        table.getTableHeader().setReorderingAllowed(false);

        scrollPane.setViewportView(table);

        aliasDetails = new AliasPanel();
        subsPanel = new AliasSubstitutionsPanel();
        subsPanel.setVisible(false);
    //#AliasManagerDialog.java:186: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible(bool)
        showSubs = new JButton("Show Substitutions");
    }
    //#AliasManagerDialog.java:188: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.initComponents()

    /**
     * Updates the table data.
     */
    public void updateTableData() {
        tableModel.setAliases(getTableData());
    //#AliasManagerDialog.java:194: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.updateTableData()
    //#input(void updateTableData()): com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#input(void updateTableData()): this
    //#input(void updateTableData()): this.tableModel
    //#output(void updateTableData()): new ArrayList(setAliases#1) num objects
    //#output(void updateTableData()): this.tableModel.aliases
    //#new obj(void updateTableData()): new ArrayList(setAliases#1)
    //#pre[2] (void updateTableData()): this.tableModel != null
    //#post(void updateTableData()): this.tableModel.aliases == &new ArrayList(setAliases#1)
    //#post(void updateTableData()): new ArrayList(setAliases#1) num objects == 1
    //#unanalyzed(void updateTableData()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:iterator
    //#unanalyzed(void updateTableData()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void updateTableData()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.Action:getConditions
    //#unanalyzed(void updateTableData()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComparison
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getTarget
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.Action:getResponse
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias
    //#unanalyzed(void updateTableData()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void updateTableData()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableDataChanged
    }
    //#AliasManagerDialog.java:195: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.updateTableData()

    /**
     * Gets the table data fromt he alias wrapper.
     *
     * @return Alias list
     */
    private List<Alias> getTableData() {
        final List<Alias> aliases = new ArrayList<Alias>();
    //#AliasManagerDialog.java:203: method: List com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.getTableData()
    //#input(List getTableData()): com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#output(List getTableData()): new ArrayList(getTableData#1) num objects
    //#output(List getTableData()): return_value
    //#new obj(List getTableData()): new ArrayList(getTableData#1)
    //#presumption(List getTableData()): com.dmdirc.actions.Action:getConditions(...)@206 != null
    //#presumption(List getTableData()): init'ed(com.dmdirc.actions.CoreActionComparison.STRING_EQUALS)
    //#presumption(List getTableData()): com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper(...)@205 != null
    //#presumption(List getTableData()): com.dmdirc.actions.wrappers.AliasWrapper:iterator(...)@205 != null
    //#presumption(List getTableData()): java.util.Iterator:next(...)@205 != null
    //#presumption(List getTableData()): java.util.List:get(...)@210 != null
    //#presumption(List getTableData()): java.util.List:get(...)@213 != null
    //#post(List getTableData()): return_value == &new ArrayList(getTableData#1)
    //#post(List getTableData()): new ArrayList(getTableData#1) num objects == 1
    //#test_vector(List getTableData()): java.util.Iterator:hasNext(...)@205: {0}, {1}

        for (Action loopAction : AliasWrapper.getAliasWrapper()) {
    //#AliasManagerDialog.java:205: Warning: method not available - call not analyzed
    //#    call on AliasWrapper com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: AliasWrapper com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper()
    //#AliasManagerDialog.java:205: Warning: method not available - call not analyzed
    //#    call on Iterator com.dmdirc.actions.wrappers.AliasWrapper:iterator()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: Iterator com.dmdirc.actions.wrappers.AliasWrapper:iterator()
            final List<ActionCondition> arguments = loopAction.getConditions();
    //#AliasManagerDialog.java:206: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.Action:getConditions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: List com.dmdirc.actions.Action:getConditions()

            ActionCondition argument;

            argument = arguments.get(0);

            if (argument.getComparison() != CoreActionComparison.STRING_EQUALS) {
    //#AliasManagerDialog.java:212: Warning: method not available - call not analyzed
    //#    call on ActionComparison com.dmdirc.actions.ActionCondition:getComparison()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: ActionComparison com.dmdirc.actions.ActionCondition:getComparison()
                argument = arguments.get(1);
            }

            aliases.add(new Alias(argument.getTarget(),
    //#AliasManagerDialog.java:216: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.ActionCondition:getTarget()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: String com.dmdirc.actions.ActionCondition:getTarget()
    //#AliasManagerDialog.java:216: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.actions.Action:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: String[] com.dmdirc.actions.Action:getResponse()
    //#AliasManagerDialog.java:216: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.wrappers.Alias(String, List, String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: List getTableData()
    //#    unanalyzed callee: void com.dmdirc.actions.wrappers.Alias(String, List, String[])
                    arguments, loopAction.getResponse()));
        }

        return aliases;
    //#AliasManagerDialog.java:220: end of method: List com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.getTableData()
    }

    /** Initialises the listeners. */
    private void initListeners() {
        table.getSelectionModel().addListSelectionListener(this);
    //#AliasManagerDialog.java:225: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.initListeners()
    //#input(void initListeners()): this
    //#input(void initListeners()): this.addButton
    //#input(void initListeners()): this.deleteButton
    //#input(void initListeners()): this.showSubs
    //#input(void initListeners()): this.table
    //#pre[2] (void initListeners()): this.addButton != null
    //#pre[3] (void initListeners()): this.deleteButton != null
    //#pre[4] (void initListeners()): this.showSubs != null
    //#pre[5] (void initListeners()): this.table != null
    //#presumption(void initListeners()): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getCancelButton(...)@227 != null
    //#presumption(void initListeners()): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getOkButton(...)@226 != null
    //#presumption(void initListeners()): javax.swing.JTable:getSelectionModel(...)@225 != null
        getOkButton().addActionListener(this);
    //#AliasManagerDialog.java:226: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void initListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getOkButton()
        getCancelButton().addActionListener(this);
    //#AliasManagerDialog.java:227: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void initListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getCancelButton()
        addButton.addActionListener(this);
        deleteButton.addActionListener(this);
        showSubs.addActionListener(this);
    }
    //#AliasManagerDialog.java:231: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.initListeners()

    /** Lays out the components. */
    private void layoutComponents() {
        setLayout(new MigLayout("fill, hidemode 3, pack"));
    //#AliasManagerDialog.java:235: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.layoutComponents()
    //#AliasManagerDialog.java:235: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#AliasManagerDialog.java:235: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setLayout(LayoutManager)
    //#input(void layoutComponents()): this
    //#input(void layoutComponents()): this.addButton
    //#input(void layoutComponents()): this.aliasDetails
    //#input(void layoutComponents()): this.deleteButton
    //#input(void layoutComponents()): this.scrollPane
    //#input(void layoutComponents()): this.showSubs
    //#input(void layoutComponents()): this.subsPanel
    //#input(void layoutComponents()): this.table
    //#pre[2] (void layoutComponents()): init'ed(this.addButton)
    //#pre[3] (void layoutComponents()): init'ed(this.aliasDetails)
    //#pre[4] (void layoutComponents()): init'ed(this.deleteButton)
    //#pre[5] (void layoutComponents()): this.scrollPane != null
    //#pre[6] (void layoutComponents()): init'ed(this.showSubs)
    //#pre[7] (void layoutComponents()): init'ed(this.subsPanel)
    //#pre[8] (void layoutComponents()): this.table != null
    //#presumption(void layoutComponents()): (int) (net.miginfocom.layout.UnitValue:getValue(...)@241) in {-2_147_483_648..4_294_967_295}
    //#presumption(void layoutComponents()): net.miginfocom.layout.PlatformDefaults:getPanelInsets(...)@241 != null
        setMinimumSize(new Dimension(800, 400));
    //#AliasManagerDialog.java:236: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setMinimumSize(Dimension)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:setMinimumSize(Dimension)
        table.setPreferredScrollableViewportSize(new Dimension(800, 150));
        scrollPane.setMinimumSize(new Dimension(750, 150));
        final JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                true, scrollPane, aliasDetails);
        splitPane.setDividerSize((int) PlatformDefaults.getPanelInsets(0).
    //#AliasManagerDialog.java:241: Warning: method not available - call not analyzed
    //#    call on UnitValue net.miginfocom.layout.PlatformDefaults:getPanelInsets(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: UnitValue net.miginfocom.layout.PlatformDefaults:getPanelInsets(int)
    //#AliasManagerDialog.java:241: Warning: method not available - call not analyzed
    //#    call on float net.miginfocom.layout.UnitValue:getValue()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: float net.miginfocom.layout.UnitValue:getValue()
                getValue());

        add(splitPane, "spanx 5, grow, push, wrap");
    //#AliasManagerDialog.java:244: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
        add(subsPanel, "spanx 5, grow, pushy, wrap");
    //#AliasManagerDialog.java:245: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
        add(showSubs, "split 3, sgx button");
    //#AliasManagerDialog.java:246: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
        add(addButton, "sgx button, gap unrel");
    //#AliasManagerDialog.java:247: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
        add(deleteButton, "sgx button");
    //#AliasManagerDialog.java:248: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
        add(getLeftButton(), "sgx button, gap unrel");
    //#AliasManagerDialog.java:249: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getLeftButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getLeftButton()
    //#AliasManagerDialog.java:249: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
        add(getRightButton(), "sgx button");
    //#AliasManagerDialog.java:250: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getRightButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getRightButton()
    //#AliasManagerDialog.java:250: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:add(Component, Object)
    }
    //#AliasManagerDialog.java:251: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.layoutComponents()

    /** {@inheritDoc}. */
    @Override
    public void valueChanged(final ListSelectionEvent e) {
        if (!e.getValueIsAdjusting()) {
    //#AliasManagerDialog.java:256: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.valueChanged(ListSelectionEvent)
    //#input(void valueChanged(ListSelectionEvent)): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1).length
    //#input(void valueChanged(ListSelectionEvent)): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1)[0..4_294_967_295]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.checkError()V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.getText()Ljava/lang/String;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setEnabled(Z)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel$1.$SwitchMap$com$dmdirc$actions$CoreActionComparison
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_EQUALS
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_GREATER
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_LESS
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComponent.STRINGARRAY_LENGTH
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComponent.STRING_STRING
    //#input(void valueChanged(ListSelectionEvent)): e
    //#input(void valueChanged(ListSelectionEvent)): this
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.alias
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.argumentComponent
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.argumentNumber
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.command
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.command.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.command.errorIcon
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.command.textField
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.command.validator
    //#input(void valueChanged(ListSelectionEvent)): this.aliasDetails.response
    //#input(void valueChanged(ListSelectionEvent)): this.deleteButton
    //#input(void valueChanged(ListSelectionEvent)): this.selectedRow
    //#input(void valueChanged(ListSelectionEvent)): this.table
    //#input(void valueChanged(ListSelectionEvent)): this.tableModel
    //#input(void valueChanged(ListSelectionEvent)): this.tableModel.aliases
    //#output(void valueChanged(ListSelectionEvent)): this.aliasDetails.alias
    //#output(void valueChanged(ListSelectionEvent)): this.selectedRow
    //#pre[2] (void valueChanged(ListSelectionEvent)): e != null
    //#pre[1] (void valueChanged(ListSelectionEvent)): (soft) init'ed(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1)[0..4_294_967_295])
    //#pre[3] (void valueChanged(ListSelectionEvent)): (soft) init'ed(this.aliasDetails.alias)
    //#pre[4] (void valueChanged(ListSelectionEvent)): (soft) init'ed(this.selectedRow)
    //#pre[6] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails != null
    //#pre[7] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.argumentComponent != null
    //#pre[8] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.argumentNumber != null
    //#pre[9] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.command != null
    //#pre[10] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.command.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[11] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.command.errorIcon != null
    //#pre[12] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.command.textField != null
    //#pre[13] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.command.validator != null
    //#pre[14] (void valueChanged(ListSelectionEvent)): (soft) this.aliasDetails.response != null
    //#pre[15] (void valueChanged(ListSelectionEvent)): (soft) this.deleteButton != null
    //#pre[16] (void valueChanged(ListSelectionEvent)): (soft) this.table != null
    //#pre[17] (void valueChanged(ListSelectionEvent)): (soft) this.tableModel != null
    //#pre[18] (void valueChanged(ListSelectionEvent)): (soft) this.tableModel.aliases != null
    //#presumption(void valueChanged(ListSelectionEvent)): com.dmdirc.actions.CoreActionComparison:values(...).length >= 1
    //#presumption(void valueChanged(ListSelectionEvent)): javax.swing.JTable:getRowSorter(...)@258 != null
    //#presumption(void valueChanged(ListSelectionEvent)): javax.swing.JTable:getRowSorter(...)@264 != null
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.aliasDetails.alias)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.selectedRow)
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTable:getRowSorter
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.Integer:valueOf
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JSpinner:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:clear
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:getFailureReason
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JLabel:setToolTipText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JLabel:isVisible
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:firePropertyChange
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextArea:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JComboBox:setSelectedItem
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JSpinner:setValue
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextArea:setText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.RowSorter:convertRowIndexToModel
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.CoreActionComparison:ordinal
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JSpinner:getValue
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextArea:getText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:update
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsUpdated
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getCommand
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getArguments
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComparison
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getTarget
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getResponse
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuffer:substring
    //#test_vector(void valueChanged(ListSelectionEvent)): this.selectedRow: {-2_147_483_648..-1}, {0..4_294_967_294}
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.JTable:getSelectedRow(...)@263: {-2_147_483_648..-1}, {0..4_294_967_295}
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.event.ListSelectionEvent:getValueIsAdjusting(...)@256: {1}, {0}

            if (selectedRow > -1 && selectedRow < tableModel.getRowCount() && aliasDetails.getAlias() == tableModel.getAlias(
                    table.getRowSorter().convertRowIndexToModel(selectedRow))) {
                updateAlias();
            }

            if (table.getSelectedRow() > -1) {
                aliasDetails.setAlias(tableModel.getAlias(table.getRowSorter().
                        convertRowIndexToModel(table.getSelectedRow())));
                deleteButton.setEnabled(true);
            } else {
                aliasDetails.clear();
                deleteButton.setEnabled(false);
            }

            selectedRow = table.getSelectedRow();
        }
    }
    //#AliasManagerDialog.java:274: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.valueChanged(ListSelectionEvent)

    /** Updates the selected alias with the edited details. */
    private void updateAlias() {
        final Alias alias = tableModel.getAlias(table.getRowSorter().
    //#AliasManagerDialog.java:278: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.updateAlias()
    //#input(void updateAlias()): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1).length
    //#input(void updateAlias()): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1)[0..4_294_967_295]
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.getText()Ljava/lang/String;
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel$1.$SwitchMap$com$dmdirc$actions$CoreActionComparison
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_EQUALS
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_GREATER
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_LESS
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComponent.STRINGARRAY_LENGTH
    //#input(void updateAlias()): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComponent.STRING_STRING
    //#input(void updateAlias()): this
    //#input(void updateAlias()): this.aliasDetails
    //#input(void updateAlias()): this.aliasDetails.argumentComponent
    //#input(void updateAlias()): this.aliasDetails.argumentNumber
    //#input(void updateAlias()): this.aliasDetails.command
    //#input(void updateAlias()): this.aliasDetails.command.__Tag
    //#input(void updateAlias()): this.aliasDetails.command.textField
    //#input(void updateAlias()): this.aliasDetails.response
    //#input(void updateAlias()): this.selectedRow
    //#input(void updateAlias()): this.table
    //#input(void updateAlias()): this.tableModel
    //#input(void updateAlias()): this.tableModel.aliases
    //#pre[3] (void updateAlias()): this.aliasDetails != null
    //#pre[4] (void updateAlias()): this.aliasDetails.argumentComponent != null
    //#pre[6] (void updateAlias()): this.aliasDetails.command != null
    //#pre[7] (void updateAlias()): this.aliasDetails.command.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[8] (void updateAlias()): this.aliasDetails.command.textField != null
    //#pre[9] (void updateAlias()): this.aliasDetails.response != null
    //#pre[10] (void updateAlias()): init'ed(this.selectedRow)
    //#pre[11] (void updateAlias()): this.table != null
    //#pre[12] (void updateAlias()): this.tableModel != null
    //#pre[13] (void updateAlias()): this.tableModel.aliases != null
    //#pre[1] (void updateAlias()): (soft) init'ed(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1)[0..4_294_967_295])
    //#pre[5] (void updateAlias()): (soft) this.aliasDetails.argumentNumber != null
    //#presumption(void updateAlias()): com.dmdirc.actions.CoreActionComparison:values(...).length >= 1
    //#presumption(void updateAlias()): java.util.List:get(...)@175 != null
    //#presumption(void updateAlias()): javax.swing.JTable:getRowSorter(...)@278 != null
    //#unanalyzed(void updateAlias()): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void updateAlias()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void updateAlias()): Effects-of-calling:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void updateAlias()): Effects-of-calling:com.dmdirc.actions.CoreActionComparison:ordinal
    //#unanalyzed(void updateAlias()): Effects-of-calling:javax.swing.JSpinner:getValue
    //#unanalyzed(void updateAlias()): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void updateAlias()): Effects-of-calling:com.dmdirc.actions.ActionCondition
    //#unanalyzed(void updateAlias()): Effects-of-calling:javax.swing.JTextArea:getText
    //#unanalyzed(void updateAlias()): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void updateAlias()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void updateAlias()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void updateAlias()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias
    //#unanalyzed(void updateAlias()): Effects-of-calling:java.util.List:indexOf
                convertRowIndexToModel(selectedRow));

        alias.update(aliasDetails.getNewAlias());
    //#AliasManagerDialog.java:281: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.wrappers.Alias:update(Alias)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void updateAlias()
    //#    unanalyzed callee: void com.dmdirc.actions.wrappers.Alias:update(Alias)

        tableModel.fireTableRowsUpdated(tableModel.indexOf(alias),
    //#AliasManagerDialog.java:283: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsUpdated(int, int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void updateAlias()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsUpdated(int, int)
                tableModel.indexOf(alias));
    }
    //#AliasManagerDialog.java:285: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.updateAlias()

    /** 
     * {@inheritDoc}
     * 
     * @param e Action event
     */
    @Override
    public void actionPerformed(final ActionEvent e) {
        if (e.getSource() == deleteButton) {
    //#AliasManagerDialog.java:294: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.actionPerformed(ActionEvent)
    //#input(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1).length
    //#input(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1)[0..4_294_967_295]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.getText()Ljava/lang/String;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.requestFocusInWindow()Z
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel$1.$SwitchMap$com$dmdirc$actions$CoreActionComparison
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_EQUALS
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_GREATER
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.INT_LESS
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComparison.STRING_EQUALS
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComponent.STRINGARRAY_LENGTH
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/aliases/AliasPanel.com.dmdirc.actions.CoreActionComponent.STRING_STRING
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): me
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.addButton
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails.argumentComponent
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails.argumentNumber
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails.command
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails.command.__Tag
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails.command.textField
    //#input(void actionPerformed(ActionEvent)): this.aliasDetails.response
    //#input(void actionPerformed(ActionEvent)): this.deleteButton
    //#input(void actionPerformed(ActionEvent)): this.selectedRow
    //#input(void actionPerformed(ActionEvent)): this.showSubs
    //#input(void actionPerformed(ActionEvent)): this.subsPanel
    //#input(void actionPerformed(ActionEvent)): this.table
    //#input(void actionPerformed(ActionEvent)): this.tableModel
    //#input(void actionPerformed(ActionEvent)): this.tableModel.aliases
    //#output(void actionPerformed(ActionEvent)): me
    //#pre[2] (void actionPerformed(ActionEvent)): e != null
    //#pre[14] (void actionPerformed(ActionEvent)): init'ed(this.deleteButton)
    //#pre[1] (void actionPerformed(ActionEvent)): (soft) init'ed(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasPanel$1__static_init.new int[](AliasPanel$1__static_init#1)[0..4_294_967_295])
    //#pre[4] (void actionPerformed(ActionEvent)): (soft) init'ed(me)
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) init'ed(this.addButton)
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails != null
    //#pre[8] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails.argumentComponent != null
    //#pre[9] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails.argumentNumber != null
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails.command != null
    //#pre[11] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails.command.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[12] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails.command.textField != null
    //#pre[13] (void actionPerformed(ActionEvent)): (soft) this.aliasDetails.response != null
    //#pre[15] (void actionPerformed(ActionEvent)): (soft) init'ed(this.selectedRow)
    //#pre[16] (void actionPerformed(ActionEvent)): (soft) this.showSubs != null
    //#pre[17] (void actionPerformed(ActionEvent)): (soft) this.subsPanel != null
    //#pre[18] (void actionPerformed(ActionEvent)): (soft) this.table != null
    //#pre[19] (void actionPerformed(ActionEvent)): (soft) this.tableModel != null
    //#pre[20] (void actionPerformed(ActionEvent)): (soft) this.tableModel.aliases != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.actions.CoreActionComparison:values(...).length >= 1
    //#post(void actionPerformed(ActionEvent)): me == One-of{old me, null}
    //#post(void actionPerformed(ActionEvent)): init'ed(me)
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper
    //#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:com.dmdirc.actions.Action:getConditions
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:getResponse
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTable:getRowSorter
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTable:getSelectionModel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.RowSorter:convertRowIndexToModel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.CoreActionComparison:ordinal
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JSpinner:getValue
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextArea:getText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:update
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsUpdated
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTable:getSelectedRow
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsDeleted
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsInserted
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.RowSorter:convertRowIndexToView
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.ListSelectionModel:setSelectionInterval
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextField:requestFocusInWindow
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:matches
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getActions
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:getName
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getName
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getArguments
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Object:equals
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:createAction
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:save
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setName
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setConditions
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getResponse
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setResponse
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Arrays:equals
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:delete
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.ActionManager:loadActions
    //#test_vector(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:isVisible(...)@314: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JTable:getSelectedRow(...)@301: {-1}, {-2_147_483_648..-2, 0..4_294_967_295}
            delete();
        } else if (e.getSource() == addButton) {
            add();
        } else if (e.getSource() == getCancelButton()) {
    //#AliasManagerDialog.java:298: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getCancelButton()
            dispose();
        } else if (e.getSource() == getOkButton()) {
    //#AliasManagerDialog.java:300: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog:getOkButton()
            if (table.getSelectedRow() != -1) {
                updateAlias();
            }
            if (checkForDuplicates()) {
                JOptionPane.showMessageDialog(this,
                        "There are duplicate aliases in the table, these need " +
                        "to be removed before saving", "Duplicates",
                        JOptionPane.WARNING_MESSAGE);
                return;
            }
            save();
            dispose();
        } else if (e.getSource() == showSubs) {
            if (subsPanel.isVisible()) {
    //#AliasManagerDialog.java:314: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:isVisible()
                subsPanel.setVisible(false);
    //#AliasManagerDialog.java:315: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible(bool)
                showSubs.setText("Show Substitutions");
            } else {
                subsPanel.setVisible(true);
    //#AliasManagerDialog.java:318: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasSubstitutionsPanel:setVisible(bool)
                showSubs.setText("Hide Substitutions");
            }
        }
    }
    //#AliasManagerDialog.java:322: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.actionPerformed(ActionEvent)

    /** Adds an alias. */
    private void add() {
        final Alias alias = new Alias("");
    //#AliasManagerDialog.java:326: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.add()
    //#AliasManagerDialog.java:326: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.wrappers.Alias(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void add()
    //#    unanalyzed callee: void com.dmdirc.actions.wrappers.Alias(String)
    //#input(void add()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void add()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void add()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.requestFocusInWindow()Z
    //#input(void add()): this
    //#input(void add()): this.aliasDetails
    //#input(void add()): this.aliasDetails.command
    //#input(void add()): this.aliasDetails.command.__Tag
    //#input(void add()): this.aliasDetails.command.textField
    //#input(void add()): this.table
    //#input(void add()): this.tableModel
    //#input(void add()): this.tableModel.aliases
    //#pre[2] (void add()): this.aliasDetails != null
    //#pre[3] (void add()): this.aliasDetails.command != null
    //#pre[4] (void add()): this.aliasDetails.command.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[5] (void add()): this.aliasDetails.command.textField != null
    //#pre[6] (void add()): this.table != null
    //#pre[7] (void add()): this.tableModel != null
    //#pre[8] (void add()): this.tableModel.aliases != null
    //#presumption(void add()): javax.swing.JTable:getRowSorter(...)@328 != null
    //#presumption(void add()): javax.swing.JTable:getSelectionModel(...)@330 != null
    //#unanalyzed(void add()): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void add()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void add()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsInserted
    //#unanalyzed(void add()): Effects-of-calling:javax.swing.JTextField:requestFocusInWindow
        tableModel.addRow(alias);
        final int newRow = table.getRowSorter().
                convertRowIndexToView(tableModel.indexOf(alias));
        table.getSelectionModel().setSelectionInterval(newRow, newRow);
        aliasDetails.focusCommand();
    }
    //#AliasManagerDialog.java:332: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.add()

    /** Deletes an alias. */
    private void delete() {
        if (table.getSelectedRow() != -1) {
    //#AliasManagerDialog.java:336: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.delete()
    //#input(void delete()): this
    //#input(void delete()): this.table
    //#input(void delete()): this.tableModel
    //#input(void delete()): this.tableModel.aliases
    //#pre[2] (void delete()): this.table != null
    //#pre[3] (void delete()): (soft) this.tableModel != null
    //#pre[4] (void delete()): (soft) this.tableModel.aliases != null
    //#presumption(void delete()): javax.swing.JTable:getRowSorter(...)@337 != null
    //#unanalyzed(void delete()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void delete()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.aliases.AliasTableModel:fireTableRowsDeleted
    //#test_vector(void delete()): javax.swing.JTable:getSelectedRow(...)@336: {-1}, {-2_147_483_648..-2, 0..4_294_967_295}
            tableModel.removeRow(table.getRowSorter().
                    convertRowIndexToModel(table.getSelectedRow()));
        }
    }
    //#AliasManagerDialog.java:340: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.delete()

    /** Saves the aliases. */
    private void save() {
        final List<Action> actions =
    //#AliasManagerDialog.java:344: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.save()
    //#AliasManagerDialog.java:344: Warning: method not available - call not analyzed
    //#    call on AliasWrapper com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: AliasWrapper com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper()
    //#AliasManagerDialog.java:344: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.wrappers.AliasWrapper:getActions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: List com.dmdirc.actions.wrappers.AliasWrapper:getActions()
    //#input(void save()): this
    //#input(void save()): this.tableModel
    //#input(void save()): this.tableModel.aliases
    //#pre[2] (void save()): this.tableModel != null
    //#pre[3] (void save()): init'ed(this.tableModel.aliases)
    //#presumption(void save()): com.dmdirc.actions.Action:getConditions(...)@357 != null
    //#presumption(void save()): com.dmdirc.actions.Action:getName(...)@357 != null
    //#presumption(void save()): com.dmdirc.actions.wrappers.AliasWrapper:getActions(...)@344 != null
    //#presumption(void save()): com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper(...)@344 != null
    //#presumption(void save()): java.util.Iterator:next(...)@351 != null
    //#presumption(void save()): java.util.Iterator:next(...)@366 != null
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.Action:getConditions
    //#unanalyzed(void save()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getActions
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.Action:getName
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getName
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getArguments
    //#unanalyzed(void save()): Effects-of-calling:java.lang.Object:equals
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:createAction
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.Action:save
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.Action:setName
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.Action:setConditions
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getResponse
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.Action:setResponse
    //#test_vector(void save()): java.lang.Object:equals(...)@357: {0}, {1}
    //#test_vector(void save()): java.lang.String:equals(...)@357: {0}, {1}
    //#test_vector(void save()): java.util.Arrays:equals(...)@357: {1}, {0}
    //#test_vector(void save()): java.util.Iterator:hasNext(...)@351: {0}, {1}
    //#test_vector(void save()): java.util.Iterator:hasNext(...)@366: {0}, {1}
                AliasWrapper.getAliasWrapper().getActions();
        final List<Alias> aliases = tableModel.getAliases();

        final List<Alias> newAliases = new ArrayList<Alias>();
        final List<Alias> modifiedAliases = new ArrayList<Alias>();

        for (Alias alias : aliases) {
            final Action action = getAction(alias);

            if (action == null) {
                newAliases.add(alias);
            } else {
                if (!action.getName().equals(alias.getName()) || !action.getConditions().
    //#AliasManagerDialog.java:357: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.Action:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: String com.dmdirc.actions.Action:getName()
    //#AliasManagerDialog.java:357: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.wrappers.Alias:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: String com.dmdirc.actions.wrappers.Alias:getName()
    //#AliasManagerDialog.java:357: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.Action:getConditions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: List com.dmdirc.actions.Action:getConditions()
    //#AliasManagerDialog.java:357: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.wrappers.Alias:getArguments()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: List com.dmdirc.actions.wrappers.Alias:getArguments()
    //#AliasManagerDialog.java:357: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.actions.Action:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: String[] com.dmdirc.actions.Action:getResponse()
    //#AliasManagerDialog.java:357: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.actions.wrappers.Alias:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: String[] com.dmdirc.actions.wrappers.Alias:getResponse()
                        equals(alias.getArguments()) ||
                        !Arrays.equals(action.getResponse(), alias.getResponse())) {
                    modifiedAliases.add(alias);
                }
                actions.remove(action);
            }
        }

        for (Action action : actions) {
            action.delete();
    //#AliasManagerDialog.java:367: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:delete()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:delete()
        }

        saveNewAliases(newAliases);

        saveModifiedAliases(modifiedAliases);

        ActionManager.loadActions();
    //#AliasManagerDialog.java:374: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:loadActions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:loadActions()
    }
    //#AliasManagerDialog.java:375: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.save()

    /**
     * Saves new aliases.
     *
     * @param aliases List of new aliases to save
     */
    private void saveNewAliases(final List<Alias> aliases) {
        for (Alias alias : aliases) {
    //#AliasManagerDialog.java:383: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.saveNewAliases(List)
    //#input(void saveNewAliases(List)): aliases
    //#pre[1] (void saveNewAliases(List)): aliases != null
    //#presumption(void saveNewAliases(List)): com.dmdirc.actions.wrappers.Alias:createAction(...)@384 != null
    //#presumption(void saveNewAliases(List)): java.util.Iterator:next(...)@383 != null
    //#test_vector(void saveNewAliases(List)): java.util.Iterator:hasNext(...)@383: {0}, {1}
            alias.createAction().save();
    //#AliasManagerDialog.java:384: Warning: method not available - call not analyzed
    //#    call on Action com.dmdirc.actions.wrappers.Alias:createAction()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveNewAliases(List)
    //#    unanalyzed callee: Action com.dmdirc.actions.wrappers.Alias:createAction()
    //#AliasManagerDialog.java:384: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:save()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveNewAliases(List)
    //#    unanalyzed callee: void com.dmdirc.actions.Action:save()
        }
    }
    //#AliasManagerDialog.java:386: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.saveNewAliases(List)

    /**
     * Saves modified aliases.
     *
     * @param aliases List of modified aliases to save
     */
    private void saveModifiedAliases(final List<Alias> aliases) {
        for (Alias alias : aliases) {
    //#AliasManagerDialog.java:394: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.saveModifiedAliases(List)
    //#input(void saveModifiedAliases(List)): aliases
    //#input(void saveModifiedAliases(List)): this
    //#pre[1] (void saveModifiedAliases(List)): aliases != null
    //#presumption(void saveModifiedAliases(List)): java.util.Iterator:next(...)@394 != null
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:com.dmdirc.actions.Action:getConditions
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:com.dmdirc.actions.wrappers.AliasWrapper:getActions
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:com.dmdirc.actions.Action:getName
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getName
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:com.dmdirc.actions.wrappers.Alias:getArguments
    //#unanalyzed(void saveModifiedAliases(List)): Effects-of-calling:java.lang.Object:equals
    //#test_vector(void saveModifiedAliases(List)): java.util.Iterator:hasNext(...)@394: {0}, {1}
            final Action action = getAction(alias);
            if (action != null) {
                action.setName(alias.getName());
    //#AliasManagerDialog.java:397: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.wrappers.Alias:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: String com.dmdirc.actions.wrappers.Alias:getName()
    //#AliasManagerDialog.java:397: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:setName(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setName(String)
                action.setConditions(alias.getArguments());
    //#AliasManagerDialog.java:398: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.wrappers.Alias:getArguments()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: List com.dmdirc.actions.wrappers.Alias:getArguments()
    //#AliasManagerDialog.java:398: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:setConditions(List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setConditions(List)
                action.setResponse(alias.getResponse());
    //#AliasManagerDialog.java:399: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.actions.wrappers.Alias:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: String[] com.dmdirc.actions.wrappers.Alias:getResponse()
    //#AliasManagerDialog.java:399: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:setResponse(String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setResponse(String[])
                action.save();
    //#AliasManagerDialog.java:400: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:save()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void saveModifiedAliases(List)
    //#    unanalyzed callee: void com.dmdirc.actions.Action:save()
            }
        }
    }
    //#AliasManagerDialog.java:403: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.saveModifiedAliases(List)

    /**
     * Returns the action corresponding to the specified alias.
     *
     * @param alias Alias to check
     *
     * @return Corresponding action or null if none found
     */
    private Action getAction(final Alias alias) {
        final List<Action> actions =
    //#AliasManagerDialog.java:413: method: Action com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.getAction(Alias)
    //#AliasManagerDialog.java:413: Warning: method not available - call not analyzed
    //#    call on AliasWrapper com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: Action getAction(Alias)
    //#    unanalyzed callee: AliasWrapper com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper()
    //#AliasManagerDialog.java:413: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.wrappers.AliasWrapper:getActions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: Action getAction(Alias)
    //#    unanalyzed callee: List com.dmdirc.actions.wrappers.AliasWrapper:getActions()
    //#input(Action getAction(Alias)): alias
    //#output(Action getAction(Alias)): return_value
    //#pre[1] (Action getAction(Alias)): (soft) alias != null
    //#presumption(Action getAction(Alias)): com.dmdirc.actions.Action:getConditions(...)@418 != null
    //#presumption(Action getAction(Alias)): com.dmdirc.actions.Action:getName(...)@418 != null
    //#presumption(Action getAction(Alias)): com.dmdirc.actions.wrappers.AliasWrapper:getActions(...)@413 != null
    //#presumption(Action getAction(Alias)): com.dmdirc.actions.wrappers.AliasWrapper:getAliasWrapper(...)@413 != null
    //#presumption(Action getAction(Alias)): java.util.Iterator:next(...)@417 != null
    //#post(Action getAction(Alias)): init'ed(return_value)
    //#test_vector(Action getAction(Alias)): java.lang.Object:equals(...)@418: {0}, {1}
    //#test_vector(Action getAction(Alias)): java.lang.String:equals(...)@418: {0}, {1}
    //#test_vector(Action getAction(Alias)): java.util.Iterator:hasNext(...)@417: {0}, {1}
                AliasWrapper.getAliasWrapper().getActions();
        Action action = null;

        for (Action loopAction : actions) {
            if (loopAction.getName().equals(alias.getName()) && loopAction.getConditions().
    //#AliasManagerDialog.java:418: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.Action:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: Action getAction(Alias)
    //#    unanalyzed callee: String com.dmdirc.actions.Action:getName()
    //#AliasManagerDialog.java:418: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.wrappers.Alias:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: Action getAction(Alias)
    //#    unanalyzed callee: String com.dmdirc.actions.wrappers.Alias:getName()
    //#AliasManagerDialog.java:418: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.Action:getConditions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: Action getAction(Alias)
    //#    unanalyzed callee: List com.dmdirc.actions.Action:getConditions()
    //#AliasManagerDialog.java:418: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.wrappers.Alias:getArguments()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: Action getAction(Alias)
    //#    unanalyzed callee: List com.dmdirc.actions.wrappers.Alias:getArguments()
                    equals(alias.getArguments())) {
                action = loopAction;
                break;
            }
        }

        return action;
    //#AliasManagerDialog.java:425: end of method: Action com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.getAction(Alias)
    }

    /**
     * Checks if ths alias matches another alias.
     *
     * @return true iif there are duplicate matches
     */
    private boolean checkForDuplicates() {
        final List<Alias> aliases = tableModel.getAliases();
    //#AliasManagerDialog.java:434: method: bool com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.checkForDuplicates()
    //#input(bool checkForDuplicates()): this
    //#input(bool checkForDuplicates()): this.tableModel
    //#input(bool checkForDuplicates()): this.tableModel.aliases
    //#output(bool checkForDuplicates()): return_value
    //#pre[2] (bool checkForDuplicates()): this.tableModel != null
    //#pre[3] (bool checkForDuplicates()): init'ed(this.tableModel.aliases)
    //#presumption(bool checkForDuplicates()): java.util.Iterator:next(...)@439 != null
    //#post(bool checkForDuplicates()): init'ed(return_value)
    //#unanalyzed(bool checkForDuplicates()): Effects-of-calling:java.util.ArrayList
    //#test_vector(bool checkForDuplicates()): com.dmdirc.actions.wrappers.Alias:matches(...)@440: {0}, {1}
    //#test_vector(bool checkForDuplicates()): java.util.Iterator:hasNext(...)@436: {0}, {1}
    //#test_vector(bool checkForDuplicates()): java.util.Iterator:hasNext(...)@439: {0}, {1}

        for (Alias alias : aliases) {
            int matches = 0;

            for (Alias loopAlias : aliases) {
                if (loopAlias.matches(alias)) {
    //#AliasManagerDialog.java:440: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.actions.wrappers.Alias:matches(Alias)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: bool checkForDuplicates()
    //#    unanalyzed callee: bool com.dmdirc.actions.wrappers.Alias:matches(Alias)
                    matches++;
    //#AliasManagerDialog.java:441: ?overflow
    //#    matches in {-2_147_483_649..4_294_967_294}
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: bool checkForDuplicates()
    //#    basic block: bb_6
    //#    assertion: matches in {-2_147_483_649..4_294_967_294}
    //#    VN: matches + 1
    //#    Expected: {-2_147_483_648..4_294_967_295, Invalid}
    //#    Bad: {4_294_967_296}
    //#    Attribs:  Int  Bad singleton  Bad > Exp
                }
            }

            if (matches > 1) {
                return true;
            }
        }

        return false;
    //#AliasManagerDialog.java:450: end of method: bool com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.checkForDuplicates()
    }
    
    /** {@inheritDoc} */
    @Override
    public void dispose() {
        if (me == null) {
    //#AliasManagerDialog.java:456: method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.dispose()
    //#input(void dispose()): me
    //#input(void dispose()): me.__Lock
    //#input(void dispose()): this
    //#output(void dispose()): me
    //#pre[1] (void dispose()): init'ed(me)
    //#post(void dispose()): me == null
    //#test_vector(void dispose()): me: Inverse{null}, Addr_Set{null}
            return;
        }
        synchronized (me) {
            super.dispose();
    //#AliasManagerDialog.java:460: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
    //#    method: void dispose()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
            me = null;
        }
    }
    //#AliasManagerDialog.java:463: end of method: void com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.dispose()
}
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog$1]
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1__static_init): __Dispatch_Table.getCellRenderer(II)Ljavax/swing/table/TableCellRenderer;
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1__static_init): __Dispatch_Table.getCellRenderer(II)Ljavax/swing/table/TableCellRenderer; == &getCellRenderer
    //#AliasManagerDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1__static_init
    //#AliasManagerDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog$1
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog]
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.add()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.checkForDuplicates()Z
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.delete()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.dispose()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.getAction(Lcom/dmdirc/actions/wrappers/Alias;)Lcom/dmdirc/actions/Action;
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.getTableData()Ljava/util/List;
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.initListeners()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.layoutComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.save()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.saveModifiedAliases(Ljava/util/List;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.saveNewAliases(Ljava/util/List;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.updateAlias()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.updateTableData()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/aliases/AliasManagerDialog] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.add()V == &add
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.checkForDuplicates()Z == &checkForDuplicates
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.delete()V == &delete
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.dispose()V == &dispose
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.getAction(Lcom/dmdirc/actions/wrappers/Alias;)Lcom/dmdirc/actions/Action; == &getAction
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.getTableData()Ljava/util/List; == &getTableData
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.initListeners()V == &initListeners
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.layoutComponents()V == &layoutComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.save()V == &save
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.saveModifiedAliases(Ljava/util/List;)V == &saveModifiedAliases
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.saveNewAliases(Ljava/util/List;)V == &saveNewAliases
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.updateAlias()V == &updateAlias
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.updateTableData()V == &updateTableData
    //#post(com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V == &valueChanged
    //#AliasManagerDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog.com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog__static_init
    //#AliasManagerDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.aliases.AliasManagerDialog
