//# 1 errors, 1,103 messages
//#
/*
    //#ProfileManagerDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#ProfileManagerDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__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.profiles;

import com.dmdirc.addons.ui_swing.MainFrame;
import com.dmdirc.addons.ui_swing.components.ListScroller;
import com.dmdirc.addons.ui_swing.components.StandardDialog;
import com.dmdirc.addons.ui_swing.components.renderers.ProfileListCellRenderer;
import com.dmdirc.addons.ui_swing.components.text.TextLabel;
import com.dmdirc.addons.ui_swing.dialogs.NewServerDialog;
import com.dmdirc.config.Identity;
import com.dmdirc.config.IdentityManager;

import java.awt.Dialog.ModalityType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.WindowConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import net.miginfocom.swing.MigLayout;

/** Profile editing dialog. */
public final class ProfileManagerDialog extends StandardDialog implements ActionListener,
        ListSelectionListener {

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 2;
    /** Previously created instance of ProfileEditorDialog. */
    private static volatile ProfileManagerDialog me;
    /** Profile list. */
    private JList profileList;
    /** Profile list mode. */
    private ProfileListModel model;
    /** Profile detail panel. */
    private ProfileDetailPanel details;
    /** Info label. */
    private TextLabel infoLabel;
    /** Add button. */
    private JButton addButton;
    /** Delete button. */
    private JButton deleteButton;
    /** Selected index. */
    private int selectedIndex;
    /** Deleted profiles. */
    private final List<Profile> deletedProfiles;
    /** main frame. */
    private MainFrame mainFrame;

    /** 
     * Creates a new instance of ProfileEditorDialog. 
     * 
     * @param parentWindow main frame
     */
    private ProfileManagerDialog(final MainFrame mainFrame) {
        super(mainFrame, ModalityType.MODELESS);
    //#ProfileManagerDialog.java:89: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)
    //#ProfileManagerDialog.java:89: 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.profiles.ProfileManagerDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.getSize()I
    //#input(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): mainFrame
    //#input(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.addButton
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.deleteButton
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.deletedProfiles
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.details
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.infoLabel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.mainFrame
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.model
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.profileList
    //#output(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.selectedIndex
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1)
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(java.awt.Dialog$ModalityType.MODELESS)
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.addButton != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.deleteButton != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.model != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.model.profiles != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.profileList != null
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.profileList != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(this.addButton)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(this.deleteButton)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.deletedProfiles == &new ArrayList(ProfileManagerDialog#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(this.details)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(this.infoLabel)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.mainFrame == mainFrame
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(this.mainFrame)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.model != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): this.profileList != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): init'ed(this.selectedIndex)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:java.awt.Container:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:java.awt.Container:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getLeftButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getRightButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): Effects-of-calling:java.util.List:size
    //#test_vector(void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)): java.util.List:size(...)@60: {-2_147_483_648..0}, {1..4_294_967_295}
        this.mainFrame = mainFrame;
        deletedProfiles = new ArrayList<Profile>();

        initComponents();
    //#ProfileManagerDialog.java:93: Warning: call too complex - analysis skipped
    //#    call on void initComponents()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)
    //#    unanalyzed callee: void initComponents()

        layoutComponents();

        addListeners();

        if (model.getSize() > 0) {
            profileList.setSelectedIndex(0);
        } else {
            selectedIndex = -1;
        }
    }
    //#ProfileManagerDialog.java:104: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog(MainFrame)
    
    /** 
     * Creates the dialog if one doesn't exist, and displays it. 
     * 
     * @param mainFrame Main frame
     */
    public static void showProfileManagerDialog(final MainFrame mainFrame) {
        me = getProfileManagerDialog(mainFrame);
    //#ProfileManagerDialog.java:112: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.showProfileManagerDialog(MainFrame)
    //#input(void showProfileManagerDialog(MainFrame)): __Class_Obj.__Lock
    //#input(void showProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void showProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void showProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.getSize()I
    //#input(void showProfileManagerDialog(MainFrame)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void showProfileManagerDialog(MainFrame)): mainFrame
    //#input(void showProfileManagerDialog(MainFrame)): me
    //#output(void showProfileManagerDialog(MainFrame)): me
    //#output(void showProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1) num objects
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1) num objects
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).__Tag
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).addButton
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).deleteButton
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).deletedProfiles
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).details
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).infoLabel
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).mainFrame
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).model
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).profileList
    //#output(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).selectedIndex
    //#new obj(void showProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1)
    //#new obj(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1)
    //#pre[2] (void showProfileManagerDialog(MainFrame)): init'ed(me)
    //#post(void showProfileManagerDialog(MainFrame)): me == One-of{old me, &new ProfileManagerDialog(getProfileManagerDialog#1)}
    //#post(void showProfileManagerDialog(MainFrame)): me != null
    //#post(void showProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1) num objects <= 1
    //#post(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1) num objects == new ArrayList(ProfileManagerDialog#1) num objects
    //#post(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileManagerDialog
    //#post(void showProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).addButton)
    //#post(void showProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).deleteButton)
    //#post(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).deletedProfiles == &new ArrayList(ProfileManagerDialog#1)
    //#post(void showProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).details)
    //#post(void showProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).infoLabel)
    //#post(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).mainFrame == mainFrame
    //#post(void showProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).mainFrame)
    //#post(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).model != null
    //#post(void showProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).profileList != null
    //#post(void showProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).selectedIndex)
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:java.awt.Container:setLayout
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:java.awt.Container:add
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getLeftButton
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getRightButton
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JList:setSelectedIndex
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void showProfileManagerDialog(MainFrame)): Effects-of-calling:initComponents

        me.pack();
    //#ProfileManagerDialog.java:114: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void showProfileManagerDialog(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack()
        me.setLocationRelativeTo(mainFrame);
    //#ProfileManagerDialog.java:115: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void showProfileManagerDialog(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setLocationRelativeTo(Component)
        me.setVisible(true);
    //#ProfileManagerDialog.java:116: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void showProfileManagerDialog(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setVisible(bool)
        me.requestFocusInWindow();
    //#ProfileManagerDialog.java:117: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:requestFocusInWindow()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void showProfileManagerDialog(MainFrame)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:requestFocusInWindow()
    }
    //#ProfileManagerDialog.java:118: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.showProfileManagerDialog(MainFrame)

    /**
     * Returns the current instance of the ProfileManagerDialog.
     * 
     * @param mainFrame Main frame
     *
     * @return The current ProfileManagerDialog instance
     */
    public static ProfileManagerDialog getProfileManagerDialog(final MainFrame mainFrame) {
        synchronized (ProfileManagerDialog.class) {
    //#ProfileManagerDialog.java:128: method: ProfileManagerDialog com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.getProfileManagerDialog(MainFrame)
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): __Class_Obj.__Lock
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.getSize()I
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): java.awt.Dialog$ModalityType.MODELESS
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): mainFrame
    //#input(ProfileManagerDialog getProfileManagerDialog(MainFrame)): me
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): me
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1) num objects
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1) num objects
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).__Tag
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).addButton
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).deleteButton
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).deletedProfiles
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).details
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).infoLabel
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).mainFrame
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).model
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).profileList
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).selectedIndex
    //#output(ProfileManagerDialog getProfileManagerDialog(MainFrame)): return_value
    //#new obj(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1)
    //#new obj(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1)
    //#pre[2] (ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(me)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): me == One-of{old me, &new ProfileManagerDialog(getProfileManagerDialog#1)}
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): me != null
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): return_value == One-of{old me, &new ProfileManagerDialog(getProfileManagerDialog#1)}
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): return_value != null
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ArrayList(ProfileManagerDialog#1) num objects <= 1
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1) num objects <= 1
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileManagerDialog
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).addButton)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).deleteButton)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).deletedProfiles == &new ArrayList(ProfileManagerDialog#1)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).details)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).infoLabel)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).mainFrame == mainFrame
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).mainFrame)
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).model != null
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): new ProfileManagerDialog(getProfileManagerDialog#1).profileList != null
    //#post(ProfileManagerDialog getProfileManagerDialog(MainFrame)): init'ed(new ProfileManagerDialog(getProfileManagerDialog#1).selectedIndex)
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:java.awt.Container:setLayout
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:java.awt.Container:add
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getLeftButton
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getRightButton
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:javax.swing.JList:setSelectedIndex
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:java.util.List:size
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(ProfileManagerDialog getProfileManagerDialog(MainFrame)): Effects-of-calling:initComponents
            if (me == null) {
                me = new ProfileManagerDialog(mainFrame);
            }
        }

        return me;
    //#ProfileManagerDialog.java:134: end of method: ProfileManagerDialog com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.getProfileManagerDialog(MainFrame)
    }

    /** Initialises the components. */
    private void initComponents() {
        setTitle("Profile Editor");
    //#ProfileManagerDialog.java:139: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.initComponents()
    //#ProfileManagerDialog.java:139: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setTitle(String)
    //#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()): "unable to create data flavor: "._tainted
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/reorderablelist/ArrayListTransferHandler.com.dmdirc.logger.ErrorLevel.LOW
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/reorderablelist/ReorderableJList.com.dmdirc.logger.ErrorLevel.LOW
    //#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/components/validating/ValidatingJTextField.__Dispatch_Table.setEnabled(Z)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.add(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)Z
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.clear()V
    //#input(void initComponents()): this
    //#input(void initComponents()): this.mainFrame
    //#input(void initComponents()): this.model.__Tag
    //#input(void initComponents()): this.model.profiles
    //#output(void initComponents()): new ArrayList(ProfileListModel#1) num objects
    //#output(void initComponents()): new DataFlavor(ReorderableJList#4) num objects
    //#output(void initComponents()): new DefaultListModel(ProfileDetailPanel#1) num objects
    //#output(void initComponents()): new DropTarget(ReorderableJList#3) num objects
    //#output(void initComponents()): new IdentValidator(initMainComponents#6) num objects
    //#output(void initComponents()): new JButton(initComponents#6) num objects
    //#output(void initComponents()): new JButton(initComponents#7) num objects
    //#output(void initComponents()): new JButton(initMainComponents#10) num objects
    //#output(void initComponents()): new JButton(initMainComponents#8) num objects
    //#output(void initComponents()): new JButton(initMainComponents#9) num objects
    //#output(void initComponents()): new JLabel(ValidatingJTextField#1) num objects
    //#output(void initComponents()): new JList(initComponents#4) num objects
    //#output(void initComponents()): new JTextField(ValidatingJTextField#1) num objects
    //#output(void initComponents()): new NotEmptyValidator(initMainComponents#4) num objects
    //#output(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2) num objects
    //#output(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2).__Tag
    //#output(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2).this$0
    //#output(void initComponents()): new ProfileDetailPanel(initComponents#5) num objects
    //#output(void initComponents()): this.details.__Tag
    //#output(void initComponents()): this.details.addButton
    //#output(void initComponents()): this.details.delButton
    //#output(void initComponents()): this.details.editButton
    //#output(void initComponents()): this.details.ident
    //#output(void initComponents()): this.details.mainFrame
    //#output(void initComponents()): this.details.model
    //#output(void initComponents()): this.details.name
    //#output(void initComponents()): this.details.nicknameModel
    //#output(void initComponents()): this.details.nicknames
    //#output(void initComponents()): this.details.realname
    //#output(void initComponents()): this.details.validator
    //#output(void initComponents()): new ProfileListModel(initComponents#3) num objects
    //#output(void initComponents()): this.model.__Tag
    //#output(void initComponents()): this.model.profiles
    //#output(void initComponents()): new ReorderableJList(initMainComponents#7) num objects
    //#output(void initComponents()): new ReorderableJList(initMainComponents#7).__Tag
    //#output(void initComponents()): new ReorderableJList(initMainComponents#7).dataFlavor
    //#output(void initComponents()): new ReorderableJList(initMainComponents#7).dragSource
    //#output(void initComponents()): new ReorderableJList(initMainComponents#7).draggedIndex
    //#output(void initComponents()): new ReorderableJList(initMainComponents#7).dropTarget
    //#output(void initComponents()): new SimpleAttributeSet(TextLabel#6) num objects
    //#output(void initComponents()): new TextLabel(initComponents#8) num objects
    //#output(void initComponents()): this.infoLabel.__Tag
    //#output(void initComponents()): this.infoLabel.sas
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#1) num objects
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#1).__Tag
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#1).errorIcon
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#1).textField
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#1).validator
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#3) num objects
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#3).__Tag
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#3).errorIcon
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#3).textField
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#3).validator
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#5) num objects
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#5).__Tag
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#5).errorIcon
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#5).textField
    //#output(void initComponents()): new ValidatingJTextField(initMainComponents#5).validator
    //#output(void initComponents()): new ValidatorChain(ProfileDetailPanel#2) num objects
    //#output(void initComponents()): this.addButton
    //#output(void initComponents()): this.deleteButton
    //#output(void initComponents()): this.details
    //#output(void initComponents()): this.infoLabel
    //#output(void initComponents()): this.model
    //#output(void initComponents()): this.profileList
    //#new obj(void initComponents()): new ArrayList(ProfileListModel#1)
    //#new obj(void initComponents()): new DataFlavor(ReorderableJList#4)
    //#new obj(void initComponents()): new DefaultListModel(ProfileDetailPanel#1)
    //#new obj(void initComponents()): new DropTarget(ReorderableJList#3)
    //#new obj(void initComponents()): new IdentValidator(initMainComponents#6)
    //#new obj(void initComponents()): new JButton(initComponents#6)
    //#new obj(void initComponents()): new JButton(initComponents#7)
    //#new obj(void initComponents()): new JButton(initMainComponents#10)
    //#new obj(void initComponents()): new JButton(initMainComponents#8)
    //#new obj(void initComponents()): new JButton(initMainComponents#9)
    //#new obj(void initComponents()): new JLabel(ValidatingJTextField#1)
    //#new obj(void initComponents()): new JList(initComponents#4)
    //#new obj(void initComponents()): new JTextField(ValidatingJTextField#1)
    //#new obj(void initComponents()): new NotEmptyValidator(initMainComponents#4)
    //#new obj(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2)
    //#new obj(void initComponents()): new ProfileDetailPanel(initComponents#5)
    //#new obj(void initComponents()): new ProfileListModel(initComponents#3)
    //#new obj(void initComponents()): new ReorderableJList(initMainComponents#7)
    //#new obj(void initComponents()): new SimpleAttributeSet(TextLabel#6)
    //#new obj(void initComponents()): new TextLabel(initComponents#8)
    //#new obj(void initComponents()): new ValidatingJTextField(initMainComponents#1)
    //#new obj(void initComponents()): new ValidatingJTextField(initMainComponents#3)
    //#new obj(void initComponents()): new ValidatingJTextField(initMainComponents#5)
    //#new obj(void initComponents()): new ValidatorChain(ProfileDetailPanel#2)
    //#pre[2] (void initComponents()): init'ed(this.mainFrame)
    //#presumption(void initComponents()): java.awt.dnd.DragSource:getDefaultDragSource(...)@99 != null
    //#post(void initComponents()): this.addButton == &new JButton(initComponents#6)
    //#post(void initComponents()): this.deleteButton == &new JButton(initComponents#7)
    //#post(void initComponents()): this.details == &new ProfileDetailPanel(initComponents#5)
    //#post(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2).this$0 == &new ProfileDetailPanel(initComponents#5)
    //#post(void initComponents()): this.infoLabel == &new TextLabel(initComponents#8)
    //#post(void initComponents()): this.model == &new ProfileListModel(initComponents#3)
    //#post(void initComponents()): this.details.model == &new ProfileListModel(initComponents#3)
    //#post(void initComponents()): this.profileList == &new JList(initComponents#4)
    //#post(void initComponents()): new ArrayList(ProfileListModel#1) num objects == 1
    //#post(void initComponents()): new DefaultListModel(ProfileDetailPanel#1) num objects == 1
    //#post(void initComponents()): new DropTarget(ReorderableJList#3) num objects == 1
    //#post(void initComponents()): new IdentValidator(initMainComponents#6) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#6) num objects == 1
    //#post(void initComponents()): new JButton(initComponents#7) num objects == 1
    //#post(void initComponents()): new JButton(initMainComponents#10) num objects == 1
    //#post(void initComponents()): new JButton(initMainComponents#8) num objects == 1
    //#post(void initComponents()): new JButton(initMainComponents#9) num objects == 1
    //#post(void initComponents()): new JLabel(ValidatingJTextField#1) num objects == 1
    //#post(void initComponents()): new JList(initComponents#4) num objects == 1
    //#post(void initComponents()): new JTextField(ValidatingJTextField#1) num objects == 1
    //#post(void initComponents()): new NotEmptyValidator(initMainComponents#4) num objects == 1
    //#post(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2) num objects == 1
    //#post(void initComponents()): new ProfileDetailPanel(initComponents#5) num objects == 1
    //#post(void initComponents()): new ProfileListModel(initComponents#3) num objects == 1
    //#post(void initComponents()): new ReorderableJList(initMainComponents#7) num objects == 1
    //#post(void initComponents()): new SimpleAttributeSet(TextLabel#6) num objects == 1
    //#post(void initComponents()): new TextLabel(initComponents#8) num objects == 1
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#1) num objects == 1
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#3) num objects == 1
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#5) num objects == 1
    //#post(void initComponents()): new ValidatorChain(ProfileDetailPanel#2) num objects == 1
    //#post(void initComponents()): new DataFlavor(ReorderableJList#4) num objects <= 1
    //#post(void initComponents()): new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2).__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileDetailPanel$ProfileNameValidator
    //#post(void initComponents()): this.details.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileDetailPanel
    //#post(void initComponents()): this.details.addButton == &new JButton(initMainComponents#8)
    //#post(void initComponents()): this.details.delButton == &new JButton(initMainComponents#9)
    //#post(void initComponents()): this.details.editButton == &new JButton(initMainComponents#10)
    //#post(void initComponents()): this.details.ident == &new ValidatingJTextField(initMainComponents#5)
    //#post(void initComponents()): this.details.mainFrame == this.mainFrame
    //#post(void initComponents()): init'ed(this.details.mainFrame)
    //#post(void initComponents()): this.details.name == &new ValidatingJTextField(initMainComponents#1)
    //#post(void initComponents()): this.details.nicknameModel == &new DefaultListModel(ProfileDetailPanel#1)
    //#post(void initComponents()): this.details.nicknames == &new ReorderableJList(initMainComponents#7)
    //#post(void initComponents()): this.details.realname == &new ValidatingJTextField(initMainComponents#3)
    //#post(void initComponents()): this.details.validator == &new ValidatorChain(ProfileDetailPanel#2)
    //#post(void initComponents()): this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#post(void initComponents()): this.model.profiles == &new ArrayList(ProfileListModel#1)
    //#post(void initComponents()): new ReorderableJList(initMainComponents#7).__Tag == com/dmdirc/addons/ui_swing/components/reorderablelist/ReorderableJList
    //#post(void initComponents()): new ReorderableJList(initMainComponents#7).dataFlavor == One-of{&new DataFlavor(ReorderableJList#4), null}
    //#post(void initComponents()): new ReorderableJList(initMainComponents#7).dataFlavor in Addr_Set{null,&new DataFlavor(ReorderableJList#4)}
    //#post(void initComponents()): new ReorderableJList(initMainComponents#7).dragSource != null
    //#post(void initComponents()): init'ed(new ReorderableJList(initMainComponents#7).draggedIndex)
    //#post(void initComponents()): new ReorderableJList(initMainComponents#7).dropTarget == &new DropTarget(ReorderableJList#3)
    //#post(void initComponents()): this.infoLabel.__Tag == com/dmdirc/addons/ui_swing/components/text/TextLabel
    //#post(void initComponents()): this.infoLabel.sas == &new SimpleAttributeSet(TextLabel#6)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#1).__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#3).__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#5).__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#1).errorIcon == &new JLabel(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#3).errorIcon == &new JLabel(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#5).errorIcon == &new JLabel(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#1).textField == &new JTextField(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#3).textField == &new JTextField(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#5).textField == &new JTextField(ValidatingJTextField#1)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#1).validator == &new ProfileDetailPanel$ProfileNameValidator(initMainComponents#2)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#3).validator == &new NotEmptyValidator(initMainComponents#4)
    //#post(void initComponents()): new ValidatingJTextField(initMainComponents#5).validator == &new IdentValidator(initMainComponents#6)
    //#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:isFailure
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList:getModel
    //#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.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.JButton:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListModel:clear
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:setEnabled
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:size
    //#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.List:iterator
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalRemoved
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalAdded
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.List:clear
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.IdentityManager:getProfiles
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.Identity:getName
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.Identity:getOptionList
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.Identity:getOption
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListModel
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.FileNameValidator
    //#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:javax.swing.JTextField
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.NotEmptyValidator
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.IdentValidator
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JList
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.renderers.ReorderableJListCellRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:setCellRenderer
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:setSelectionMode
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.TransferHandler
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.datatransfer.DataFlavor
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#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.lang.ClassNotFoundException:getMessage
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.logger.Logger:userError
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:setTransferHandler
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.dnd.DragSource:getDefaultDragSource
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.dnd.DropTarget
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.dnd.DragSource:createDefaultDragGestureRecognizer
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:setVisibleRowCount
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:addListSelectionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.DefaultListModel:addListDataListener
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileDetailPanel:setLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileDetailPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.NicknameValidator
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidatorChain
    //#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.awt.Font:getFamily
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getSize
    //#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:javax.swing.DefaultListCellRenderer
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    //#ProfileManagerDialog.java:140: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setDefaultCloseOperation(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setDefaultCloseOperation(int)
        setResizable(false);
    //#ProfileManagerDialog.java:141: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setResizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:setResizable(bool)

        orderButtons(new JButton(), new JButton());
    //#ProfileManagerDialog.java:143: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:orderButtons(JButton, JButton)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:orderButtons(JButton, JButton)

        model = new ProfileListModel();
        profileList = new JList(model);
        details = new ProfileDetailPanel(model, mainFrame);
        addButton = new JButton("Add");
        deleteButton = new JButton("Delete");
        infoLabel =
                new TextLabel("Profiles describe information needed to " +
                "connect to a server.  You can use a different profile for " +
                "each connection.");

        profileList.setCellRenderer(new ProfileListCellRenderer());
        profileList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        new ListScroller(profileList);
    //#ProfileManagerDialog.java:157: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.ListScroller(JList)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.ListScroller(JList)

        populateList();
    }
    //#ProfileManagerDialog.java:160: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.initComponents()

    /** Lays out the dialog. */
    private void layoutComponents() {
        getContentPane().setLayout(new MigLayout("fill, wmin 700, wmax 700"));
    //#ProfileManagerDialog.java:164: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.layoutComponents()
    //#ProfileManagerDialog.java:164: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#ProfileManagerDialog.java:164: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#input(void layoutComponents()): this
    //#input(void layoutComponents()): this.addButton
    //#input(void layoutComponents()): this.deleteButton
    //#input(void layoutComponents()): this.details
    //#input(void layoutComponents()): this.infoLabel
    //#input(void layoutComponents()): this.profileList
    //#pre[2] (void layoutComponents()): init'ed(this.addButton)
    //#pre[3] (void layoutComponents()): init'ed(this.deleteButton)
    //#pre[4] (void layoutComponents()): init'ed(this.details)
    //#pre[5] (void layoutComponents()): init'ed(this.infoLabel)
    //#pre[6] (void layoutComponents()): init'ed(this.profileList)
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@164 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@166 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@167 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@169 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@170 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@171 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@172 != null
    //#presumption(void layoutComponents()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane(...)@173 != null

        getContentPane().add(infoLabel, "wrap, spanx 2");
    //#ProfileManagerDialog.java:166: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
        getContentPane().add(new JScrollPane(profileList),
    //#ProfileManagerDialog.java:167: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
                "growy, wmin 200, wmax 200");
        getContentPane().add(details, "grow, wrap");
    //#ProfileManagerDialog.java:169: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
        getContentPane().add(addButton, "wrap, wmin 200, wmax 200");
    //#ProfileManagerDialog.java:170: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
        getContentPane().add(deleteButton, "left, wmin 200, wmax 200");
    //#ProfileManagerDialog.java:171: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
        getContentPane().add(getLeftButton(), "split, right, sg button");
    //#ProfileManagerDialog.java:172: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#ProfileManagerDialog.java:172: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getLeftButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getLeftButton()
        getContentPane().add(getRightButton(), "right, sg button");
    //#ProfileManagerDialog.java:173: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getContentPane()
    //#ProfileManagerDialog.java:173: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getRightButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getRightButton()

        pack();
    //#ProfileManagerDialog.java:175: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void layoutComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:pack()
    }
    //#ProfileManagerDialog.java:176: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.layoutComponents()

    /** Adds listeners to the components. */
    private void addListeners() {
        getOkButton().addActionListener(this);
    //#ProfileManagerDialog.java:180: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.addListeners()
    //#ProfileManagerDialog.java:180: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
    //#input(void addListeners()): this
    //#input(void addListeners()): this.addButton
    //#input(void addListeners()): this.deleteButton
    //#input(void addListeners()): this.profileList
    //#pre[2] (void addListeners()): this.addButton != null
    //#pre[3] (void addListeners()): this.deleteButton != null
    //#pre[4] (void addListeners()): this.profileList != null
    //#presumption(void addListeners()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton(...)@181 != null
    //#presumption(void addListeners()): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton(...)@180 != null
        getCancelButton().addActionListener(this);
    //#ProfileManagerDialog.java:181: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void addListeners()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton()

        addButton.addActionListener(this);
        deleteButton.addActionListener(this);

        profileList.addListSelectionListener(this);
    }
    //#ProfileManagerDialog.java:187: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.addListeners()

    /** Populates the profile list. */
    public void populateList() {
        final String profileString = "profile";
    //#ProfileManagerDialog.java:191: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.populateList()
    //#ProfileManagerDialog.java:191: Warning: unused assignment
    //#    Unused assignment into profileString
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void populateList()
    //#input(void populateList()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void populateList()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void populateList()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.add(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)Z
    //#input(void populateList()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.clear()V
    //#input(void populateList()): this
    //#input(void populateList()): this.model
    //#input(void populateList()): this.model.__Tag
    //#input(void populateList()): this.model.profiles
    //#pre[2] (void populateList()): this.model != null
    //#pre[3] (void populateList()): this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#pre[4] (void populateList()): this.model.profiles != null
    //#presumption(void populateList()): com.dmdirc.config.IdentityManager:getProfiles(...)@193 != null
    //#presumption(void populateList()): java.util.Iterator:next(...)@194 != null
    //#unanalyzed(void populateList()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void populateList()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalRemoved
    //#unanalyzed(void populateList()): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void populateList()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void populateList()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalAdded
    //#unanalyzed(void populateList()): Effects-of-calling:java.util.List:clear
    //#test_vector(void populateList()): java.util.Iterator:hasNext(...)@194: {0}, {1}
        model.clear();
        final List<Identity> profiles = IdentityManager.getProfiles();
    //#ProfileManagerDialog.java:193: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.config.IdentityManager:getProfiles()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void populateList()
    //#    unanalyzed callee: List com.dmdirc.config.IdentityManager:getProfiles()
        for (Identity profile : profiles) {
            model.add(new Profile(profile.getName(),
    //#ProfileManagerDialog.java:195: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.config.Identity:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void populateList()
    //#    unanalyzed callee: String com.dmdirc.config.Identity:getName()
    //#ProfileManagerDialog.java:195: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.config.Identity:getOptionList(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void populateList()
    //#    unanalyzed callee: List com.dmdirc.config.Identity:getOptionList(String, String)
    //#ProfileManagerDialog.java:195: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.config.Identity:getOption(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void populateList()
    //#    unanalyzed callee: String com.dmdirc.config.Identity:getOption(String, String)
                    profile.getOptionList(profileString, "nicknames"),
                    profile.getOption(profileString, "realname"),
                    profile.getOption(profileString, "ident"),
                    false));
        }
    }
    //#ProfileManagerDialog.java:201: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.populateList()

    /** Saves the profile list. */
    private void save() {
        if (details.validateDetails()) {
    //#ProfileManagerDialog.java:205: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.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.checkError()V
    //#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/components/validating/ValidatingJTextField.__Dispatch_Table.requestFocusInWindow()Z
    //#input(void save()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void save()): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.validateText()Z
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.__Class_Obj.__Lock
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.java.awt.Dialog$ModalityType.MODELESS
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me.identityField
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/Profile]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.addNickname(Ljava/lang/String;)V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.delete()V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.save()V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setIdent(Ljava/lang/String;)V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setModified(Z)V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setNicknames(Ljava/util/List;)V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setRealname(Ljava/lang/String;)V
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void save()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.iterator()Ljava/util/Iterator;
    //#input(void save()): me
    //#input(void save()): this
    //#input(void save()): this.deletedProfiles
    //#input(void save()): this.details
    //#input(void save()): this.details.ident
    //#input(void save()): this.details.ident.__Tag
    //#input(void save()): this.details.ident.textField
    //#input(void save()): this.details.ident.validator
    //#input(void save()): this.details.name
    //#input(void save()): this.details.name.__Tag
    //#input(void save()): this.details.name.textField
    //#input(void save()): this.details.name.validator
    //#input(void save()): this.details.nicknames
    //#input(void save()): this.details.profile
    //#input(void save()): this.details.profile.__Tag
    //#input(void save()): this.details.profile.ident
    //#input(void save()): this.details.profile.name
    //#input(void save()): this.details.profile.nicknames
    //#input(void save()): this.details.profile.realname
    //#input(void save()): this.details.realname
    //#input(void save()): this.details.realname.__Tag
    //#input(void save()): this.details.realname.textField
    //#input(void save()): this.details.realname.validator
    //#input(void save()): this.mainFrame
    //#input(void save()): this.model
    //#input(void save()): this.model.__Tag
    //#input(void save()): this.model.profiles
    //#output(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me
    //#output(void save()): me
    //#output(void save()): new ArrayList(save#1*) num objects
    //#output(void save()): new JButton(initComponents#9) num objects
    //#output(void save()): new JCheckBox(initComponents#6) num objects
    //#output(void save()): new JCheckBox(initComponents#7) num objects
    //#output(void save()): new JComboBox(initComponents#8) num objects
    //#output(void save()): new JLabel(ValidatingJTextField#1) num objects
    //#output(void save()): new JPasswordField(initComponents#5) num objects
    //#output(void save()): new JTextField(ValidatingJTextField#1) num objects
    //#output(void save()): new NewServerDialog(getNewServerDialog#1) num objects
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).__Tag
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).editProfileButton
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).identityField
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).mainFrame
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).newServerWindowCheck
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).passwordField
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).portField
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).serverField
    //#output(void save()): new NewServerDialog(getNewServerDialog#1).sslCheck
    //#output(void save()): new PortValidator(initComponents#4) num objects
    //#output(void save()): new RegexStringValidator(initComponents#2) num objects
    //#output(void save()): new ValidatingJTextField(initComponents#1) num objects
    //#output(void save()): new ValidatingJTextField(initComponents#1).__Tag
    //#output(void save()): new ValidatingJTextField(initComponents#1).errorIcon
    //#output(void save()): new ValidatingJTextField(initComponents#1).textField
    //#output(void save()): new ValidatingJTextField(initComponents#1).validator
    //#output(void save()): new ValidatingJTextField(initComponents#3) num objects
    //#output(void save()): new ValidatingJTextField(initComponents#3).__Tag
    //#output(void save()): new ValidatingJTextField(initComponents#3).errorIcon
    //#output(void save()): new ValidatingJTextField(initComponents#3).textField
    //#output(void save()): new ValidatingJTextField(initComponents#3).validator
    //#output(void save()): this.details.profile.ident
    //#output(void save()): this.details.profile.modified
    //#output(void save()): this.details.profile.name
    //#output(void save()): this.details.profile.nicknames
    //#output(void save()): this.details.profile.oldName
    //#output(void save()): this.details.profile.realname
    //#new obj(void save()): new ArrayList(save#1*)
    //#new obj(void save()): new JButton(initComponents#9)
    //#new obj(void save()): new JCheckBox(initComponents#6)
    //#new obj(void save()): new JCheckBox(initComponents#7)
    //#new obj(void save()): new JComboBox(initComponents#8)
    //#new obj(void save()): new JLabel(ValidatingJTextField#1)
    //#new obj(void save()): new JPasswordField(initComponents#5)
    //#new obj(void save()): new JTextField(ValidatingJTextField#1)
    //#new obj(void save()): new NewServerDialog(getNewServerDialog#1)
    //#new obj(void save()): new PortValidator(initComponents#4)
    //#new obj(void save()): new RegexStringValidator(initComponents#2)
    //#new obj(void save()): new ValidatingJTextField(initComponents#1)
    //#new obj(void save()): new ValidatingJTextField(initComponents#3)
    //#pre[2] (void save()): init'ed(com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me)
    //#pre[12] (void save()): this.details != null
    //#pre[13] (void save()): this.details.ident != null
    //#pre[15] (void save()): this.details.ident.textField != null
    //#pre[3] (void save()): (soft) init'ed(me)
    //#pre[4] (void save()): (soft) init'ed(this.details.profile.ident)
    //#pre[6] (void save()): (soft) this.details.profile.name != null
    //#pre[7] (void save()): (soft) this.details.profile.nicknames != null
    //#pre[9] (void save()): (soft) this.details.profile.realname != null
    //#pre[11] (void save()): (soft) this.deletedProfiles != null
    //#pre[14] (void save()): (soft) this.details.ident.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[16] (void save()): (soft) this.details.ident.validator != null
    //#pre[17] (void save()): (soft) this.details.name != null
    //#pre[18] (void save()): (soft) this.details.name.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[19] (void save()): (soft) this.details.name.textField != null
    //#pre[20] (void save()): (soft) this.details.name.validator != null
    //#pre[21] (void save()): (soft) this.details.nicknames != null
    //#pre[22] (void save()): (soft) init'ed(this.details.profile)
    //#pre[23] (void save()): (soft) this.details.profile.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#pre[24] (void save()): (soft) this.details.realname != null
    //#pre[25] (void save()): (soft) this.details.realname.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[26] (void save()): (soft) this.details.realname.textField != null
    //#pre[27] (void save()): (soft) this.details.realname.validator != null
    //#pre[28] (void save()): (soft) this.mainFrame != null
    //#pre[29] (void save()): (soft) this.model != null
    //#pre[30] (void save()): (soft) this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#pre[31] (void save()): (soft) this.model.profiles != null
    //#presumption(void save()): getNewServerDialog(...).identityField != null
    //#presumption(void save()): getNewServerDialog(...)@220 init'ed
    //#presumption(void save()): java.util.Iterator:next(...).__Tag@210 == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#presumption(void save()): java.util.Iterator:next(...).__Tag@213 == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#presumption(void save()): java.util.Iterator:next(...)@210 != null
    //#presumption(void save()): java.util.Iterator:next(...)@213 != null
    //#post(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me == One-of{old com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me, &new NewServerDialog(getNewServerDialog#1)}
    //#post(void save()): init'ed(com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me)
    //#post(void save()): me == One-of{old me, null}
    //#post(void save()): init'ed(me)
    //#post(void save()): init'ed(this.details.profile.ident)
    //#post(void save()): possibly_updated(this.details.profile.modified)
    //#post(void save()): init'ed(this.details.profile.name)
    //#post(void save()): this.details.profile.nicknames == One-of{old this.details.profile.nicknames, &new ArrayList(save#1*)}
    //#post(void save()): this.details.profile.nicknames != null
    //#post(void save()): possibly_updated(this.details.profile.oldName)
    //#post(void save()): init'ed(this.details.profile.realname)
    //#post(void save()): new ArrayList(save#1*) num objects <= 1
    //#post(void save()): new JButton(initComponents#9) num objects == 0
    //#post(void save()): new JCheckBox(initComponents#6) num objects == 0
    //#post(void save()): new JCheckBox(initComponents#7) num objects == 0
    //#post(void save()): new JComboBox(initComponents#8) num objects == 0
    //#post(void save()): new JLabel(ValidatingJTextField#1) num objects == 0
    //#post(void save()): new JPasswordField(initComponents#5) num objects == 0
    //#post(void save()): new JTextField(ValidatingJTextField#1) num objects == 0
    //#post(void save()): new NewServerDialog(getNewServerDialog#1) num objects == 0
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).__Tag)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).editProfileButton)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).identityField)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).mainFrame)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).newServerWindowCheck)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).passwordField)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).portField)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).serverField)
    //#post(void save()): possibly_updated(new NewServerDialog(getNewServerDialog#1).sslCheck)
    //#post(void save()): new PortValidator(initComponents#4) num objects == 0
    //#post(void save()): new RegexStringValidator(initComponents#2) num objects == 0
    //#post(void save()): new ValidatingJTextField(initComponents#1) num objects == 0
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#1).__Tag)
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#1).errorIcon)
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#1).textField)
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#1).validator)
    //#post(void save()): new ValidatingJTextField(initComponents#3) num objects == 0
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#3).__Tag)
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#3).errorIcon)
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#3).textField)
    //#post(void save()): possibly_updated(new ValidatingJTextField(initComponents#3).validator)
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void save()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.DefaultListModel:getSize
    //#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:java.lang.Object:equals
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.DefaultListModel:elements
    //#unanalyzed(void save()): Effects-of-calling:java.util.Enumeration:hasMoreElements
    //#unanalyzed(void save()): Effects-of-calling:java.util.Enumeration:nextElement
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:getFailureReason
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JLabel:setToolTipText
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JLabel:isVisible
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:firePropertyChange
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void save()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.IdentityManager:getProfiles
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void save()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.Identity:getName
    //#unanalyzed(void save()): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.Identity:buildProfile
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.Identity:setOption
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.Identity:delete
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField:getDocument
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JComponent
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void save()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:setLayout
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:add
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JComboBox:getModel
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.DefaultComboBoxModel:removeAllElements
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.DefaultComboBoxModel:addElement
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.prefs.validator.RegexStringValidator
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.prefs.validator.PortValidator
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JPasswordField
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox:setSelected
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JComboBox
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:setDefaultCloseOperation
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:orderButtons
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:setTitle
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox:setText
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox:setBorder
    //#unanalyzed(void save()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox:setMargin
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:getContentPane
    //#unanalyzed(void save()): Effects-of-calling:java.awt.Container:setLayout
    //#unanalyzed(void save()): Effects-of-calling:java.awt.Container:add
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:getLeftButton
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:getRightButton
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:pack
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:getCancelButton
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:getOkButton
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:getRootPane
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JRootPane:registerKeyboardAction
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JTextField:requestFocusInWindow
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.ServerManager:numServers
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.MainFrame:getActiveFrame
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void save()): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void save()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.NewServerDialog:setResizable
    //#test_vector(void save()): com/dmdirc/addons/ui_swing/dialogs/NewServerDialog.me: Addr_Set{null}, Inverse{null}
    //#test_vector(void save()): java.util.Iterator:hasNext(...)@209: {0}, {1}
    //#test_vector(void save()): java.util.Iterator:hasNext(...)@213: {0}, {1}
            details.save();
            final Iterator<Profile> it = model.iterator();

            while (it.hasNext()) {
                it.next().save();
            }

            for (Profile profile : deletedProfiles) {
                profile.delete();
            }

            dispose();
        }
        if (NewServerDialog.isNewServerDialogShowing()) {
            NewServerDialog.getNewServerDialog(mainFrame).populateProfiles();
        }
    }
    //#ProfileManagerDialog.java:222: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.save()

    /** 
     * {@inheritDoc}
     * 
     * @param e Action event
     */
    @Override
    public void actionPerformed(final ActionEvent e) {
        if (e.getSource().equals(getOkButton())) {
    //#ProfileManagerDialog.java:231: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.actionPerformed(ActionEvent)
    //#ProfileManagerDialog.java:231: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
    //#input(void actionPerformed(ActionEvent)): "New Profile "._tainted
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/Profile]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.add(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)Z
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.contains(Ljava/lang/String;)Z
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.indexOf(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)I
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.remove(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)Z
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): me
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.addButton
    //#input(void actionPerformed(ActionEvent)): this.deleteButton
    //#input(void actionPerformed(ActionEvent)): this.deletedProfiles
    //#input(void actionPerformed(ActionEvent)): this.model
    //#input(void actionPerformed(ActionEvent)): this.model.__Tag
    //#input(void actionPerformed(ActionEvent)): this.model.profiles
    //#input(void actionPerformed(ActionEvent)): this.profileList
    //#output(void actionPerformed(ActionEvent)): me
    //#output(void actionPerformed(ActionEvent)): new ArrayList(save#1*) num objects
    //#output(void actionPerformed(ActionEvent)): this.details.profile.ident
    //#output(void actionPerformed(ActionEvent)): this.details.profile.modified
    //#output(void actionPerformed(ActionEvent)): this.details.profile.name
    //#output(void actionPerformed(ActionEvent)): this.details.profile.nicknames
    //#output(void actionPerformed(ActionEvent)): this.details.profile.oldName
    //#output(void actionPerformed(ActionEvent)): this.details.profile.realname
    //#new obj(void actionPerformed(ActionEvent)): new ArrayList(save#1*)
    //#pre[1] (void actionPerformed(ActionEvent)): e != null
    //#pre[3] (void actionPerformed(ActionEvent)): (soft) init'ed(me)
    //#pre[4] (void actionPerformed(ActionEvent)): (soft) init'ed(this.details.profile.ident)
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) init'ed(this.details.profile.name)
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) init'ed(this.details.profile.nicknames)
    //#pre[9] (void actionPerformed(ActionEvent)): (soft) init'ed(this.details.profile.realname)
    //#pre[11] (void actionPerformed(ActionEvent)): (soft) init'ed(this.addButton)
    //#pre[12] (void actionPerformed(ActionEvent)): (soft) init'ed(this.deleteButton)
    //#pre[13] (void actionPerformed(ActionEvent)): (soft) this.deletedProfiles != null
    //#pre[29] (void actionPerformed(ActionEvent)): (soft) this.model != null
    //#pre[30] (void actionPerformed(ActionEvent)): (soft) this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#pre[31] (void actionPerformed(ActionEvent)): (soft) this.model.profiles != null
    //#pre[33] (void actionPerformed(ActionEvent)): (soft) this.profileList != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@231 != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@233 != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@235 != null
    //#presumption(void actionPerformed(ActionEvent)): java.awt.event.ActionEvent:getSource(...)@237 != null
    //#presumption(void actionPerformed(ActionEvent)): javax.swing.JList:getModel(...)@245 != null
    //#presumption(void actionPerformed(ActionEvent)): javax.swing.JList:getSelectedValue(...).__Tag@241 == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#presumption(void actionPerformed(ActionEvent)): javax.swing.ListModel:getSize(...)@245 >= -2_147_483_647
    //#post(void actionPerformed(ActionEvent)): me == One-of{old me, null}
    //#post(void actionPerformed(ActionEvent)): init'ed(me)
    //#post(void actionPerformed(ActionEvent)): this.details.profile.ident == old this.details.profile.ident
    //#post(void actionPerformed(ActionEvent)): this.details.profile.modified == old this.details.profile.modified
    //#post(void actionPerformed(ActionEvent)): this.details.profile.name == old this.details.profile.name
    //#post(void actionPerformed(ActionEvent)): this.details.profile.nicknames == old this.details.profile.nicknames
    //#post(void actionPerformed(ActionEvent)): this.details.profile.oldName == old this.details.profile.oldName
    //#post(void actionPerformed(ActionEvent)): this.details.profile.realname == old this.details.profile.realname
    //#post(void actionPerformed(ActionEvent)): new ArrayList(save#1*) num objects == undefined
    //#post(void actionPerformed(ActionEvent)): new ArrayList(save#1*) num objects == 0, if init'ed
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JList:setSelectedIndex
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalRemoved
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.System:getProperty
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:replace
    //#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.String:equals
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Arrays:asList
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalAdded
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@231: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@233: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@235: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@237: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JList:getSelectedIndex(...)@242: {1..4_294_967_294}, {-2_147_483_648..0}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JOptionPane:showConfirmDialog(...)@237: {-2_147_483_648..-1, 1..4_294_967_295}, {0}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.ListModel:getSize(...)@245: {2..4_294_967_295}, {0}
            save();
    //#ProfileManagerDialog.java:232: Warning: call too complex - analysis skipped
    //#    call on void save()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void save()
        } else if (e.getSource().equals(getCancelButton())) {
    //#ProfileManagerDialog.java:233: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getCancelButton()
            dispose();
        } else if (e.getSource().equals(addButton)) {
            addProfile();
        } else if (e.getSource().equals(deleteButton) && JOptionPane.showConfirmDialog(this,
                "Are you sure you want to delete this profile?",
                "Delete Confirmaton", JOptionPane.YES_NO_OPTION) ==
                JOptionPane.YES_OPTION) {
            final Profile selectedProfile = (Profile) profileList.getSelectedValue();
            int selected = profileList.getSelectedIndex();
            deletedProfiles.add(selectedProfile);
            model.remove(selectedProfile);
            final int profilesSize = profileList.getModel().getSize();
            if (profilesSize == 0) {
                selected = -1;
            } else if (selected >= profilesSize) {
                selected = profilesSize - 1;
            } else if (selected <= 0) {
                selected = 0;
            }
            profileList.setSelectedIndex(selected);
        }
    }
    //#ProfileManagerDialog.java:255: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.actionPerformed(ActionEvent)

    /**
     * Prompts and adds a new profile
     */
    private void addProfile() {
        final String nick = System.getProperty("user.name").replace(' ', '_');
    //#ProfileManagerDialog.java:261: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.addProfile()
    //#input(void addProfile()): "New Profile "._tainted
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/Profile]
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[others]
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.add(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)Z
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.contains(Ljava/lang/String;)Z
    //#input(void addProfile()): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.indexOf(Lcom/dmdirc/addons/ui_swing/dialogs/profiles/Profile;)I
    //#input(void addProfile()): this
    //#input(void addProfile()): this.model
    //#input(void addProfile()): this.model.__Tag
    //#input(void addProfile()): this.model.profiles
    //#input(void addProfile()): this.profileList
    //#pre[2] (void addProfile()): this.model != null
    //#pre[3] (void addProfile()): this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#pre[4] (void addProfile()): this.model.profiles != null
    //#pre[6] (void addProfile()): this.profileList != null
    //#presumption(void addProfile()): java.lang.System:getProperty(...)@261 != null
    //#unanalyzed(void addProfile()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void addProfile()): Effects-of-calling:java.util.List:indexOf
    //#unanalyzed(void addProfile()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void addProfile()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void addProfile()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void addProfile()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void addProfile()): Effects-of-calling:java.util.Arrays:asList
    //#unanalyzed(void addProfile()): Effects-of-calling:java.util.List:add
    //#unanalyzed(void addProfile()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileListModel:fireIntervalAdded

        String name = "New Profile";
        int i = 1;

        while (model.contains(name)) {
            name = "New Profile " + ++i;
    //#ProfileManagerDialog.java:267: ?overflow
    //#    i in {-2_147_483_649..4_294_967_294}
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void addProfile()
    //#    basic block: bb_3
    //#    assertion: i in {-2_147_483_649..4_294_967_294}
    //#    VN: i + 1
    //#    Expected: {-2_147_483_648..4_294_967_295, Invalid}
    //#    Bad: {4_294_967_296}
    //#    Attribs:  Int  Bad singleton  Bad > Exp
        }

        final Profile profile = new Profile(name, nick, nick);
        model.add(profile);
        profileList.setSelectedIndex(model.indexOf(profile));
    }
    //#ProfileManagerDialog.java:273: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.addProfile()

    /** {@inheritDoc} */
    @Override
    public void valueChanged(final ListSelectionEvent e) {
        if (e.getValueIsAdjusting() && !details.validateDetails()) {
    //#ProfileManagerDialog.java:278: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.valueChanged(ListSelectionEvent)
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Descendant_Table[others]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.checkError()V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.getText()Ljava/lang/String;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setEnabled(Z)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.__Dispatch_Table.validateText()Z
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/Profile]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Descendant_Table[others]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.addNickname(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.getIdent()Ljava/lang/String;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.getNicknames()Ljava/util/List;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.getRealname()Ljava/lang/String;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setIdent(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setModified(Z)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setNicknames(Ljava/util/List;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/Profile.__Dispatch_Table.setRealname(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Descendant_Table[others]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel.__Dispatch_Table.getSize()I
    //#input(void valueChanged(ListSelectionEvent)): e
    //#input(void valueChanged(ListSelectionEvent)): this
    //#input(void valueChanged(ListSelectionEvent)): this.deleteButton
    //#input(void valueChanged(ListSelectionEvent)): this.details
    //#input(void valueChanged(ListSelectionEvent)): this.details.addButton
    //#input(void valueChanged(ListSelectionEvent)): this.details.delButton
    //#input(void valueChanged(ListSelectionEvent)): this.details.editButton
    //#input(void valueChanged(ListSelectionEvent)): this.details.ident
    //#input(void valueChanged(ListSelectionEvent)): this.details.ident.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.details.ident.errorIcon
    //#input(void valueChanged(ListSelectionEvent)): this.details.ident.textField
    //#input(void valueChanged(ListSelectionEvent)): this.details.ident.validator
    //#input(void valueChanged(ListSelectionEvent)): this.details.name
    //#input(void valueChanged(ListSelectionEvent)): this.details.name.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.details.name.errorIcon
    //#input(void valueChanged(ListSelectionEvent)): this.details.name.textField
    //#input(void valueChanged(ListSelectionEvent)): this.details.name.validator
    //#input(void valueChanged(ListSelectionEvent)): this.details.nicknames
    //#input(void valueChanged(ListSelectionEvent)): this.details.profile
    //#input(void valueChanged(ListSelectionEvent)): this.details.profile.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.details.profile.ident
    //#input(void valueChanged(ListSelectionEvent)): this.details.profile.name
    //#input(void valueChanged(ListSelectionEvent)): this.details.profile.nicknames
    //#input(void valueChanged(ListSelectionEvent)): this.details.profile.realname
    //#input(void valueChanged(ListSelectionEvent)): this.details.realname
    //#input(void valueChanged(ListSelectionEvent)): this.details.realname.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.details.realname.errorIcon
    //#input(void valueChanged(ListSelectionEvent)): this.details.realname.textField
    //#input(void valueChanged(ListSelectionEvent)): this.details.realname.validator
    //#input(void valueChanged(ListSelectionEvent)): this.model
    //#input(void valueChanged(ListSelectionEvent)): this.model.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.model.profiles
    //#input(void valueChanged(ListSelectionEvent)): this.profileList
    //#input(void valueChanged(ListSelectionEvent)): this.selectedIndex
    //#output(void valueChanged(ListSelectionEvent)): new ArrayList(save#1) num objects
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile.ident
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile.modified
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile.name
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile.nicknames
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile.oldName
    //#output(void valueChanged(ListSelectionEvent)): this.details.profile.realname
    //#output(void valueChanged(ListSelectionEvent)): this.selectedIndex
    //#new obj(void valueChanged(ListSelectionEvent)): new ArrayList(save#1)
    //#pre[1] (void valueChanged(ListSelectionEvent)): e != null
    //#pre[33] (void valueChanged(ListSelectionEvent)): this.model != null
    //#pre[34] (void valueChanged(ListSelectionEvent)): this.model.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileListModel
    //#pre[35] (void valueChanged(ListSelectionEvent)): this.model.profiles != null
    //#pre[36] (void valueChanged(ListSelectionEvent)): this.profileList != null
    //#pre[2] (void valueChanged(ListSelectionEvent)): (soft) init'ed(this.details.profile)
    //#pre[3] (void valueChanged(ListSelectionEvent)): (soft) init'ed(this.details.profile.ident)
    //#pre[5] (void valueChanged(ListSelectionEvent)): (soft) this.details.profile.name != null
    //#pre[6] (void valueChanged(ListSelectionEvent)): (soft) this.details.profile.nicknames != null
    //#pre[8] (void valueChanged(ListSelectionEvent)): (soft) this.details.profile.realname != null
    //#pre[9] (void valueChanged(ListSelectionEvent)): (soft) init'ed(this.selectedIndex)
    //#pre[11] (void valueChanged(ListSelectionEvent)): (soft) this.deleteButton != null
    //#pre[12] (void valueChanged(ListSelectionEvent)): (soft) this.details != null
    //#pre[13] (void valueChanged(ListSelectionEvent)): (soft) this.details.addButton != null
    //#pre[14] (void valueChanged(ListSelectionEvent)): (soft) this.details.delButton != null
    //#pre[15] (void valueChanged(ListSelectionEvent)): (soft) this.details.editButton != null
    //#pre[16] (void valueChanged(ListSelectionEvent)): (soft) this.details.ident != null
    //#pre[17] (void valueChanged(ListSelectionEvent)): (soft) this.details.ident.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[18] (void valueChanged(ListSelectionEvent)): (soft) this.details.ident.errorIcon != null
    //#pre[19] (void valueChanged(ListSelectionEvent)): (soft) this.details.ident.textField != null
    //#pre[20] (void valueChanged(ListSelectionEvent)): (soft) this.details.ident.validator != null
    //#pre[21] (void valueChanged(ListSelectionEvent)): (soft) this.details.name != null
    //#pre[22] (void valueChanged(ListSelectionEvent)): (soft) this.details.name.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[23] (void valueChanged(ListSelectionEvent)): (soft) this.details.name.errorIcon != null
    //#pre[24] (void valueChanged(ListSelectionEvent)): (soft) this.details.name.textField != null
    //#pre[25] (void valueChanged(ListSelectionEvent)): (soft) this.details.name.validator != null
    //#pre[26] (void valueChanged(ListSelectionEvent)): (soft) this.details.nicknames != null
    //#pre[27] (void valueChanged(ListSelectionEvent)): (soft) this.details.profile.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#pre[28] (void valueChanged(ListSelectionEvent)): (soft) this.details.realname != null
    //#pre[29] (void valueChanged(ListSelectionEvent)): (soft) this.details.realname.__Tag == com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField
    //#pre[30] (void valueChanged(ListSelectionEvent)): (soft) this.details.realname.errorIcon != null
    //#pre[31] (void valueChanged(ListSelectionEvent)): (soft) this.details.realname.textField != null
    //#pre[32] (void valueChanged(ListSelectionEvent)): (soft) this.details.realname.validator != null
    //#presumption(void valueChanged(ListSelectionEvent)): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton(...)@291 != null
    //#presumption(void valueChanged(ListSelectionEvent)): com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton(...)@293 != null
    //#presumption(void valueChanged(ListSelectionEvent)): javax.swing.JList:getSelectedValue(...).__Tag@283 == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#presumption(void valueChanged(ListSelectionEvent)): javax.swing.JList:getSelectedValue(...).nicknames@283 != null
    //#presumption(void valueChanged(ListSelectionEvent)): this.details.profile.__Tag == com/dmdirc/addons/ui_swing/dialogs/profiles/Profile
    //#presumption(void valueChanged(ListSelectionEvent)): this.details.profile.name != null
    //#presumption(void valueChanged(ListSelectionEvent)): this.details.profile.nicknames != null
    //#presumption(void valueChanged(ListSelectionEvent)): this.details.profile.realname != null
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.details.profile)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.details.profile.ident)
    //#post(void valueChanged(ListSelectionEvent)): possibly_updated(this.details.profile.modified)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.details.profile.name)
    //#post(void valueChanged(ListSelectionEvent)): this.details.profile.nicknames != null
    //#post(void valueChanged(ListSelectionEvent)): possibly_updated(this.details.profile.oldName)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.details.profile.realname)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.selectedIndex)
    //#post(void valueChanged(ListSelectionEvent)): new ArrayList(save#1) num objects <= 1
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:isEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:getText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.Validator:validate
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:isFailure
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.DefaultListModel:getSize
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.Object:equals
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.DefaultListModel:elements
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.Enumeration:hasMoreElements
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.Enumeration:nextElement
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.config.prefs.validator.ValidationResponse:getFailureReason
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JLabel:setToolTipText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JLabel:isVisible
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:firePropertyChange
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JLabel:setVisible
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:updateProfile
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:clearProfile
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:setText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.DefaultListModel:clear
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.DefaultListModel:addElement
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextField:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.reorderablelist.ReorderableJList:setEnabled
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.List:size
    //#test_vector(void valueChanged(ListSelectionEvent)): java.util.List:size(...)@60: {-2_147_483_648..-1, 1..4_294_967_295}, {0}
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.JList:getSelectedIndex(...)@284: {-2_147_483_648..-2, 0..4_294_967_295}, {-1}
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.event.ListSelectionEvent:getValueIsAdjusting(...)@278: {0}, {1}
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.event.ListSelectionEvent:getValueIsAdjusting(...)@281: {1}, {0}
            profileList.setSelectedIndex(selectedIndex);
        }
        if (!e.getValueIsAdjusting()) {
            details.save();
            details.setProfile((Profile) profileList.getSelectedValue());
            if (profileList.getSelectedIndex() == -1) {
                deleteButton.setEnabled(false);
            } else {
                deleteButton.setEnabled(true);
            }
        }
        if (model.getSize() == 0) {
            getOkButton().setEnabled(false);
    //#ProfileManagerDialog.java:291: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void valueChanged(ListSelectionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
        } else {
            getOkButton().setEnabled(true);
    //#ProfileManagerDialog.java:293: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
    //#    method: void valueChanged(ListSelectionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog:getOkButton()
        }
        selectedIndex = profileList.getSelectedIndex();
    }
    //#ProfileManagerDialog.java:296: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.valueChanged(ListSelectionEvent)

    /** {@inheritDoc} */
    @Override
    public void dispose() {
        if (me == null) {
    //#ProfileManagerDialog.java:301: method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.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();
    //#ProfileManagerDialog.java:305: 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.profiles.ProfileManagerDialog
    //#    method: void dispose()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
            me = null;
        }
    }
    //#ProfileManagerDialog.java:308: end of method: void com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.dispose()
}
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileManagerDialog]
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.addListeners()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.addProfile()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.dispose()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.layoutComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.populateList()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.save()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/profiles/ProfileManagerDialog] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.addListeners()V == &addListeners
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.addProfile()V == &addProfile
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.dispose()V == &dispose
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.layoutComponents()V == &layoutComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.populateList()V == &populateList
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.save()V == &save
    //#post(com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V == &valueChanged
    //#ProfileManagerDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog.com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog__static_init
    //#ProfileManagerDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.profiles.ProfileManagerDialog
