//# 0 errors, 469 messages
//#
/*
    //#WizardDialog.java:1:1: class: com.dmdirc.addons.ui_swing.wizard.WizardDialog$1
    //#WizardDialog.java:1:1: method: com.dmdirc.addons.ui_swing.wizard.WizardDialog$1.com.dmdirc.addons.ui_swing.wizard.WizardDialog$1__static_init
    //#WizardDialog.java:1:1: class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#WizardDialog.java:1:1: method: com.dmdirc.addons.ui_swing.wizard.WizardDialog.com.dmdirc.addons.ui_swing.wizard.WizardDialog__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.wizard;

import com.dmdirc.addons.ui_swing.components.StandardDialog;

import com.dmdirc.ui.CoreUIUtils;
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.util.List;

import javax.swing.JButton;

/**
 * Basic wizard container.
 */
public final class WizardDialog extends StandardDialog implements ActionListener {
    //#WizardDialog.java:40: method: WizardPanel com.dmdirc.addons.ui_swing.wizard.WizardDialog.access$000(WizardDialog)
    //#input(WizardPanel access$000(WizardDialog)): x0
    //#input(WizardPanel access$000(WizardDialog)): x0.wizard
    //#output(WizardPanel access$000(WizardDialog)): return_value
    //#pre[1] (WizardPanel access$000(WizardDialog)): x0 != null
    //#post(WizardPanel access$000(WizardDialog)): return_value == x0.wizard
    //#post(WizardPanel access$000(WizardDialog)): init'ed(return_value)
    //#WizardDialog.java:40: end of method: WizardPanel com.dmdirc.addons.ui_swing.wizard.WizardDialog.access$000(WizardDialog)

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

    /**
     * Creates a new instance of WizardFrame that requires a mainframe.
     *
     * @param title Title for the wizard
     * @param steps Steps for the wizard
     * @param wizard Wizard to inform of changes
     * @param parentWindow Parent component
     */
    public WizardDialog(final String title, final List<Step> steps,
            final WizardListener wizard, final Window parentWindow) {
        super(parentWindow, ModalityType.MODELESS);
    //#WizardDialog.java:63: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)
    //#WizardDialog.java:63: 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.wizard.WizardDialog
    //#    method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/Step]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/CommunicationStep]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/ExtractionStep]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/FirstRunExtractionStep]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/MigrationExtrationStep]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/ProfileStep]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.addStep(Lcom/dmdirc/addons/ui_swing/wizard/Step;)V
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.com.dmdirc.addons.ui_swing.components.EtchedLineBorder$BorderSide.BOTTOM
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.com.dmdirc.addons.ui_swing.components.EtchedLineBorder$BorderSide.TOP
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.java.awt.Color.BLACK
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): parentWindow
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): steps
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): title
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): wizard
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new ArrayList(StepLayout#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JButton(initComponents#5) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JButton(initComponents#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JLabel(initComponents#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JPanel(initComponents#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new ListenerList(WizardPanel#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).__Tag
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).currentStep
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).hGap
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).steps
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).vGap
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new TitlePanel(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new WizardPanel(WizardDialog#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.__Tag
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.next
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.prev
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.progressLabel
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.stepListeners
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.steps
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.stepsPanel
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.title
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.titleLabel
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.wizard
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.parentWindow
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new ArrayList(StepLayout#1)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JButton(initComponents#5)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JButton(initComponents#6)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JLabel(initComponents#4)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JPanel(initComponents#3)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new ListenerList(WizardPanel#1)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new TitlePanel(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new WizardPanel(WizardDialog#3)
    //#pre[2] (void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): steps != null
    //#presumption(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(java.awt.Dialog$ModalityType.MODELESS)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.parentWindow == parentWindow
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(this.parentWindow)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard == &new WizardPanel(WizardDialog#3)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new ArrayList(StepLayout#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JButton(initComponents#5) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JButton(initComponents#6) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JLabel(initComponents#4) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new JPanel(initComponents#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new ListenerList(WizardPanel#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new TitlePanel(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new WizardPanel(WizardDialog#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).__Tag == com/dmdirc/addons/ui_swing/wizard/StepLayout
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(new StepLayout(WizardPanel#2).currentStep)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(new StepLayout(WizardPanel#2).hGap)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): new StepLayout(WizardPanel#2).steps == &new ArrayList(StepLayout#1)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(new StepLayout(WizardPanel#2).vGap)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.next == &new JButton(initComponents#5)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.prev == &new JButton(initComponents#6)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.progressLabel == &new JLabel(initComponents#4)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.stepListeners == &new ListenerList(WizardPanel#1)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.steps == &new StepLayout(WizardPanel#2)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.stepsPanel == &new JPanel(initComponents#3)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.title == title
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(this.wizard.title)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.titleLabel == &new TitlePanel(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): this.wizard.wizard == wizard
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): init'ed(this.wizard.wizard)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.WizardDialog:setContentPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.EtchedLineBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TitlePanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.BorderFactory:createMatteBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.WizardPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.WizardPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.Step:toString
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:com.dmdirc.util.ListenerList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)): Effects-of-calling:java.util.ArrayList

        setTitle(title);
    //#WizardDialog.java:65: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setTitle(String)
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    //#WizardDialog.java:66: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setDefaultCloseOperation(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setDefaultCloseOperation(int)
        orderButtons(new JButton(), new JButton());
    //#WizardDialog.java:67: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:orderButtons(JButton, JButton)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:orderButtons(JButton, JButton)
        this.wizard = new WizardPanel(title, steps, wizard);
        this.parentWindow = parentWindow;
        layoutComponents();
    }
    //#WizardDialog.java:71: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.com.dmdirc.addons.ui_swing.wizard.WizardDialog(String, List, WizardListener, Window)

    /** Lays out the components. */
    private void layoutComponents() {
        setContentPane(wizard);
    //#WizardDialog.java:75: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.layoutComponents()
    //#WizardDialog.java:75: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setContentPane(Container)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setContentPane(Container)
    //#input(void layoutComponents()): this
    //#input(void layoutComponents()): this.wizard
    }
    //#WizardDialog.java:76: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.layoutComponents()

    /** Displays the wizard. */
    @Override
    public void display() {
        wizard.display();
    //#WizardDialog.java:81: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.display()
    //#input(void display()): " of "._tainted
    //#input(void display()): "Step "._tainted
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/Step]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/CommunicationStep]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/ExtractionStep]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/FirstRunExtractionStep]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/MigrationExtrationStep]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/ProfileStep]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[others]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/Step.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/StepLayout]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Descendant_Table[others]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Dispatch_Table.first(Ljava/awt/Container;)V
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Dispatch_Table.getStep(I)Lcom/dmdirc/addons/ui_swing/wizard/Step;
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Dispatch_Table.isEmpty()Z
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Dispatch_Table.show(ILjava/awt/Container;)V
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Dispatch_Table.size()I
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.display()V
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/firstrun/CommunicationStep.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/firstrun/ExtractionStep.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/firstrun/FirstRunExtractionStep.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/firstrun/MigrationExtrationStep.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void display()): com/dmdirc/addons/ui_swing/wizard/firstrun/ProfileStep.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void display()): this
    //#input(void display()): this.parentWindow
    //#input(void display()): this.wizard
    //#input(void display()): this.wizard.__Tag
    //#input(void display()): this.wizard.next
    //#input(void display()): this.wizard.prev
    //#input(void display()): this.wizard.progressLabel
    //#input(void display()): this.wizard.steps
    //#input(void display()): this.wizard.steps.__Tag
    //#input(void display()): this.wizard.steps.steps
    //#input(void display()): this.wizard.stepsPanel
    //#input(void display()): this.wizard.titleLabel
    //#output(void display()): this.wizard.currentStep
    //#output(void display()): this.wizard.steps.currentStep
    //#pre[4] (void display()): init'ed(this.parentWindow)
    //#pre[5] (void display()): this.wizard != null
    //#pre[6] (void display()): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[10] (void display()): this.wizard.steps != null
    //#pre[11] (void display()): this.wizard.steps.__Tag == com/dmdirc/addons/ui_swing/wizard/StepLayout
    //#pre[12] (void display()): this.wizard.steps.steps != null
    //#pre[7] (void display()): (soft) this.wizard.next != null
    //#pre[8] (void display()): (soft) this.wizard.prev != null
    //#pre[9] (void display()): (soft) this.wizard.progressLabel != null
    //#pre[13] (void display()): (soft) this.wizard.stepsPanel != null
    //#pre[14] (void display()): (soft) this.wizard.titleLabel != null
    //#post(void display()): this.wizard.currentStep == One-of{old this.wizard.currentStep, 0}
    //#post(void display()): possibly_updated(this.wizard.steps.currentStep)
    //#unanalyzed(void display()): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void display()): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void display()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void display()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void display()): Effects-of-calling:java.awt.Container:getTreeLock
    //#unanalyzed(void display()): Effects-of-calling:java.awt.Container:getComponentCount
    //#unanalyzed(void display()): Effects-of-calling:java.awt.Container:getComponent
    //#unanalyzed(void display()): Effects-of-calling:java.awt.Component:isVisible
    //#unanalyzed(void display()): Effects-of-calling:java.awt.Component:setVisible
    //#unanalyzed(void display()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void display()): Effects-of-calling:java.awt.Container:validate
    //#unanalyzed(void display()): Effects-of-calling:getTitle
    //#unanalyzed(void display()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TitlePanel:setText
    //#unanalyzed(void display()): Effects-of-calling:updateProgressLabel
    //#unanalyzed(void display()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void display()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void display()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void display()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void display()): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void display()): Effects-of-calling:java.awt.event.WindowAdapter
    //#test_vector(void display()): this.parentWindow: Addr_Set{null}, Inverse{null}
        if (parentWindow != null) {
            setLocationRelativeTo(parentWindow);
    //#WizardDialog.java:83: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setLocationRelativeTo(Component)
        } else {
            CoreUIUtils.centreWindow(this);
    //#WizardDialog.java:85: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.CoreUIUtils:centreWindow(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.ui.CoreUIUtils:centreWindow(Window)
        }
        addWindowListener(new WindowAdapter() {
    //#WizardDialog.java:87: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1.com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)): this
    //#output(void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)): init'ed(this.this$0)
    //#WizardDialog.java:87: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1.com.dmdirc.addons.ui_swing.wizard.WizardDialog$1(WizardDialog)
    //#WizardDialog.java:87: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:addWindowListener(WindowListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:addWindowListener(WindowListener)

            /** {@inheritDoc} */
            @Override
            public void windowClosed(final WindowEvent e) {
                removeWindowListener(this);
    //#WizardDialog.java:92: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1.windowClosed(WindowEvent)
    //#WizardDialog.java:92: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:removeWindowListener(WindowListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog$1
    //#    method: void windowClosed(WindowEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:removeWindowListener(WindowListener)
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardListener]
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/SwingFirstRunWizard]
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Descendant_Table[others]
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Dispatch_Table.wizardCancelled()V
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.fireWizardCancelled()V
    //#input(void windowClosed(WindowEvent)): com/dmdirc/addons/ui_swing/wizard/firstrun/SwingFirstRunWizard.__Dispatch_Table.wizardCancelled()V
    //#input(void windowClosed(WindowEvent)): this
    //#input(void windowClosed(WindowEvent)): this.this$0
    //#input(void windowClosed(WindowEvent)): this.this$0.wizard
    //#input(void windowClosed(WindowEvent)): this.this$0.wizard.__Tag
    //#input(void windowClosed(WindowEvent)): this.this$0.wizard.stepListeners
    //#pre[2] (void windowClosed(WindowEvent)): this.this$0 != null
    //#pre[3] (void windowClosed(WindowEvent)): this.wizard != null
    //#pre[4] (void windowClosed(WindowEvent)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void windowClosed(WindowEvent)): this.wizard.stepListeners != null
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:wizardCancelled
    //#unanalyzed(void windowClosed(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.WizardDialog:dispose
                wizard.fireWizardCancelled();
            }
    //#WizardDialog.java:94: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog$1.windowClosed(WindowEvent)
        });
        setResizable(false);
    //#WizardDialog.java:96: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setResizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setResizable(bool)
        setVisible(true);
    //#WizardDialog.java:97: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setVisible(bool)
    }
    //#WizardDialog.java:98: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.display()
    
    /** {@inheritDoc} */
    @Override
    public void validate() {
        super.validate();
    //#WizardDialog.java:103: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.validate()
    //#WizardDialog.java:103: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.StandardDialog:validate()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void validate()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog:validate()
    //#input(void validate()): this
    //#input(void validate()): this.parentWindow
    //#pre[2] (void validate()): init'ed(this.parentWindow)
        
        setLocationRelativeTo(parentWindow);
    //#WizardDialog.java:105: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void validate()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.wizard.WizardDialog:setLocationRelativeTo(Component)
    }
    //#WizardDialog.java:106: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.validate()

    /** 
     * {@inheritDoc}
     * 
     * @param e Action event
     */
    @Override
    public void actionPerformed(final ActionEvent e) {
        if (e.getSource() == getOkButton()) {
    //#WizardDialog.java:115: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.actionPerformed(ActionEvent)
    //#WizardDialog.java:115: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.wizard.WizardDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.wizard.WizardDialog:getOkButton()
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardListener]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/SwingFirstRunWizard]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardListener.__Dispatch_Table.wizardCancelled()V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.fireWizardCancelled()V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.nextStep()V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/wizard/firstrun/SwingFirstRunWizard.__Dispatch_Table.wizardCancelled()V
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.wizard
    //#input(void actionPerformed(ActionEvent)): this.wizard.__Tag
    //#input(void actionPerformed(ActionEvent)): this.wizard.stepListeners
    //#output(void actionPerformed(ActionEvent)): this.wizard.currentStep
    //#output(void actionPerformed(ActionEvent)): this.wizard.steps.currentStep
    //#pre[1] (void actionPerformed(ActionEvent)): e != null
    //#pre[5] (void actionPerformed(ActionEvent)): (soft) this.wizard != null
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.wizard.stepListeners != null
    //#post(void actionPerformed(ActionEvent)): this.wizard.currentStep == old this.wizard.currentStep
    //#post(void actionPerformed(ActionEvent)): this.wizard.steps.currentStep == old this.wizard.steps.currentStep
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:wizardCancelled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.WizardDialog:dispose
            wizard.nextStep();
    //#WizardDialog.java:116: Warning: call too complex - analysis skipped
    //#    call on void nextStep()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void nextStep()
        } else if (e.getSource() == getCancelButton()) {
    //#WizardDialog.java:117: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.wizard.WizardDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.wizard.WizardDialog:getCancelButton()
            wizard.fireWizardCancelled();
        }
    }
    //#WizardDialog.java:120: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.actionPerformed(ActionEvent)
    
    /**
     * Adds a step to the wizard.
     *
     * @param step Step to add
     */
    public void addStep(final Step step) {
        wizard.addStep(step);
    //#WizardDialog.java:128: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.addStep(Step)
    //#input(void addStep(Step)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void addStep(Step)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void addStep(Step)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.addStep(Lcom/dmdirc/addons/ui_swing/wizard/Step;)V
    //#input(void addStep(Step)): step
    //#input(void addStep(Step)): step._tainted
    //#input(void addStep(Step)): this
    //#input(void addStep(Step)): this.wizard
    //#input(void addStep(Step)): this.wizard.__Tag
    //#input(void addStep(Step)): this.wizard.stepsPanel
    //#pre[1] (void addStep(Step)): step != null
    //#pre[4] (void addStep(Step)): this.wizard != null
    //#pre[5] (void addStep(Step)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[6] (void addStep(Step)): this.wizard.stepsPanel != null
    //#unanalyzed(void addStep(Step)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void addStep(Step)): Effects-of-calling:com.dmdirc.addons.ui_swing.wizard.Step:toString
    }
    //#WizardDialog.java:129: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.addStep(Step)
    
    /**
     * Returns the step at the specified index.
     *
     * @param stepNumber step number
     *
     * @return Specified step.
     */
    public Step getStep(final int stepNumber) {
        return wizard.getStep(stepNumber);
    //#WizardDialog.java:139: method: Step com.dmdirc.addons.ui_swing.wizard.WizardDialog.getStep(int)
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/Step]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/CommunicationStep]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/ExtractionStep]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/FirstRunExtractionStep]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/MigrationExtrationStep]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/firstrun/ProfileStep]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/Step.__Descendant_Table[others]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/StepLayout]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Descendant_Table[others]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/StepLayout.__Dispatch_Table.getStep(I)Lcom/dmdirc/addons/ui_swing/wizard/Step;
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(Step getStep(int)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.getStep(I)Lcom/dmdirc/addons/ui_swing/wizard/Step;
    //#input(Step getStep(int)): stepNumber
    //#input(Step getStep(int)): this
    //#input(Step getStep(int)): this.wizard
    //#input(Step getStep(int)): this.wizard.__Tag
    //#input(Step getStep(int)): this.wizard.steps
    //#input(Step getStep(int)): this.wizard.steps.__Tag
    //#input(Step getStep(int)): this.wizard.steps.steps
    //#output(Step getStep(int)): return_value
    //#pre[3] (Step getStep(int)): this.wizard != null
    //#pre[4] (Step getStep(int)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (Step getStep(int)): this.wizard.steps != null
    //#pre[6] (Step getStep(int)): this.wizard.steps.__Tag == com/dmdirc/addons/ui_swing/wizard/StepLayout
    //#pre[7] (Step getStep(int)): this.wizard.steps.steps != null
    //#post(Step getStep(int)): init'ed(return_value)
    //#unanalyzed(Step getStep(int)): Effects-of-calling:java.util.List:get
    //#WizardDialog.java:139: end of method: Step com.dmdirc.addons.ui_swing.wizard.WizardDialog.getStep(int)
    }
    
    /**
     * Returns the current step.
     *
     * @return Current step number
     */
    public int getCurrentStep() {
        return wizard.getCurrentStep();
    //#WizardDialog.java:148: method: int com.dmdirc.addons.ui_swing.wizard.WizardDialog.getCurrentStep()
    //#input(int getCurrentStep()): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(int getCurrentStep()): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(int getCurrentStep()): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.getCurrentStep()I
    //#input(int getCurrentStep()): this
    //#input(int getCurrentStep()): this.wizard
    //#input(int getCurrentStep()): this.wizard.__Tag
    //#input(int getCurrentStep()): this.wizard.currentStep
    //#output(int getCurrentStep()): return_value
    //#pre[2] (int getCurrentStep()): this.wizard != null
    //#pre[3] (int getCurrentStep()): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[4] (int getCurrentStep()): init'ed(this.wizard.currentStep)
    //#post(int getCurrentStep()): return_value == this.wizard.currentStep
    //#post(int getCurrentStep()): init'ed(return_value)
    //#WizardDialog.java:148: end of method: int com.dmdirc.addons.ui_swing.wizard.WizardDialog.getCurrentStep()
    }
    
    /**
     * Enables or disables the "next step" button.
     *
     * @param newValue boolean true to make "next" button enabled, else false
     */
    public void enableNextStep(final boolean newValue) {
        wizard.enableNextStep(newValue);
    //#WizardDialog.java:157: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.enableNextStep(bool)
    //#input(void enableNextStep(bool)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void enableNextStep(bool)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void enableNextStep(bool)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.enableNextStep(Z)V
    //#input(void enableNextStep(bool)): newValue
    //#input(void enableNextStep(bool)): this
    //#input(void enableNextStep(bool)): this.wizard
    //#input(void enableNextStep(bool)): this.wizard.__Tag
    //#input(void enableNextStep(bool)): this.wizard.next
    //#pre[3] (void enableNextStep(bool)): this.wizard != null
    //#pre[4] (void enableNextStep(bool)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void enableNextStep(bool)): this.wizard.next != null
    //#unanalyzed(void enableNextStep(bool)): Effects-of-calling:javax.swing.JButton:setEnabled
    }
    //#WizardDialog.java:158: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.enableNextStep(bool)

    /**
     * Enables or disables the "previous step" button.
     *
     * @param newValue boolean true to make "previous" button enabled, else false
     */
    public void enablePreviousStep(final boolean newValue) {
        wizard.enablePreviousStep(newValue);
    //#WizardDialog.java:166: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.enablePreviousStep(bool)
    //#input(void enablePreviousStep(bool)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void enablePreviousStep(bool)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void enablePreviousStep(bool)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.enablePreviousStep(Z)V
    //#input(void enablePreviousStep(bool)): newValue
    //#input(void enablePreviousStep(bool)): this
    //#input(void enablePreviousStep(bool)): this.wizard
    //#input(void enablePreviousStep(bool)): this.wizard.__Tag
    //#input(void enablePreviousStep(bool)): this.wizard.prev
    //#pre[3] (void enablePreviousStep(bool)): this.wizard != null
    //#pre[4] (void enablePreviousStep(bool)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void enablePreviousStep(bool)): this.wizard.prev != null
    //#unanalyzed(void enablePreviousStep(bool)): Effects-of-calling:javax.swing.JButton:setEnabled
    }
    //#WizardDialog.java:167: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.enablePreviousStep(bool)

    /**
     * Adds a step listener to the list.
     *
     * @param listener
     */
    public void addStepListener(final StepListener listener) {
        wizard.addStepListener(listener);
    //#WizardDialog.java:175: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.addStepListener(StepListener)
    //#input(void addStepListener(StepListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void addStepListener(StepListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void addStepListener(StepListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.addStepListener(Lcom/dmdirc/addons/ui_swing/wizard/StepListener;)V
    //#input(void addStepListener(StepListener)): listener
    //#input(void addStepListener(StepListener)): this
    //#input(void addStepListener(StepListener)): this.wizard
    //#input(void addStepListener(StepListener)): this.wizard.__Tag
    //#input(void addStepListener(StepListener)): this.wizard.stepListeners
    //#pre[3] (void addStepListener(StepListener)): this.wizard != null
    //#pre[4] (void addStepListener(StepListener)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void addStepListener(StepListener)): this.wizard.stepListeners != null
    //#unanalyzed(void addStepListener(StepListener)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void addStepListener(StepListener)): Effects-of-calling:com.dmdirc.util.ListenerList:add
    }
    //#WizardDialog.java:176: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.addStepListener(StepListener)

    /**
     * Removes a step listener from the list.
     *
     * @param listener
     */
    public void removeStepListener(final StepListener listener) {
        wizard.removeStepListener(listener);
    //#WizardDialog.java:184: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.removeStepListener(StepListener)
    //#input(void removeStepListener(StepListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void removeStepListener(StepListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void removeStepListener(StepListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.removeStepListener(Lcom/dmdirc/addons/ui_swing/wizard/StepListener;)V
    //#input(void removeStepListener(StepListener)): listener
    //#input(void removeStepListener(StepListener)): this
    //#input(void removeStepListener(StepListener)): this.wizard
    //#input(void removeStepListener(StepListener)): this.wizard.__Tag
    //#input(void removeStepListener(StepListener)): this.wizard.stepListeners
    //#pre[3] (void removeStepListener(StepListener)): this.wizard != null
    //#pre[4] (void removeStepListener(StepListener)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void removeStepListener(StepListener)): this.wizard.stepListeners != null
    //#unanalyzed(void removeStepListener(StepListener)): Effects-of-calling:com.dmdirc.util.ListenerList:remove
    //#unanalyzed(void removeStepListener(StepListener)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    }
    //#WizardDialog.java:185: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.removeStepListener(StepListener)

    /**
     * Adds a wizard listener to the list.
     *
     * @param listener
     */
    public void addWizardListener(final WizardListener listener) {
        wizard.addWizardListener(listener);
    //#WizardDialog.java:193: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.addWizardListener(WizardListener)
    //#input(void addWizardListener(WizardListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void addWizardListener(WizardListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void addWizardListener(WizardListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.addWizardListener(Lcom/dmdirc/addons/ui_swing/wizard/WizardListener;)V
    //#input(void addWizardListener(WizardListener)): listener
    //#input(void addWizardListener(WizardListener)): this
    //#input(void addWizardListener(WizardListener)): this.wizard
    //#input(void addWizardListener(WizardListener)): this.wizard.__Tag
    //#input(void addWizardListener(WizardListener)): this.wizard.stepListeners
    //#pre[3] (void addWizardListener(WizardListener)): this.wizard != null
    //#pre[4] (void addWizardListener(WizardListener)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void addWizardListener(WizardListener)): this.wizard.stepListeners != null
    //#unanalyzed(void addWizardListener(WizardListener)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void addWizardListener(WizardListener)): Effects-of-calling:com.dmdirc.util.ListenerList:add
    }
    //#WizardDialog.java:194: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.addWizardListener(WizardListener)

    /**
     * Removes a wizard listener from the list.
     *
     * @param listener
     */
    public void removeWizardListener(final WizardListener listener) {
        wizard.removeWizardListener(listener);
    //#WizardDialog.java:202: method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.removeWizardListener(WizardListener)
    //#input(void removeWizardListener(WizardListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardPanel]
    //#input(void removeWizardListener(WizardListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Descendant_Table[others]
    //#input(void removeWizardListener(WizardListener)): com/dmdirc/addons/ui_swing/wizard/WizardPanel.__Dispatch_Table.removeWizardListener(Lcom/dmdirc/addons/ui_swing/wizard/WizardListener;)V
    //#input(void removeWizardListener(WizardListener)): listener
    //#input(void removeWizardListener(WizardListener)): this
    //#input(void removeWizardListener(WizardListener)): this.wizard
    //#input(void removeWizardListener(WizardListener)): this.wizard.__Tag
    //#input(void removeWizardListener(WizardListener)): this.wizard.stepListeners
    //#pre[3] (void removeWizardListener(WizardListener)): this.wizard != null
    //#pre[4] (void removeWizardListener(WizardListener)): this.wizard.__Tag == com/dmdirc/addons/ui_swing/wizard/WizardPanel
    //#pre[5] (void removeWizardListener(WizardListener)): this.wizard.stepListeners != null
    //#unanalyzed(void removeWizardListener(WizardListener)): Effects-of-calling:com.dmdirc.util.ListenerList:remove
    //#unanalyzed(void removeWizardListener(WizardListener)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    }
    //#WizardDialog.java:203: end of method: void com.dmdirc.addons.ui_swing.wizard.WizardDialog.removeWizardListener(WizardListener)
}
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardDialog$1]
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog$1__static_init): __Dispatch_Table.windowClosed(Ljava/awt/event/WindowEvent;)V
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardDialog$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog$1__static_init): __Dispatch_Table.windowClosed(Ljava/awt/event/WindowEvent;)V == &windowClosed
    //#WizardDialog.java:: end of method: com.dmdirc.addons.ui_swing.wizard.WizardDialog$1.com.dmdirc.addons.ui_swing.wizard.WizardDialog$1__static_init
    //#WizardDialog.java:: end of class: com.dmdirc.addons.ui_swing.wizard.WizardDialog$1
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardDialog]
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.addStep(Lcom/dmdirc/addons/ui_swing/wizard/Step;)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.addStepListener(Lcom/dmdirc/addons/ui_swing/wizard/StepListener;)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.addWizardListener(Lcom/dmdirc/addons/ui_swing/wizard/WizardListener;)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.display()V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.enableNextStep(Z)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.enablePreviousStep(Z)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.getCurrentStep()I
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.getStep(I)Lcom/dmdirc/addons/ui_swing/wizard/Step;
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.layoutComponents()V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.removeStepListener(Lcom/dmdirc/addons/ui_swing/wizard/StepListener;)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.removeWizardListener(Lcom/dmdirc/addons/ui_swing/wizard/WizardListener;)V
    //#output(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.validate()V
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/wizard/WizardDialog] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.addStep(Lcom/dmdirc/addons/ui_swing/wizard/Step;)V == &addStep
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.addStepListener(Lcom/dmdirc/addons/ui_swing/wizard/StepListener;)V == &addStepListener
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.addWizardListener(Lcom/dmdirc/addons/ui_swing/wizard/WizardListener;)V == &addWizardListener
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.display()V == &display
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.enableNextStep(Z)V == &enableNextStep
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.enablePreviousStep(Z)V == &enablePreviousStep
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.getCurrentStep()I == &getCurrentStep
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.getStep(I)Lcom/dmdirc/addons/ui_swing/wizard/Step; == &getStep
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.layoutComponents()V == &layoutComponents
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.removeStepListener(Lcom/dmdirc/addons/ui_swing/wizard/StepListener;)V == &removeStepListener
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.removeWizardListener(Lcom/dmdirc/addons/ui_swing/wizard/WizardListener;)V == &removeWizardListener
    //#post(com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init): __Dispatch_Table.validate()V == &validate
    //#WizardDialog.java:: end of method: com.dmdirc.addons.ui_swing.wizard.WizardDialog.com.dmdirc.addons.ui_swing.wizard.WizardDialog__static_init
    //#WizardDialog.java:: end of class: com.dmdirc.addons.ui_swing.wizard.WizardDialog
