//# 0 errors, 1,559 messages
//#
/*
    //#ActionEditorDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1
    //#ActionEditorDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1__static_init
    //#ActionEditorDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#ActionEditorDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__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.actioneditor;

import com.dmdirc.actions.Action;
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.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JButton;

import net.miginfocom.swing.MigLayout;

/**
 * Action editor dialog.
 */
public class ActionEditorDialog extends StandardDialog implements ActionListener,
        PropertyChangeListener {

    /**
     * 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 = 1;
    /** Previously created instance of ActionEditorDialog. */
    private static volatile ActionEditorDialog me;
    /** Name panel. */
    private ActionNamePanel name;
    /** Triggers panel. */
    private ActionTriggersPanel triggers;
    /** Response panel. */
    private ActionResponsePanel response;
    /** Conditions panel. */
    private ActionConditionsPanel conditions;
    /** Substitutions panel. */
    private ActionSubstitutionsPanel substitutions;
    /** Show substitutions button. */
    private JButton showSubstitutions;
    /** Is the name valid? */
    private boolean nameValid = false;
    /** Are the triggers valid? */
    private boolean triggersValid = false;
    /** Are the conditions valid? */
    private boolean conditionsValid = false;
    /** Action to be edited. */
    private Action action;
    /** Action group. */
    private String group;

    /** 
     * Instantiates the panel.
     * 
     * @param window Parent window
     * @param group Action's group
     */
    private ActionEditorDialog(final Window window, final String group) {
        this(window, group, null);
    //#ActionEditorDialog.java:85: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): group
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): java.awt.Dialog$ModalityType.DOCUMENT_MODAL
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): window
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.action
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.conditions
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.conditionsValid
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.group
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.name
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.nameValid
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.response
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.showSubstitutions
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.substitutions
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.triggers
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.triggersValid
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.action == null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.conditions)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.conditionsValid)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): this.group == group
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.group)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.name)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.nameValid)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.response)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.showSubstitutions)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.substitutions)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.triggers)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): init'ed(this.triggersValid)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:initComponents
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:doComponents
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable
    }
    //#ActionEditorDialog.java:86: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String)

    /** 
     * Instantiates the panel.
     * 
     * @param window Parent window
     * @param action Action to be edited
     * @param group Action's group
     */
    private ActionEditorDialog(final Window window, final String group,
            final Action action) {
        super(window, ModalityType.DOCUMENT_MODAL);
    //#ActionEditorDialog.java:97: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#ActionEditorDialog.java:97: 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.actioneditor.ActionEditorDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): action
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): group
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): java.awt.Dialog$ModalityType.DOCUMENT_MODAL
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): window
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.action
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.conditions
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.conditionsValid
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.group
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.name
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.nameValid
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.response
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.showSubstitutions
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.substitutions
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.triggers
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.triggersValid
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(java.awt.Dialog$ModalityType.DOCUMENT_MODAL)
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.conditions != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.name != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.showSubstitutions != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.triggers != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.action == action
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.action)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.conditions)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.conditionsValid)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): this.group == group
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.group)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.name)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.nameValid)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.response)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.showSubstitutions)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.substitutions)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.triggers)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): init'ed(this.triggersValid)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    //#ActionEditorDialog.java:98: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation(int)
        setTitle("DMDirc: Action Editor");
    //#ActionEditorDialog.java:99: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle(String)

        this.group = group;
        this.action = action;

        initComponents();
    //#ActionEditorDialog.java:104: Warning: call too complex - analysis skipped
    //#    call on void initComponents()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void initComponents()
        addListeners();
        doComponents();
    //#ActionEditorDialog.java:106: Warning: call too complex - analysis skipped
    //#    call on void doComponents()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void doComponents()
        layoutComponents();
        
        setResizable(false);
    //#ActionEditorDialog.java:109: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable(bool)
    }
    //#ActionEditorDialog.java:110: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog(Window, String, Action)
    
    /**
     * Is the dialog open?
     * 
     * @return is the dialog open
     */
    public static boolean isOpen() {
        synchronized (ActionEditorDialog.class) {
    //#ActionEditorDialog.java:118: method: bool com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.isOpen()
    //#input(bool isOpen()): __Class_Obj.__Lock
    //#input(bool isOpen()): me
    //#output(bool isOpen()): return_value
    //#pre[1] (bool isOpen()): init'ed(me)
    //#post(bool isOpen()): init'ed(return_value)
            return me != null;
        }
    //#ActionEditorDialog.java:120: end of method: bool com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.isOpen()
    }

    /** 
     * Creates the dialog if one doesn't exist, and displays it. 
     * 
     * @param window Parent window
     * @param group Action's group
     */
    public static void showActionEditorDialog(final Window window,
            final String group) {
        showActionEditorDialog(window, group, null);
    //#ActionEditorDialog.java:131: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.showActionEditorDialog(Window, String)
    //#input(void showActionEditorDialog(Window, String)): __Class_Obj.__Lock
    //#input(void showActionEditorDialog(Window, String)): group
    //#input(void showActionEditorDialog(Window, String)): java.awt.Dialog$ModalityType.DOCUMENT_MODAL
    //#input(void showActionEditorDialog(Window, String)): me
    //#input(void showActionEditorDialog(Window, String)): window
    //#output(void showActionEditorDialog(Window, String)): me
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1) num objects
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).__Tag
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).action
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).conditions
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).conditionsValid
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).group
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).name
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).nameValid
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).response
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).showSubstitutions
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).substitutions
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).triggers
    //#output(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).triggersValid
    //#new obj(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1)
    //#pre[2] (void showActionEditorDialog(Window, String)): init'ed(me)
    //#post(void showActionEditorDialog(Window, String)): me == One-of{old me, &new ActionEditorDialog(getActionEditorDialog#1)}
    //#post(void showActionEditorDialog(Window, String)): me != null
    //#post(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1) num objects <= 1
    //#post(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog
    //#post(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).action == null
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).conditions)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).conditionsValid)
    //#post(void showActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1).group == group
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).group)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).name)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).nameValid)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).response)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).showSubstitutions)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).substitutions)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).triggers)
    //#post(void showActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).triggersValid)
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:initComponents
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:doComponents
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:pack
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLocationRelativeTo
    //#unanalyzed(void showActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setVisible
    }
    //#ActionEditorDialog.java:132: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.showActionEditorDialog(Window, String)

    /** 
     * Creates the dialog if one doesn't exist, and displays it. 
     * 
     * @param window Parent window
     * @param group Action's group
     * @param action Action to be edited
     */
    public static void showActionEditorDialog(final Window window,
            final String group, final Action action) {
        getActionEditorDialog(window, group, action);
    //#ActionEditorDialog.java:143: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.showActionEditorDialog(Window, String, Action)
    //#input(void showActionEditorDialog(Window, String, Action)): __Class_Obj.__Lock
    //#input(void showActionEditorDialog(Window, String, Action)): action
    //#input(void showActionEditorDialog(Window, String, Action)): group
    //#input(void showActionEditorDialog(Window, String, Action)): java.awt.Dialog$ModalityType.DOCUMENT_MODAL
    //#input(void showActionEditorDialog(Window, String, Action)): me
    //#input(void showActionEditorDialog(Window, String, Action)): window
    //#output(void showActionEditorDialog(Window, String, Action)): me
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1) num objects
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).__Tag
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).action
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).conditions
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).conditionsValid
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).group
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).name
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).nameValid
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).response
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).showSubstitutions
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).substitutions
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).triggers
    //#output(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).triggersValid
    //#new obj(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1)
    //#pre[3] (void showActionEditorDialog(Window, String, Action)): init'ed(me)
    //#post(void showActionEditorDialog(Window, String, Action)): me == One-of{old me, &new ActionEditorDialog(getActionEditorDialog#1)}
    //#post(void showActionEditorDialog(Window, String, Action)): me != null
    //#post(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1) num objects <= 1
    //#post(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog
    //#post(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).action == action
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).action)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).conditions)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).conditionsValid)
    //#post(void showActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).group == group
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).group)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).name)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).nameValid)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).response)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).showSubstitutions)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).substitutions)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).triggers)
    //#post(void showActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).triggersValid)
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:initComponents
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:doComponents
    //#unanalyzed(void showActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable

        me.pack();
    //#ActionEditorDialog.java:145: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:pack()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void showActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:pack()
        me.setLocationRelativeTo(window);
    //#ActionEditorDialog.java:146: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void showActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLocationRelativeTo(Component)
        me.setVisible(true);
    //#ActionEditorDialog.java:147: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void showActionEditorDialog(Window, String, Action)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setVisible(bool)
    }
    //#ActionEditorDialog.java:148: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.showActionEditorDialog(Window, String, Action)

    /**
     * Returns the current instance of the ActionEditorDialog.
     *
     * @param window Parent window
     * @param group Action's group
     * 
     * @return The current ActionEditorDialog instance
     */
    public static ActionEditorDialog getActionEditorDialog(final Window window,
            final String group) {
        return getActionEditorDialog(window, group, null);
    //#ActionEditorDialog.java:160: method: ActionEditorDialog com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.getActionEditorDialog(Window, String)
    //#input(ActionEditorDialog getActionEditorDialog(Window, String)): __Class_Obj.__Lock
    //#input(ActionEditorDialog getActionEditorDialog(Window, String)): group
    //#input(ActionEditorDialog getActionEditorDialog(Window, String)): java.awt.Dialog$ModalityType.DOCUMENT_MODAL
    //#input(ActionEditorDialog getActionEditorDialog(Window, String)): me
    //#input(ActionEditorDialog getActionEditorDialog(Window, String)): window
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): me
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*) num objects
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).__Tag
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).action
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).conditions
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).conditionsValid
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).group
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).name
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).nameValid
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).response
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).showSubstitutions
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).substitutions
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).triggers
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).triggersValid
    //#output(ActionEditorDialog getActionEditorDialog(Window, String)): return_value
    //#new obj(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*)
    //#pre[2] (ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(me)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): me == One-of{old me, &new ActionEditorDialog(getActionEditorDialog#1*)}
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): me != null
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): return_value == me
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*) num objects <= 1
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).action == null
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).conditions)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).conditionsValid)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): new ActionEditorDialog(getActionEditorDialog#1*).group == group
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).group)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).name)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).nameValid)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).response)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).showSubstitutions)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).substitutions)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).triggers)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String)): init'ed(new ActionEditorDialog(getActionEditorDialog#1*).triggersValid)
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:initComponents
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:doComponents
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable
    //#ActionEditorDialog.java:160: end of method: ActionEditorDialog com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.getActionEditorDialog(Window, String)
    }

    /**
     * Returns the current instance of the ActionEditorDialog.
     * 
     * @param window Parent window
     * @param group Action's group
     * @param action Action to be edited
     *
     * @return The current ActionEditorDialog instance
     */
    public static ActionEditorDialog getActionEditorDialog(final Window window,
            final String group, final Action action) {
        synchronized (ActionEditorDialog.class) {
    //#ActionEditorDialog.java:174: method: ActionEditorDialog com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.getActionEditorDialog(Window, String, Action)
    //#input(ActionEditorDialog getActionEditorDialog(Window, String, Action)): __Class_Obj.__Lock
    //#input(ActionEditorDialog getActionEditorDialog(Window, String, Action)): action
    //#input(ActionEditorDialog getActionEditorDialog(Window, String, Action)): group
    //#input(ActionEditorDialog getActionEditorDialog(Window, String, Action)): java.awt.Dialog$ModalityType.DOCUMENT_MODAL
    //#input(ActionEditorDialog getActionEditorDialog(Window, String, Action)): me
    //#input(ActionEditorDialog getActionEditorDialog(Window, String, Action)): window
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): me
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1) num objects
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).__Tag
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).action
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).conditions
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).conditionsValid
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).group
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).name
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).nameValid
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).response
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).showSubstitutions
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).substitutions
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).triggers
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).triggersValid
    //#output(ActionEditorDialog getActionEditorDialog(Window, String, Action)): return_value
    //#new obj(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1)
    //#pre[3] (ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(me)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): me == One-of{old me, &new ActionEditorDialog(getActionEditorDialog#1)}
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): me != null
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): return_value == One-of{old me, &new ActionEditorDialog(getActionEditorDialog#1)}
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): return_value != null
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1) num objects <= 1
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).action == action
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).action)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).conditions)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).conditionsValid)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): new ActionEditorDialog(getActionEditorDialog#1).group == group
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).group)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).name)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).nameValid)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).response)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).showSubstitutions)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).substitutions)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).triggers)
    //#post(ActionEditorDialog getActionEditorDialog(Window, String, Action)): init'ed(new ActionEditorDialog(getActionEditorDialog#1).triggersValid)
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setDefaultCloseOperation
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setTitle
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:initComponents
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:doComponents
    //#unanalyzed(ActionEditorDialog getActionEditorDialog(Window, String, Action)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setResizable
            if (me == null) {
                me = new ActionEditorDialog(window, group, action);
            }
        }

        return me;
    //#ActionEditorDialog.java:180: end of method: ActionEditorDialog com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.getActionEditorDialog(Window, String, Action)
    }

    /** Sets components initial states and stuff. */
    private void doComponents() {
        triggers.setEnabled(action != null);
    //#ActionEditorDialog.java:185: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.doComponents()
    //#input(void doComponents()): " "._tainted
    //#input(void doComponents()): " '"._tainted
    //#input(void doComponents()): " ..."._tainted
    //#input(void doComponents()): "'"._tainted
    //#input(void doComponents()): "'s "._tainted
    //#input(void doComponents()): "."._tainted
    //#input(void doComponents()): "; "._tainted
    //#input(void doComponents()): "The "._tainted
    //#input(void doComponents()): "body { font-family: "._tainted
    //#input(void doComponents()): "font-size: "._tainted
    //#input(void doComponents()): "pt; }"._tainted
    //#input(void doComponents()): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsTreePanel$1__static_init.new int[](ActionConditionsTreePanel$1__static_init#1).length
    //#input(void doComponents()): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsTreePanel$1__static_init.new int[](ActionConditionsTreePanel$1__static_init#1)[0..4_294_967_295]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.checkError()V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.getText()Ljava/lang/String;
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.getCondition()Lcom/dmdirc/actions/ActionCondition;
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.setTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Dispatch_Table.setTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.addCondition(Lcom/dmdirc/actions/ActionCondition;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.clearConditions()V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.conditionRemoved(Lcom/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.delCondition(Lcom/dmdirc/actions/ActionCondition;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.getConditions()Ljava/util/List;
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.propertyChange(Ljava/beans/PropertyChangeEvent;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.setTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setActionTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setConditionTree(Lcom/dmdirc/actions/ConditionTree;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setConditions(Ljava/util/List;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel$1.$SwitchMap$com$dmdirc$actions$ConditionTreeFactory$ConditionTreeFactoryType
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.setConditionCount(I)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.setRule(ILcom/dmdirc/actions/ConditionTree;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.com.dmdirc.actions.ConditionTreeFactory$ConditionTreeFactoryType.CONJUNCTION
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Dispatch_Table.setActionName(Ljava/lang/String;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.setFormatter(Ljava/lang/String;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.setResponse([Ljava/lang/String;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.addTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.clearTriggers()V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.delTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[others]
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void doComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Dispatch_Table.setTriggers([Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void doComponents()): this
    //#input(void doComponents()): this.action
    //#input(void doComponents()): this.conditions
    //#input(void doComponents()): this.conditions.__Tag
    //#input(void doComponents()): this.conditions.add
    //#input(void doComponents()): this.conditions.list
    //#input(void doComponents()): this.conditions.list.__Tag
    //#input(void doComponents()): this.conditions.list.conditions
    //#input(void doComponents()): this.conditions.list.treePanel
    //#input(void doComponents()): this.conditions.list.treePanel.__Tag
    //#input(void doComponents()): this.conditions.list.treePanel.rule
    //#input(void doComponents()): this.conditions.list.treePanel.rule.__Tag
    //#input(void doComponents()): this.conditions.list.treePanel.rule.errorIcon
    //#input(void doComponents()): this.conditions.list.treePanel.rule.textField
    //#input(void doComponents()): this.conditions.list.treePanel.rule.validator
    //#input(void doComponents()): this.conditions.list.treePanel.treeValidator
    //#input(void doComponents()): this.conditions.list.trigger
    //#input(void doComponents()): this.conditions.list.validates
    //#input(void doComponents()): this.conditions.list.validations
    //#input(void doComponents()): this.conditions.tree
    //#input(void doComponents()): this.conditions.tree.__Tag
    //#input(void doComponents()): this.conditions.tree.allButton
    //#input(void doComponents()): this.conditions.tree.customButton
    //#input(void doComponents()): this.conditions.tree.group
    //#input(void doComponents()): this.conditions.tree.oneButton
    //#input(void doComponents()): this.conditions.tree.rule
    //#input(void doComponents()): this.conditions.tree.rule.__Tag
    //#input(void doComponents()): this.conditions.tree.rule.errorIcon
    //#input(void doComponents()): this.conditions.tree.rule.textField
    //#input(void doComponents()): this.conditions.tree.rule.validator
    //#input(void doComponents()): this.conditions.tree.validates
    //#input(void doComponents()): this.name
    //#input(void doComponents()): this.name.__Tag
    //#input(void doComponents()): this.name.name
    //#input(void doComponents()): this.name.name.__Tag
    //#input(void doComponents()): this.name.name.textField
    //#input(void doComponents()): this.response
    //#input(void doComponents()): this.response.__Tag
    //#input(void doComponents()): this.response.formatter
    //#input(void doComponents()): this.response.response
    //#input(void doComponents()): this.substitutions
    //#input(void doComponents()): this.triggers
    //#input(void doComponents()): this.triggers.__Tag
    //#input(void doComponents()): this.triggers.add
    //#input(void doComponents()): this.triggers.trigger
    //#input(void doComponents()): this.triggers.triggerList
    //#input(void doComponents()): this.triggers.triggerList.__Tag
    //#input(void doComponents()): this.triggers.triggerList.triggers
    //#output(void doComponents()): new ConditionTreeFactory$ConjunctionFactory(sortTreeFactory#1) num objects
    //#output(void doComponents()): new ConditionTreeFactory$CustomFactory(sortTreeFactory#3) num objects
    //#output(void doComponents()): new ConditionTreeFactory$DisjunctionFactory(sortTreeFactory#2) num objects
    //#output(void doComponents()): this.conditions.list.treePanel.conditionCount
    //#output(void doComponents()): this.conditions.list.trigger
    //#output(void doComponents()): this.conditions.list.validates
    //#output(void doComponents()): this.conditions.tree.conditionCount
    //#output(void doComponents()): this.conditions.tree.treeFactory
    //#output(void doComponents()): this.conditions.tree.validates
    //#output(void doComponents()): this.conditions.trigger
    //#output(void doComponents()): this.conditionsValid
    //#output(void doComponents()): this.nameValid
    //#output(void doComponents()): this.triggersValid
    //#new obj(void doComponents()): new ConditionTreeFactory$ConjunctionFactory(sortTreeFactory#1)
    //#new obj(void doComponents()): new ConditionTreeFactory$CustomFactory(sortTreeFactory#3)
    //#new obj(void doComponents()): new ConditionTreeFactory$DisjunctionFactory(sortTreeFactory#2)
    //#pre[10] (void doComponents()): init'ed(this.action)
    //#pre[11] (void doComponents()): this.conditions != null
    //#pre[12] (void doComponents()): this.conditions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel
    //#pre[14] (void doComponents()): this.conditions.list != null
    //#pre[15] (void doComponents()): this.conditions.list.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel
    //#pre[16] (void doComponents()): this.conditions.list.conditions != null
    //#pre[28] (void doComponents()): this.conditions.tree != null
    //#pre[29] (void doComponents()): this.conditions.tree.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel
    //#pre[30] (void doComponents()): this.conditions.tree.allButton != null
    //#pre[31] (void doComponents()): this.conditions.tree.customButton != null
    //#pre[33] (void doComponents()): this.conditions.tree.oneButton != null
    //#pre[44] (void doComponents()): this.response != null
    //#pre[45] (void doComponents()): this.response.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel
    //#pre[46] (void doComponents()): this.response.formatter != null
    //#pre[47] (void doComponents()): this.response.response != null
    //#pre[48] (void doComponents()): this.substitutions != null
    //#pre[49] (void doComponents()): this.triggers != null
    //#pre[50] (void doComponents()): this.triggers.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel
    //#pre[51] (void doComponents()): this.triggers.add != null
    //#pre[52] (void doComponents()): this.triggers.trigger != null
    //#pre[53] (void doComponents()): this.triggers.triggerList != null
    //#pre[54] (void doComponents()): this.triggers.triggerList.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel
    //#pre[1] (void doComponents()): (soft) init'ed(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsTreePanel$1__static_init.new int[](ActionConditionsTreePanel$1__static_init#1)[0..4_294_967_295])
    //#pre[3] (void doComponents()): (soft) init'ed(this.conditions.list.trigger)
    //#pre[4] (void doComponents()): (soft) init'ed(this.conditions.list.validates)
    //#pre[7] (void doComponents()): (soft) init'ed(this.conditions.tree.validates)
    //#pre[13] (void doComponents()): (soft) this.conditions.add != null
    //#pre[18] (void doComponents()): (soft) this.conditions.list.treePanel != null
    //#pre[20] (void doComponents()): (soft) this.conditions.list.treePanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel
    //#pre[21] (void doComponents()): (soft) this.conditions.list.treePanel.rule != null
    //#pre[22] (void doComponents()): (soft) this.conditions.list.treePanel.rule.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[23] (void doComponents()): (soft) this.conditions.list.treePanel.rule.errorIcon != null
    //#pre[24] (void doComponents()): (soft) this.conditions.list.treePanel.rule.textField != null
    //#pre[25] (void doComponents()): (soft) this.conditions.list.treePanel.rule.validator != null
    //#pre[26] (void doComponents()): (soft) this.conditions.list.treePanel.treeValidator != null
    //#pre[27] (void doComponents()): (soft) this.conditions.list.validations != null
    //#pre[32] (void doComponents()): (soft) this.conditions.tree.group != null
    //#pre[34] (void doComponents()): (soft) this.conditions.tree.rule != null
    //#pre[35] (void doComponents()): (soft) this.conditions.tree.rule.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[36] (void doComponents()): (soft) this.conditions.tree.rule.errorIcon != null
    //#pre[37] (void doComponents()): (soft) this.conditions.tree.rule.textField != null
    //#pre[38] (void doComponents()): (soft) this.conditions.tree.rule.validator != null
    //#pre[39] (void doComponents()): (soft) this.name != null
    //#pre[40] (void doComponents()): (soft) this.name.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel
    //#pre[41] (void doComponents()): (soft) this.name.name != null
    //#pre[42] (void doComponents()): (soft) this.name.name.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[43] (void doComponents()): (soft) this.name.name.textField != null
    //#pre[55] (void doComponents()): (soft) this.triggers.triggerList.triggers != null
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getConditions(...)@201 != null
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getResponse(...).length@198 <= 4_294_967_295
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getResponse(...)@198 != null
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getResponse(...)[0..4_294_967_295]@198 != null
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getTriggers(...).length@197 <= 4_294_967_295
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getTriggers(...).length@200 >= 1
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getTriggers(...)@197 != null
    //#presumption(void doComponents()): com.dmdirc.actions.Action:getTriggers(...)@200 != null
    //#presumption(void doComponents()): com.dmdirc.actions.ConditionTreeFactory$ConditionTreeFactoryType:values(...).length >= 1
    //#presumption(void doComponents()): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton(...)@193 != null
    //#post(void doComponents()): possibly_updated(this.conditions.list.treePanel.conditionCount)
    //#post(void doComponents()): init'ed(this.conditions.list.trigger)
    //#post(void doComponents()): init'ed(this.conditions.list.validates)
    //#post(void doComponents()): possibly_updated(this.conditions.tree.conditionCount)
    //#post(void doComponents()): this.conditions.tree.treeFactory == One-of{old this.conditions.tree.treeFactory, &new ConditionTreeFactory$ConjunctionFactory(sortTreeFactory#1), &new ConditionTreeFactory$DisjunctionFactory(sortTreeFactory#2), &new ConditionTreeFactory$CustomFactory(sortTreeFactory#3)}
    //#post(void doComponents()): init'ed(this.conditions.tree.validates)
    //#post(void doComponents()): possibly_updated(this.conditions.trigger)
    //#post(void doComponents()): this.conditionsValid == 1
    //#post(void doComponents()): init'ed(this.nameValid)
    //#post(void doComponents()): init'ed(this.triggersValid)
    //#post(void doComponents()): new ConditionTreeFactory$ConjunctionFactory(sortTreeFactory#1) num objects <= 1
    //#post(void doComponents()): new ConditionTreeFactory$CustomFactory(sortTreeFactory#3) num objects <= 1
    //#post(void doComponents()): new ConditionTreeFactory$DisjunctionFactory(sortTreeFactory#2) num objects <= 1
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:getFailureReason
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JLabel:setToolTipText
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JLabel:isVisible
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:firePropertyChange
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JComboBox:getSelectedIndex
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void doComponents()): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void doComponents()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void doComponents()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void doComponents()): Effects-of-calling:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JPanel:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JToggleButton:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JRadioButton:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void doComponents()): Effects-of-calling:getCondition
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory:getConditionTree
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.ComboBoxModel:getSize
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextArea:setEnabled
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:setVisible
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:removeAll
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:add
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.interfaces.ActionType:getType
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.interfaces.ActionMetaType:getArgNames
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.List:clear
    //#unanalyzed(void doComponents()): Effects-of-calling:setTrigger
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.DefaultComboBoxModel:removeAllElements
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getArg
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JComboBox:setSelectedIndex
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionEditorPanel:setVisible
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JToggleButton:setSelected
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComponent
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComparison
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:getTarget
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.interfaces.ActionComponent:getName
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.interfaces.ActionComparison:getName
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.Object:equals
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.StringBuilder:substring
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JTextArea:setText
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JComboBox:setSelectedItem
    //#unanalyzed(void doComponents()): Effects-of-calling:java.beans.PropertyChangeEvent:getSource
    //#unanalyzed(void doComponents()): Effects-of-calling:java.beans.PropertyChangeEvent:getNewValue
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.Map:values
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void doComponents()): Effects-of-calling:java.lang.Boolean:booleanValue
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:firePropertyChange
    //#unanalyzed(void doComponents()): Effects-of-calling:delCondition
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ActionCondition:equals
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ConditionRuleValidator:setArgs
    //#unanalyzed(void doComponents()): Effects-of-calling:conditionRemoved
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void doComponents()): Effects-of-calling:java.util.Map:remove
    //#unanalyzed(void doComponents()): Effects-of-calling:addCondition
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory:getType
    //#unanalyzed(void doComponents()): Effects-of-calling:sortTreeFactory
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.ButtonGroup:clearSelection
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory$ConditionTreeFactoryType:ordinal
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JRadioButton:setSelected
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTree:toString
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.ButtonGroup:getSelection
    //#unanalyzed(void doComponents()): Effects-of-calling:javax.swing.JRadioButton:getModel
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory$ConjunctionFactory
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsTreePanel:firePropertyChange
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory$DisjunctionFactory
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTree:parseString
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory$CustomFactory
    //#unanalyzed(void doComponents()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory:getFactory
    //#test_vector(void doComponents()): this.action: Addr_Set{null}, Inverse{null}
        response.setEnabled(action != null);
        conditions.setEnabled(action != null);
        substitutions.setVisible(false);
    //#ActionEditorDialog.java:188: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:setVisible(bool)

        triggersValid = action != null;
        conditionsValid = true;
        nameValid = action != null;
        getOkButton().setEnabled(action != null);
    //#ActionEditorDialog.java:193: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()

        if (action != null) {
            name.setActionName(action.getName());
    //#ActionEditorDialog.java:196: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.Action:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: String com.dmdirc.actions.Action:getName()
            triggers.setTriggers(action.getTriggers());
    //#ActionEditorDialog.java:197: Warning: method not available - call not analyzed
    //#    call on ActionType[] com.dmdirc.actions.Action:getTriggers()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: ActionType[] com.dmdirc.actions.Action:getTriggers()
            response.setResponse(action.getResponse());
    //#ActionEditorDialog.java:198: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.actions.Action:getResponse()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: String[] com.dmdirc.actions.Action:getResponse()
            response.setFormatter(action.getNewFormat());
    //#ActionEditorDialog.java:199: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.actions.Action:getNewFormat()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: String com.dmdirc.actions.Action:getNewFormat()
            conditions.setActionTrigger(action.getTriggers()[0]);
    //#ActionEditorDialog.java:200: Warning: method not available - call not analyzed
    //#    call on ActionType[] com.dmdirc.actions.Action:getTriggers()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: ActionType[] com.dmdirc.actions.Action:getTriggers()
            conditions.setConditions(action.getConditions());
    //#ActionEditorDialog.java:201: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.actions.Action:getConditions()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: List com.dmdirc.actions.Action:getConditions()
            conditions.setConditionTree(action.getRealConditionTree());
    //#ActionEditorDialog.java:202: Warning: method not available - call not analyzed
    //#    call on ConditionTree com.dmdirc.actions.Action:getRealConditionTree()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void doComponents()
    //#    unanalyzed callee: ConditionTree com.dmdirc.actions.Action:getRealConditionTree()
        }
    }
    //#ActionEditorDialog.java:204: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.doComponents()

    /** Initialises the components. */
    private void initComponents() {
        orderButtons(new JButton(), new JButton());
    //#ActionEditorDialog.java:208: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.initComponents()
    //#ActionEditorDialog.java:208: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:orderButtons(JButton, JButton)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:orderButtons(JButton, JButton)
    //#input(void initComponents()): "; "._tainted
    //#input(void initComponents()): "body { font-family: "._tainted
    //#input(void initComponents()): "font-size: "._tainted
    //#input(void initComponents()): "pt; }"._tainted
    //#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/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/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/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.java.lang.String.CASE_INSENSITIVE_ORDER
    //#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/actioneditor/ActionTriggersListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.addTriggerListener(Lcom/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggerRemovalListener;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.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()): this
    //#output(void initComponents()): new ActionConditionsPanel(initComponents#6) num objects
    //#output(void initComponents()): this.conditions.__Tag
    //#output(void initComponents()): this.conditions.add
    //#output(void initComponents()): this.conditions.list
    //#output(void initComponents()): this.conditions.listValidates
    //#output(void initComponents()): this.conditions.tree
    //#output(void initComponents()): this.conditions.treeValidates
    //#output(void initComponents()): this.conditions.trigger
    //#output(void initComponents()): new ActionNamePanel(initComponents#3) num objects
    //#output(void initComponents()): this.name.__Tag
    //#output(void initComponents()): this.name.name
    //#output(void initComponents()): this.name.originalName
    //#output(void initComponents()): new ActionResponsePanel(initComponents#5) num objects
    //#output(void initComponents()): this.response.__Tag
    //#output(void initComponents()): this.response.formatter
    //#output(void initComponents()): this.response.response
    //#output(void initComponents()): new ActionSubstitutionsPanel(initComponents#7) num objects
    //#output(void initComponents()): this.substitutions.__Tag
    //#output(void initComponents()): this.substitutions.alignment
    //#output(void initComponents()): this.substitutions.description
    //#output(void initComponents()): new ActionTriggersListPanel(initComponents#6) num objects
    //#output(void initComponents()): new ActionTriggersListPanel(initComponents#6).__Tag
    //#output(void initComponents()): new ActionTriggersListPanel(initComponents#6).listeners
    //#output(void initComponents()): new ActionTriggersListPanel(initComponents#6).triggers
    //#output(void initComponents()): new ActionTriggersPanel(initComponents#4) num objects
    //#output(void initComponents()): this.triggers.__Tag
    //#output(void initComponents()): this.triggers.add
    //#output(void initComponents()): this.triggers.trigger
    //#output(void initComponents()): this.triggers.triggerList
    //#output(void initComponents()): new ArrayList(ActionTriggersListPanel#2) num objects
    //#output(void initComponents()): new ArrayList(ActionTriggersListPanel#2).__Lock
    //#output(void initComponents()): new FileNameValidator(initComponents#3) num objects
    //#output(void initComponents()): new JButton(initComponents#5) num objects
    //#output(void initComponents()): new JButton(initComponents#8) num objects
    //#output(void initComponents()): new JComboBox(initComponents#1) num objects
    //#output(void initComponents()): new JComboBox(initComponents#2) num objects
    //#output(void initComponents()): new JLabel(ValidatingJTextField#1) num objects
    //#output(void initComponents()): new JTextArea(initComponents#1) num objects
    //#output(void initComponents()): new JTextField(initComponents#2) num objects
    //#output(void initComponents()): new ListenerList(ActionTriggersListPanel#1) num objects
    //#output(void initComponents()): new ValidatingJTextField(initComponents#1) num objects
    //#output(void initComponents()): new ValidatingJTextField(initComponents#1).__Tag
    //#output(void initComponents()): new ValidatingJTextField(initComponents#1).errorIcon
    //#output(void initComponents()): new ValidatingJTextField(initComponents#1).textField
    //#output(void initComponents()): new ValidatingJTextField(initComponents#1).validator
    //#output(void initComponents()): this.conditions
    //#output(void initComponents()): this.name
    //#output(void initComponents()): this.response
    //#output(void initComponents()): this.showSubstitutions
    //#output(void initComponents()): this.substitutions
    //#output(void initComponents()): this.triggers
    //#new obj(void initComponents()): new ActionConditionsPanel(initComponents#6)
    //#new obj(void initComponents()): new ActionNamePanel(initComponents#3)
    //#new obj(void initComponents()): new ActionResponsePanel(initComponents#5)
    //#new obj(void initComponents()): new ActionSubstitutionsPanel(initComponents#7)
    //#new obj(void initComponents()): new ActionTriggersListPanel(initComponents#6)
    //#new obj(void initComponents()): new ActionTriggersPanel(initComponents#4)
    //#new obj(void initComponents()): new ArrayList(ActionTriggersListPanel#2)
    //#new obj(void initComponents()): new FileNameValidator(initComponents#3)
    //#new obj(void initComponents()): new JButton(initComponents#5)
    //#new obj(void initComponents()): new JButton(initComponents#8)
    //#new obj(void initComponents()): new JComboBox(initComponents#1)
    //#new obj(void initComponents()): new JComboBox(initComponents#2)
    //#new obj(void initComponents()): new JLabel(ValidatingJTextField#1)
    //#new obj(void initComponents()): new JTextArea(initComponents#1)
    //#new obj(void initComponents()): new JTextField(initComponents#2)
    //#new obj(void initComponents()): new ListenerList(ActionTriggersListPanel#1)
    //#new obj(void initComponents()): new ValidatingJTextField(initComponents#1)
    //#presumption(void initComponents()): this.list != null
    //#presumption(void initComponents()): this.tree != null
    //#post(void initComponents()): this.conditions == &new ActionConditionsPanel(initComponents#6)
    //#post(void initComponents()): this.name == &new ActionNamePanel(initComponents#3)
    //#post(void initComponents()): this.response == &new ActionResponsePanel(initComponents#5)
    //#post(void initComponents()): this.showSubstitutions == &new JButton(initComponents#8)
    //#post(void initComponents()): this.substitutions == &new ActionSubstitutionsPanel(initComponents#7)
    //#post(void initComponents()): this.triggers == &new ActionTriggersPanel(initComponents#4)
    //#post(void initComponents()): new ActionConditionsPanel(initComponents#6) num objects == 1
    //#post(void initComponents()): this.conditions.listValidates == 1
    //#post(void initComponents()): this.conditions.treeValidates == 1
    //#post(void initComponents()): new ActionNamePanel(initComponents#3) num objects == 1
    //#post(void initComponents()): new ActionResponsePanel(initComponents#5) num objects == 1
    //#post(void initComponents()): new ActionSubstitutionsPanel(initComponents#7) num objects == 1
    //#post(void initComponents()): new ActionTriggersListPanel(initComponents#6) num objects == 1
    //#post(void initComponents()): new ActionTriggersPanel(initComponents#4) num objects == 1
    //#post(void initComponents()): new ArrayList(ActionTriggersListPanel#2) num objects == 1
    //#post(void initComponents()): new FileNameValidator(initComponents#3) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#5) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#8) num objects == 1
    //#post(void initComponents()): new JComboBox(initComponents#1) num objects == 1
    //#post(void initComponents()): new JComboBox(initComponents#2) num objects == 1
    //#post(void initComponents()): new JLabel(ValidatingJTextField#1) num objects == 1
    //#post(void initComponents()): new JTextArea(initComponents#1) num objects == 1
    //#post(void initComponents()): new JTextField(initComponents#2) num objects == 1
    //#post(void initComponents()): new ListenerList(ActionTriggersListPanel#1) num objects == 1
    //#post(void initComponents()): new ValidatingJTextField(initComponents#1) num objects == 1
    //#post(void initComponents()): this.conditions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel
    //#post(void initComponents()): init'ed(this.conditions.add)
    //#post(void initComponents()): this.conditions.list != null
    //#post(void initComponents()): this.conditions.tree != null
    //#post(void initComponents()): this.conditions.trigger == null
    //#post(void initComponents()): this.name.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel
    //#post(void initComponents()): this.name.name == &new ValidatingJTextField(initComponents#1)
    //#post(void initComponents()): this.name.originalName == &""
    //#post(void initComponents()): this.response.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel
    //#post(void initComponents()): this.response.formatter == &new JComboBox(initComponents#2)
    //#post(void initComponents()): this.response.response == &new JTextArea(initComponents#1)
    //#post(void initComponents()): this.substitutions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel
    //#post(void initComponents()): this.substitutions.alignment == &com.dmdirc.addons.ui_swing.components.substitutions.SubstitutionsPanel$Alignment__static_init.new SubstitutionsPanel$Alignment(SubstitutionsPanel$Alignment__static_init#2)
    //#post(void initComponents()): this.substitutions.description == &"Substitutions may be used in the response and target fields"
    //#post(void initComponents()): new ActionTriggersListPanel(initComponents#6).__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel
    //#post(void initComponents()): new ActionTriggersListPanel(initComponents#6).listeners == &new ListenerList(ActionTriggersListPanel#1)
    //#post(void initComponents()): new ActionTriggersListPanel(initComponents#6).triggers == &new ArrayList(ActionTriggersListPanel#2)
    //#post(void initComponents()): this.triggers.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel
    //#post(void initComponents()): this.triggers.add == &new JButton(initComponents#5)
    //#post(void initComponents()): this.triggers.trigger == &new JComboBox(initComponents#1)
    //#post(void initComponents()): this.triggers.triggerList == &new ActionTriggersListPanel(initComponents#6)
    //#post(void initComponents()): init'ed(new ArrayList(ActionTriggersListPanel#2).__Lock)
    //#post(void initComponents()): new ValidatingJTextField(initComponents#1).__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#post(void initComponents()): new ValidatingJTextField(initComponents#1).errorIcon == &new JLabel(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initComponents#1).textField == &new JTextField(initComponents#2)
    //#post(void initComponents()): new ValidatingJTextField(initComponents#1).validator == &new FileNameValidator(initComponents#3)
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.FileNameValidator
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:getText
    //#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: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:javax.swing.JLabel
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#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:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:addPropertyChangeListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:getBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.BorderFactory:createTitledBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:getBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:getFont
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:getFontMetrics
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.ActionManager:getTypeGroups
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.SwingUtilities:computeStringWidth
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.interfaces.ActionType:instanceof
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.interfaces.ActionType:getName
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultComboBoxModel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.util.MapList:entrySet
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Set: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:java.util.Map$Entry:getKey
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.actions.ActionTypeComparator
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:putClientProperty
    //#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:setPrototypeDisplayValue
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:addPopupMenuListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:getSelectedIndex
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersListPanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersListPanel:setVisible
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersListPanel:removeAll
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersListPanel:isEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersListPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.util.ListenerList
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.util.ListenerList:add
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersListPanel:addPropertyChangeListener
    //#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.JComboBox:getModel
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.TreeSet
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:keySet
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.TreeSet:addAll
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.TreeSet:iterator
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionResponsePanel:getBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionResponsePanel:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionResponsePanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionResponsePanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initComponents()): Effects-of-calling:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JToggleButton:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsTreePanel:addPropertyChangeListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:addPropertyChangeListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:getBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:setBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setHorizontalScrollBarPolicy
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:getVerticalScrollBar
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollBar:setUnitIncrement
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JRadioButton:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:initComponents
    //#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: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
        name = new ActionNamePanel("");
        triggers = new ActionTriggersPanel();
        response = new ActionResponsePanel();
        conditions = new ActionConditionsPanel();
        substitutions = new ActionSubstitutionsPanel();
        showSubstitutions = new JButton("Show Substitutions");
    }
    //#ActionEditorDialog.java:215: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.initComponents()

    /** Adds the listeners. */
    private void addListeners() {
        showSubstitutions.addActionListener(this);
    //#ActionEditorDialog.java:219: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.addListeners()
    //#input(void addListeners()): this
    //#input(void addListeners()): this.conditions
    //#input(void addListeners()): this.name
    //#input(void addListeners()): this.showSubstitutions
    //#input(void addListeners()): this.triggers
    //#pre[2] (void addListeners()): this.conditions != null
    //#pre[3] (void addListeners()): this.name != null
    //#pre[4] (void addListeners()): this.showSubstitutions != null
    //#pre[5] (void addListeners()): this.triggers != null
    //#presumption(void addListeners()): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton(...)@221 != null
    //#presumption(void addListeners()): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton(...)@220 != null
    //#unanalyzed(void addListeners()): Effects-of-calling:java.awt.event.WindowAdapter
        getOkButton().addActionListener(this);
    //#ActionEditorDialog.java:220: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
        getCancelButton().addActionListener(this);
    //#ActionEditorDialog.java:221: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton()

        name.addPropertyChangeListener("validationResult", this);
    //#ActionEditorDialog.java:223: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener(String, PropertyChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionNamePanel:addPropertyChangeListener(String, PropertyChangeListener)
        triggers.addPropertyChangeListener("validationResult", this);
    //#ActionEditorDialog.java:224: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener(String, PropertyChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionTriggersPanel:addPropertyChangeListener(String, PropertyChangeListener)
        conditions.addPropertyChangeListener("validationResult", this);
    //#ActionEditorDialog.java:225: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener(String, PropertyChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsPanel:addPropertyChangeListener(String, PropertyChangeListener)
        
        addWindowListener(new WindowAdapter() {
    //#ActionEditorDialog.java:227: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)): init'ed(this.this$0)
    //#ActionEditorDialog.java:227: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1(ActionEditorDialog)
    //#ActionEditorDialog.java:227: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener(WindowListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:addWindowListener(WindowListener)

            /** {@inheritDoc} */
            @Override
            public void windowClosing(final WindowEvent e) {
                getCancelButton().doClick();
    //#ActionEditorDialog.java:232: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1.windowClosing(WindowEvent)
    //#ActionEditorDialog.java:232: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1
    //#    method: void windowClosing(WindowEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton()
    //#input(void windowClosing(WindowEvent)): this
    //#input(void windowClosing(WindowEvent)): this.this$0
    //#pre[2] (void windowClosing(WindowEvent)): this.this$0 != null
    //#presumption(void windowClosing(WindowEvent)): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton(...)@232 != null
            }
    //#ActionEditorDialog.java:233: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1.windowClosing(WindowEvent)
        });
    }
    //#ActionEditorDialog.java:235: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.addListeners()

    /** Lays out the components. */
    private void layoutComponents() {
        setMinimumSize(new Dimension(800, 600));
    //#ActionEditorDialog.java:239: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.layoutComponents()
    //#ActionEditorDialog.java:239: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize(Dimension)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setMinimumSize(Dimension)
    //#input(void layoutComponents()): this
    //#input(void layoutComponents()): this.conditions
    //#input(void layoutComponents()): this.name
    //#input(void layoutComponents()): this.response
    //#input(void layoutComponents()): this.showSubstitutions
    //#input(void layoutComponents()): this.substitutions
    //#input(void layoutComponents()): this.triggers
    //#pre[2] (void layoutComponents()): init'ed(this.conditions)
    //#pre[3] (void layoutComponents()): init'ed(this.name)
    //#pre[4] (void layoutComponents()): init'ed(this.response)
    //#pre[5] (void layoutComponents()): init'ed(this.showSubstitutions)
    //#pre[6] (void layoutComponents()): init'ed(this.substitutions)
    //#pre[7] (void layoutComponents()): init'ed(this.triggers)
        setLayout(new MigLayout("fill, hidemode 3, wrap 2, pack, hmax 80sp, wmin 800, wmax 800"));
    //#ActionEditorDialog.java:240: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#ActionEditorDialog.java:240: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:setLayout(LayoutManager)

        add(name, "grow, w 50%");
    //#ActionEditorDialog.java:242: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(conditions, "spany 3, grow, pushx, w 50%");
    //#ActionEditorDialog.java:243: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(triggers, "grow, w 50%");
    //#ActionEditorDialog.java:244: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(response, "grow, pushy, w 50%");
    //#ActionEditorDialog.java:245: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(substitutions, "spanx, grow, push");
    //#ActionEditorDialog.java:246: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(showSubstitutions, "left, sgx button, split 3, spanx 2");
    //#ActionEditorDialog.java:247: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(getLeftButton(), "right, sgx button, gapleft push");
    //#ActionEditorDialog.java:248: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getLeftButton()
    //#ActionEditorDialog.java:248: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
        add(getRightButton(), "right, sgx button");
    //#ActionEditorDialog.java:249: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getRightButton()
    //#ActionEditorDialog.java:249: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:add(Component, Object)
    }
    //#ActionEditorDialog.java:250: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.layoutComponents()

    /** 
     * @{inheritDoc}
     * 
     * @param e Action event
     */
    @Override
    public void actionPerformed(final ActionEvent e) {
        if (e.getSource().equals(showSubstitutions)) {
    //#ActionEditorDialog.java:259: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.actionPerformed(ActionEvent)
    //#input(void actionPerformed(ActionEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog]
    //#input(void actionPerformed(ActionEvent)): __Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): __Dispatch_Table.dispose()V
    //#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/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.getCondition()Lcom/dmdirc/actions/ActionCondition;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.getConditions()Ljava/util/List;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.getConditionTree()Lcom/dmdirc/actions/ConditionTree;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.getConditions()Ljava/util/List;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.getRule(I)Lcom/dmdirc/actions/ConditionTree;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Dispatch_Table.getActionName()Ljava/lang/String;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.getFormatter()Ljava/lang/String;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.getResponse()[Ljava/lang/String;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.getTriggers()Ljava/util/List;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Dispatch_Table.getTriggers()[Lcom/dmdirc/actions/interfaces/ActionType;
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): me
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.__Tag
    //#input(void actionPerformed(ActionEvent)): this.action
    //#input(void actionPerformed(ActionEvent)): this.conditions
    //#input(void actionPerformed(ActionEvent)): this.conditions.__Tag
    //#input(void actionPerformed(ActionEvent)): this.conditions.list
    //#input(void actionPerformed(ActionEvent)): this.conditions.list.__Tag
    //#input(void actionPerformed(ActionEvent)): this.conditions.list.conditions
    //#input(void actionPerformed(ActionEvent)): this.conditions.tree
    //#input(void actionPerformed(ActionEvent)): this.conditions.tree.__Tag
    //#input(void actionPerformed(ActionEvent)): this.conditions.tree.treeFactory
    //#input(void actionPerformed(ActionEvent)): this.group
    //#input(void actionPerformed(ActionEvent)): this.name
    //#input(void actionPerformed(ActionEvent)): this.name.__Tag
    //#input(void actionPerformed(ActionEvent)): this.name.name
    //#input(void actionPerformed(ActionEvent)): this.name.name.__Tag
    //#input(void actionPerformed(ActionEvent)): this.name.name.textField
    //#input(void actionPerformed(ActionEvent)): this.response
    //#input(void actionPerformed(ActionEvent)): this.response.__Tag
    //#input(void actionPerformed(ActionEvent)): this.response.formatter
    //#input(void actionPerformed(ActionEvent)): this.response.response
    //#input(void actionPerformed(ActionEvent)): this.showSubstitutions
    //#input(void actionPerformed(ActionEvent)): this.substitutions
    //#input(void actionPerformed(ActionEvent)): this.triggers
    //#input(void actionPerformed(ActionEvent)): this.triggers.__Tag
    //#input(void actionPerformed(ActionEvent)): this.triggers.triggerList
    //#input(void actionPerformed(ActionEvent)): this.triggers.triggerList.__Tag
    //#input(void actionPerformed(ActionEvent)): this.triggers.triggerList.triggers
    //#output(void actionPerformed(ActionEvent)): me
    //#pre[1] (void actionPerformed(ActionEvent)): e != null
    //#pre[3] (void actionPerformed(ActionEvent)): (soft) init'ed(me)
    //#pre[5] (void actionPerformed(ActionEvent)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) init'ed(this.action)
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) this.conditions != null
    //#pre[8] (void actionPerformed(ActionEvent)): (soft) this.conditions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel
    //#pre[9] (void actionPerformed(ActionEvent)): (soft) this.conditions.list != null
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.conditions.list.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel
    //#pre[11] (void actionPerformed(ActionEvent)): (soft) this.conditions.list.conditions != null
    //#pre[13] (void actionPerformed(ActionEvent)): (soft) this.conditions.tree != null
    //#pre[14] (void actionPerformed(ActionEvent)): (soft) this.conditions.tree.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel
    //#pre[15] (void actionPerformed(ActionEvent)): (soft) this.conditions.tree.treeFactory != null
    //#pre[16] (void actionPerformed(ActionEvent)): (soft) init'ed(this.group)
    //#pre[17] (void actionPerformed(ActionEvent)): (soft) this.name != null
    //#pre[18] (void actionPerformed(ActionEvent)): (soft) this.name.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel
    //#pre[19] (void actionPerformed(ActionEvent)): (soft) this.name.name != null
    //#pre[20] (void actionPerformed(ActionEvent)): (soft) this.name.name.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[21] (void actionPerformed(ActionEvent)): (soft) this.name.name.textField != null
    //#pre[22] (void actionPerformed(ActionEvent)): (soft) this.response != null
    //#pre[23] (void actionPerformed(ActionEvent)): (soft) this.response.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel
    //#pre[24] (void actionPerformed(ActionEvent)): (soft) this.response.formatter != null
    //#pre[25] (void actionPerformed(ActionEvent)): (soft) this.response.response != null
    //#pre[26] (void actionPerformed(ActionEvent)): (soft) this.showSubstitutions != null
    //#pre[27] (void actionPerformed(ActionEvent)): (soft) this.substitutions != null
    //#pre[28] (void actionPerformed(ActionEvent)): (soft) this.triggers != null
    //#pre[29] (void actionPerformed(ActionEvent)): (soft) this.triggers.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel
    //#pre[30] (void actionPerformed(ActionEvent)): (soft) this.triggers.triggerList != null
    //#pre[31] (void actionPerformed(ActionEvent)): (soft) this.triggers.triggerList.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel
    //#pre[32] (void actionPerformed(ActionEvent)): (soft) this.triggers.triggerList.triggers != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@259 != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@263 != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@266 != null
    //#post(void actionPerformed(ActionEvent)): me == One-of{old me, null}
    //#post(void actionPerformed(ActionEvent)): init'ed(me)
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:replaceAll
    //#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:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:getCondition
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory:getConditionTree
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setName
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setConditionTree
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setConditions
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setNewFormat
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setResponse
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:setTriggers
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.actions.Action:save
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@259: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@263: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@266: {0}, {1}
            substitutions.setVisible(!substitutions.isVisible());
    //#ActionEditorDialog.java:260: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:isVisible()
    //#ActionEditorDialog.java:260: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:setVisible(bool)
            showSubstitutions.setText(substitutions.isVisible() ? "Hide Substitutions"
    //#ActionEditorDialog.java:261: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:isVisible()
                    : "Show Substitutions");
        } else if (e.getSource().equals(getOkButton())) {
    //#ActionEditorDialog.java:263: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
            save();
            dispose();
        } else if (e.getSource().equals(getCancelButton())) {
    //#ActionEditorDialog.java:266: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getCancelButton()
            dispose();
        }
    }
    //#ActionEditorDialog.java:269: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.actionPerformed(ActionEvent)

    /** Saves the action being edited. */
    private void save() {
        name.getActionName();
    //#ActionEditorDialog.java:273: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.save()
    //#input(void save()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void save()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.getText()Ljava/lang/String;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.getCondition()Lcom/dmdirc/actions/ActionCondition;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.getConditions()Ljava/util/List;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.getConditionTree()Lcom/dmdirc/actions/ConditionTree;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.getConditions()Ljava/util/List;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.getRule(I)Lcom/dmdirc/actions/ConditionTree;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.__Dispatch_Table.getActionName()Ljava/lang/String;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.getFormatter()Ljava/lang/String;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.getResponse()[Ljava/lang/String;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.getTriggers()Ljava/util/List;
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Dispatch_Table.getTriggers()[Lcom/dmdirc/actions/interfaces/ActionType;
    //#input(void save()): this
    //#input(void save()): this.action
    //#input(void save()): this.conditions
    //#input(void save()): this.conditions.__Tag
    //#input(void save()): this.conditions.list
    //#input(void save()): this.conditions.list.__Tag
    //#input(void save()): this.conditions.list.conditions
    //#input(void save()): this.conditions.tree
    //#input(void save()): this.conditions.tree.__Tag
    //#input(void save()): this.conditions.tree.treeFactory
    //#input(void save()): this.group
    //#input(void save()): this.name
    //#input(void save()): this.name.__Tag
    //#input(void save()): this.name.name
    //#input(void save()): this.name.name.__Tag
    //#input(void save()): this.name.name.textField
    //#input(void save()): this.response
    //#input(void save()): this.response.__Tag
    //#input(void save()): this.response.formatter
    //#input(void save()): this.response.response
    //#input(void save()): this.triggers
    //#input(void save()): this.triggers.__Tag
    //#input(void save()): this.triggers.triggerList
    //#input(void save()): this.triggers.triggerList.__Tag
    //#input(void save()): this.triggers.triggerList.triggers
    //#pre[2] (void save()): init'ed(this.action)
    //#pre[3] (void save()): this.conditions != null
    //#pre[4] (void save()): this.conditions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel
    //#pre[5] (void save()): this.conditions.list != null
    //#pre[6] (void save()): this.conditions.list.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel
    //#pre[7] (void save()): this.conditions.list.conditions != null
    //#pre[9] (void save()): this.conditions.tree != null
    //#pre[10] (void save()): this.conditions.tree.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel
    //#pre[11] (void save()): this.conditions.tree.treeFactory != null
    //#pre[13] (void save()): this.name != null
    //#pre[14] (void save()): this.name.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel
    //#pre[15] (void save()): this.name.name != null
    //#pre[16] (void save()): this.name.name.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[17] (void save()): this.name.name.textField != null
    //#pre[18] (void save()): this.response != null
    //#pre[19] (void save()): this.response.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel
    //#pre[20] (void save()): this.response.formatter != null
    //#pre[21] (void save()): this.response.response != null
    //#pre[22] (void save()): this.triggers != null
    //#pre[23] (void save()): this.triggers.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel
    //#pre[24] (void save()): this.triggers.triggerList != null
    //#pre[25] (void save()): this.triggers.triggerList.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel
    //#pre[26] (void save()): this.triggers.triggerList.triggers != null
    //#pre[12] (void save()): (soft) init'ed(this.group)
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void save()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:toArray
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextArea:getText
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JComboBox:getSelectedItem
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void save()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void save()): Effects-of-calling:getCondition
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.actions.ConditionTreeFactory:getConditionTree
    //#test_vector(void save()): this.action: Inverse{null}, Addr_Set{null}
        triggers.getTriggers();
        response.getResponse();
    //#ActionEditorDialog.java:275: Warning: unused assignment in callee
    //#    Unused assignment to (java.lang.String:split(...)._tainted) in getResponse
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
        response.getFormatter();
        conditions.getConditions();
        conditions.getConditionTree();
        if (action == null) {
            new Action(group, name.getActionName(), triggers.getTriggers(),
    //#ActionEditorDialog.java:280: Warning: unused assignment in callee
    //#    Unused assignment to (java.lang.String:split(...)._tainted) in getResponse
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#ActionEditorDialog.java:280: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action(String, String, ActionType[], String[], List, ConditionTree, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action(String, String, ActionType[], String[], List, ConditionTree, String)
                    response.getResponse(), conditions.getConditions(),
                    conditions.getConditionTree(), response.getFormatter());
        } else {
            action.setName(name.getActionName());
    //#ActionEditorDialog.java:284: 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.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setName(String)
            action.setConditionTree(conditions.getConditionTree());
    //#ActionEditorDialog.java:285: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:setConditionTree(ConditionTree)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setConditionTree(ConditionTree)
            action.setConditions(conditions.getConditions());
    //#ActionEditorDialog.java:286: 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.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setConditions(List)
            action.setNewFormat(response.getFormatter());
    //#ActionEditorDialog.java:287: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:setNewFormat(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setNewFormat(String)
            action.setResponse(response.getResponse());
    //#ActionEditorDialog.java:288: Warning: unused assignment in callee
    //#    Unused assignment to (java.lang.String:split(...)._tainted) in getResponse
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#ActionEditorDialog.java:288: 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.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setResponse(String[])
            action.setTriggers(triggers.getTriggers());
    //#ActionEditorDialog.java:289: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:setTriggers(ActionType[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:setTriggers(ActionType[])
            action.save();
    //#ActionEditorDialog.java:290: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.Action:save()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void save()
    //#    unanalyzed callee: void com.dmdirc.actions.Action:save()
        }
    }
    //#ActionEditorDialog.java:292: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.save()

    /** @{inheritDoc} */
    @Override
    public void propertyChange(final PropertyChangeEvent evt) {
        if (evt.getSource().equals(name)) {
    //#ActionEditorDialog.java:297: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.propertyChange(PropertyChangeEvent)
    //#input(void propertyChange(PropertyChangeEvent)): " "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): " '"._tainted
    //#input(void propertyChange(PropertyChangeEvent)): " ..."._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "'"._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "'s "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "."._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "; "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "The "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "body { font-family: "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "font-size: "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "pt; }"._tainted
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionDisplayPanel.__Dispatch_Table.setTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionEditorPanel.__Dispatch_Table.setTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel.__Dispatch_Table.setTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setActionTrigger(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel.__Dispatch_Table.setType(Lcom/dmdirc/actions/interfaces/ActionType;)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.getTrigger(I)Lcom/dmdirc/actions/interfaces/ActionType;
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.getTriggerCount()I
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Descendant_Table[others]
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Dispatch_Table.getPrimaryTrigger()Lcom/dmdirc/actions/interfaces/ActionType;
    //#input(void propertyChange(PropertyChangeEvent)): com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel.__Dispatch_Table.setEnabled(Z)V
    //#input(void propertyChange(PropertyChangeEvent)): evt
    //#input(void propertyChange(PropertyChangeEvent)): this
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.add
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.list
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.list.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.list.conditions
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.list.trigger
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.tree
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.tree.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.tree.allButton
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.tree.customButton
    //#input(void propertyChange(PropertyChangeEvent)): this.conditions.tree.oneButton
    //#input(void propertyChange(PropertyChangeEvent)): this.conditionsValid
    //#input(void propertyChange(PropertyChangeEvent)): this.name
    //#input(void propertyChange(PropertyChangeEvent)): this.nameValid
    //#input(void propertyChange(PropertyChangeEvent)): this.response
    //#input(void propertyChange(PropertyChangeEvent)): this.response.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.response.formatter
    //#input(void propertyChange(PropertyChangeEvent)): this.response.response
    //#input(void propertyChange(PropertyChangeEvent)): this.substitutions
    //#input(void propertyChange(PropertyChangeEvent)): this.substitutions.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers.add
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers.trigger
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers.triggerList
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers.triggerList.__Tag
    //#input(void propertyChange(PropertyChangeEvent)): this.triggers.triggerList.triggers
    //#input(void propertyChange(PropertyChangeEvent)): this.triggersValid
    //#output(void propertyChange(PropertyChangeEvent)): this.conditions.list.trigger
    //#output(void propertyChange(PropertyChangeEvent)): this.conditions.trigger
    //#output(void propertyChange(PropertyChangeEvent)): this.conditionsValid
    //#output(void propertyChange(PropertyChangeEvent)): this.nameValid
    //#output(void propertyChange(PropertyChangeEvent)): this.triggersValid
    //#pre[1] (void propertyChange(PropertyChangeEvent)): evt != null
    //#pre[20] (void propertyChange(PropertyChangeEvent)): init'ed(this.name)
    //#pre[2] (void propertyChange(PropertyChangeEvent)): (soft) init'ed(this.conditions.list.trigger)
    //#pre[4] (void propertyChange(PropertyChangeEvent)): (soft) init'ed(this.conditionsValid)
    //#pre[5] (void propertyChange(PropertyChangeEvent)): (soft) init'ed(this.nameValid)
    //#pre[6] (void propertyChange(PropertyChangeEvent)): (soft) init'ed(this.triggersValid)
    //#pre[8] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions != null
    //#pre[9] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsPanel
    //#pre[10] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.add != null
    //#pre[11] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.list != null
    //#pre[12] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.list.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsListPanel
    //#pre[13] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.list.conditions != null
    //#pre[15] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.tree != null
    //#pre[16] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.tree.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionConditionsTreePanel
    //#pre[17] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.tree.allButton != null
    //#pre[18] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.tree.customButton != null
    //#pre[19] (void propertyChange(PropertyChangeEvent)): (soft) this.conditions.tree.oneButton != null
    //#pre[21] (void propertyChange(PropertyChangeEvent)): (soft) this.response != null
    //#pre[22] (void propertyChange(PropertyChangeEvent)): (soft) this.response.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionResponsePanel
    //#pre[23] (void propertyChange(PropertyChangeEvent)): (soft) this.response.formatter != null
    //#pre[24] (void propertyChange(PropertyChangeEvent)): (soft) this.response.response != null
    //#pre[25] (void propertyChange(PropertyChangeEvent)): (soft) this.substitutions != null
    //#pre[26] (void propertyChange(PropertyChangeEvent)): (soft) this.substitutions.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionSubstitutionsPanel
    //#pre[27] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers != null
    //#pre[28] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersPanel
    //#pre[29] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers.add != null
    //#pre[30] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers.trigger != null
    //#pre[31] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers.triggerList != null
    //#pre[32] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers.triggerList.__Tag == com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionTriggersListPanel
    //#pre[33] (void propertyChange(PropertyChangeEvent)): (soft) this.triggers.triggerList.triggers != null
    //#presumption(void propertyChange(PropertyChangeEvent)): com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton(...)@315 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@298 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@299 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@300 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@301 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@303 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@305 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@306 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@307 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@312 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getSource(...)@297 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getSource(...)@302 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getSource(...)@311 != null
    //#post(void propertyChange(PropertyChangeEvent)): init'ed(this.conditions.list.trigger)
    //#post(void propertyChange(PropertyChangeEvent)): possibly_updated(this.conditions.trigger)
    //#post(void propertyChange(PropertyChangeEvent)): init'ed(this.conditionsValid)
    //#post(void propertyChange(PropertyChangeEvent)): init'ed(this.nameValid)
    //#post(void propertyChange(PropertyChangeEvent)): init'ed(this.triggersValid)
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JComboBox:getSelectedIndex
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JComboBox:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JPanel:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JToggleButton:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ImageButton:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JRadioButton:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.ComboBoxModel:getSize
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JTextArea:setEnabled
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:setVisible
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:removeAll
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionsListPanel:add
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.interfaces.ActionType:getType
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.interfaces.ActionMetaType:getArgNames
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.util.List:clear
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:setTrigger
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.DefaultComboBoxModel:removeAllElements
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getArg
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JComboBox:setSelectedIndex
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionConditionEditorPanel:setVisible
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:javax.swing.JToggleButton:setSelected
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComponent
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getComparison
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.ActionCondition:getTarget
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.interfaces.ActionComponent:getName
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.actions.interfaces.ActionComparison:getName
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:java.lang.Object:equals
    //#test_vector(void propertyChange(PropertyChangeEvent)): java.lang.Object:equals(...)@297: {0}, {1}
    //#test_vector(void propertyChange(PropertyChangeEvent)): java.lang.Object:equals(...)@302: {0}, {1}
    //#test_vector(void propertyChange(PropertyChangeEvent)): java.lang.Object:equals(...)@311: {0}, {1}
            nameValid = (Boolean) evt.getNewValue();
            triggers.setEnabled((Boolean) evt.getNewValue());
            conditions.setEnabled((Boolean) evt.getNewValue());
            response.setEnabled((Boolean) evt.getNewValue());
        } else if (evt.getSource().equals(triggers)) {
            triggersValid = (Boolean) evt.getNewValue();

            response.setEnabled((Boolean) evt.getNewValue());
            conditions.setEnabled((Boolean) evt.getNewValue());
            substitutions.setEnabled((Boolean) evt.getNewValue());
    //#ActionEditorDialog.java:307: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:setEnabled(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void propertyChange(PropertyChangeEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionSubstitutionsPanel:setEnabled(bool)

            substitutions.setType(triggers.getPrimaryTrigger());
            conditions.setActionTrigger(triggers.getPrimaryTrigger());
        } else if (evt.getSource().equals(conditions)) {
            conditionsValid = (Boolean) evt.getNewValue();
        }

        getOkButton().setEnabled(triggersValid && conditionsValid && nameValid);
    //#ActionEditorDialog.java:315: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
    //#    method: void propertyChange(PropertyChangeEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog:getOkButton()
    }
    //#ActionEditorDialog.java:316: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.propertyChange(PropertyChangeEvent)

    /** {@inheritDoc} */
    @Override
    public void dispose() {
        if (me == null) {
    //#ActionEditorDialog.java:321: method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.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();
    //#ActionEditorDialog.java:325: 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.actioneditor.ActionEditorDialog
    //#    method: void dispose()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
            me = null;
        }
    }
    //#ActionEditorDialog.java:328: end of method: void com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.dispose()
}
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog$1]
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1__static_init): __Dispatch_Table.windowClosing(Ljava/awt/event/WindowEvent;)V
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1__static_init): __Dispatch_Table.windowClosing(Ljava/awt/event/WindowEvent;)V == &windowClosing
    //#ActionEditorDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1__static_init
    //#ActionEditorDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog$1
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog]
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.addListeners()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.dispose()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.doComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.layoutComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.propertyChange(Ljava/beans/PropertyChangeEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.save()V
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionEditorDialog] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.addListeners()V == &addListeners
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.dispose()V == &dispose
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.doComponents()V == &doComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.layoutComponents()V == &layoutComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.propertyChange(Ljava/beans/PropertyChangeEvent;)V == &propertyChange
    //#post(com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init): __Dispatch_Table.save()V == &save
    //#ActionEditorDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog.com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog__static_init
    //#ActionEditorDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.actioneditor.ActionEditorDialog
