//# 1 errors, 1,703 messages
//#
/*
    //#SwingPreferencesDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3
    //#SwingPreferencesDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3__static_init
    //#SwingPreferencesDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2
    //#SwingPreferencesDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2__static_init
    //#SwingPreferencesDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#SwingPreferencesDialog.java:1:1: method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init
    //#SwingPreferencesDialog.java:1:1: class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
 * 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.prefs;

import com.dmdirc.config.prefs.PreferencesCategory;
import com.dmdirc.config.prefs.PreferencesManager;
import com.dmdirc.addons.ui_swing.UIUtilities;
import com.dmdirc.addons.ui_swing.components.ListScroller;
import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
import com.dmdirc.addons.ui_swing.components.StandardDialog;
import com.dmdirc.config.IdentityManager;
import com.dmdirc.logger.ErrorLevel;
import com.dmdirc.logger.Logger;

import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.ExecutionException;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
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;

/**
 * Allows the user to modify global client preferences.
 */
public final class SwingPreferencesDialog extends StandardDialog implements
    //#SwingPreferencesDialog.java:59: method: CategoryPanel com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$000(SwingPreferencesDialog)
    //#input(CategoryPanel access$000(SwingPreferencesDialog)): x0
    //#input(CategoryPanel access$000(SwingPreferencesDialog)): x0.mainPanel
    //#output(CategoryPanel access$000(SwingPreferencesDialog)): return_value
    //#pre[1] (CategoryPanel access$000(SwingPreferencesDialog)): x0 != null
    //#pre[2] (CategoryPanel access$000(SwingPreferencesDialog)): init'ed(x0.mainPanel)
    //#post(CategoryPanel access$000(SwingPreferencesDialog)): return_value == x0.mainPanel
    //#post(CategoryPanel access$000(SwingPreferencesDialog)): init'ed(return_value)
    //#SwingPreferencesDialog.java:59: end of method: CategoryPanel com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$000(SwingPreferencesDialog)
    //#SwingPreferencesDialog.java:59: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$100(SwingPreferencesDialog, PreferencesManager)
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): "; "._tainted
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): "body { font-family: "._tainted
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): "font-size: "._tainted
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): "pt; }"._tainted
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.__Tag
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.panels
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.scrollPane
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.waitingCategory
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.tabList
    //#input(void access$100(SwingPreferencesDialog, PreferencesManager)): x1
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.category
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.waiting
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.worker
    //#output(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.manager
    //#new obj(void access$100(SwingPreferencesDialog, PreferencesManager)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2)
    //#pre[2] (void access$100(SwingPreferencesDialog, PreferencesManager)): x0 != null
    //#pre[3] (void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel != null
    //#pre[4] (void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[5] (void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.panels != null
    //#pre[6] (void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.scrollPane != null
    //#pre[7] (void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(x0.mainPanel.waitingCategory)
    //#pre[8] (void access$100(SwingPreferencesDialog, PreferencesManager)): x0.tabList != null
    //#pre[9] (void access$100(SwingPreferencesDialog, PreferencesManager)): x1 != null
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.category == null
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.waiting == 0
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.mainPanel.worker == One-of{&new PrefsCategoryLoader(setCategory#2), old x0.mainPanel.worker}
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.manager == x1
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): x0.manager != null
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void access$100(SwingPreferencesDialog, PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:isInline
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getSubcats
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:countCategories
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.DefaultListModel:clear
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:getCategories
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void access$100(SwingPreferencesDialog, PreferencesManager)): Effects-of-calling:javax.swing.JList:setCellRenderer
    //#SwingPreferencesDialog.java:59: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$100(SwingPreferencesDialog, PreferencesManager)
    //#SwingPreferencesDialog.java:59: method: JList com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$200(SwingPreferencesDialog)
    //#input(JList access$200(SwingPreferencesDialog)): x0
    //#input(JList access$200(SwingPreferencesDialog)): x0.tabList
    //#output(JList access$200(SwingPreferencesDialog)): return_value
    //#pre[1] (JList access$200(SwingPreferencesDialog)): x0 != null
    //#pre[2] (JList access$200(SwingPreferencesDialog)): init'ed(x0.tabList)
    //#post(JList access$200(SwingPreferencesDialog)): return_value == x0.tabList
    //#post(JList access$200(SwingPreferencesDialog)): init'ed(return_value)
    //#SwingPreferencesDialog.java:59: end of method: JList com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$200(SwingPreferencesDialog)
    //#SwingPreferencesDialog.java:59: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$300(SwingPreferencesDialog, List)
    //#input(void access$300(SwingPreferencesDialog, List)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void access$300(SwingPreferencesDialog, List)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void access$300(SwingPreferencesDialog, List)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(void access$300(SwingPreferencesDialog, List)): x0
    //#input(void access$300(SwingPreferencesDialog, List)): x0.mainPanel
    //#input(void access$300(SwingPreferencesDialog, List)): x0.mainPanel.__Tag
    //#input(void access$300(SwingPreferencesDialog, List)): x0.mainPanel.scrollPane
    //#input(void access$300(SwingPreferencesDialog, List)): x0.mainPanel.waitingCategory
    //#input(void access$300(SwingPreferencesDialog, List)): x1
    //#output(void access$300(SwingPreferencesDialog, List)): x0.mainPanel.waiting
    //#pre[1] (void access$300(SwingPreferencesDialog, List)): x0 != null
    //#pre[2] (void access$300(SwingPreferencesDialog, List)): x0.mainPanel != null
    //#pre[3] (void access$300(SwingPreferencesDialog, List)): x0.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[4] (void access$300(SwingPreferencesDialog, List)): x0.mainPanel.scrollPane != null
    //#pre[5] (void access$300(SwingPreferencesDialog, List)): init'ed(x0.mainPanel.waitingCategory)
    //#post(void access$300(SwingPreferencesDialog, List)): x0.mainPanel.waiting == 0
    //#unanalyzed(void access$300(SwingPreferencesDialog, List)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void access$300(SwingPreferencesDialog, List)): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#SwingPreferencesDialog.java:59: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$300(SwingPreferencesDialog, List)
    //#SwingPreferencesDialog.java:59: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$400(SwingPreferencesDialog)
    //#input(void access$400(SwingPreferencesDialog)): x0
    //#input(void access$400(SwingPreferencesDialog)): x0.tabList
    //#pre[1] (void access$400(SwingPreferencesDialog)): x0 != null
    //#pre[2] (void access$400(SwingPreferencesDialog)): x0.tabList != null
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:javax.swing.DefaultListModel:getSize
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:javax.swing.DefaultListModel:get
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getPath
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void access$400(SwingPreferencesDialog)): Effects-of-calling:javax.swing.JList:setSelectedIndex
    //#SwingPreferencesDialog.java:59: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.access$400(SwingPreferencesDialog)
        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 = 9;
    /**
     * The maximum height clients may use if they don't want to scroll.
     *
     * @since 0.6.3m1
     */
    public static int CLIENT_HEIGHT = 375;
    //#SwingPreferencesDialog.java:73: method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): CLIENT_HEIGHT
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog]
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.addCategories(Ljava/util/List;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.countCategories(Ljava/util/Collection;)I
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.display()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.dispose()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.getSelectedCategory()Lcom/dmdirc/config/prefs/PreferencesCategory;
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.restoreActiveCategory()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.saveOptions()V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.setPrefsManager(Lcom/dmdirc/config/prefs/PreferencesManager;)V
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): CLIENT_HEIGHT == 375
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.addCategories(Ljava/util/List;)V == &addCategories
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.countCategories(Ljava/util/Collection;)I == &countCategories
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.display()V == &display
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.dispose()V == &dispose
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.getSelectedCategory()Lcom/dmdirc/config/prefs/PreferencesCategory; == &getSelectedCategory
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.restoreActiveCategory()V == &restoreActiveCategory
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.saveOptions()V == &saveOptions
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.setPrefsManager(Lcom/dmdirc/config/prefs/PreferencesManager;)V == &setPrefsManager
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init): __Dispatch_Table.valueChanged(Ljavax/swing/event/ListSelectionEvent;)V == &valueChanged
    //#SwingPreferencesDialog.java:73: end of method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog__static_init
    /** Previously instantiated instance of SwingPreferencesDialog. */
    private static volatile SwingPreferencesDialog me;
    /** Preferences tab list, used to switch option types. */
    private JList tabList;
    /** Main panel. */
    private CategoryPanel mainPanel;
    /** Previously selected category. */
    private PreferencesCategory selected;
    /** Preferences Manager. */
    private PreferencesManager manager;
    /** Manager loading swing worker. */
    private LoggingSwingWorker worker;
    /** Parent window. */
    private Window parentWindow;

    /**
     * Creates a new instance of SwingPreferencesDialog.
     * 
     * @param parentWindow Parent window
     */
    private SwingPreferencesDialog(final Window parentWindow) {
        super(parentWindow, ModalityType.MODELESS);
    //#SwingPreferencesDialog.java:95: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)
    //#SwingPreferencesDialog.java:95: 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.prefs.SwingPreferencesDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog(Window, Dialog$ModalityType)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): "; "._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): "body { font-family: "._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): "font-size: "._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): "pt; }"._tainted
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): parentWindow
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).category
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).leftPadding
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).loading
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).nullCategory
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).padding
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).panels
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).rightPadding
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).scrollPane
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).title
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).tooltip
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).waitingCategory
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).worker
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JList(initComponents#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.worker.__Tag
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.worker.this$0
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14) num objects
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.mainPanel
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.tabList
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.worker
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JList(initComponents#2)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13)
    //#new obj(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14)
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): (int) (net.miginfocom.layout.UnitValue:getValue(...)@58) in {-2_147_483_648..4_294_967_295}
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): (int) (net.miginfocom.layout.UnitValue:getValue(...)@61) in {-2_147_483_648..4_294_967_295}
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): (int) (net.miginfocom.layout.UnitValue:getValue(...)@64) in {-2_147_483_648..4_294_967_295}
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(java.awt.Dialog$ModalityType.MODELESS)
    //#presumption(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): java.util.Collections:synchronizedMap(...)@109 != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.mainPanel == &new CategoryPanel(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.tabList == &new JList(initComponents#2)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.worker == &new SwingPreferencesDialog$1(SwingPreferencesDialog#1)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JList(initComponents#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).category)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).leftPadding)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).loading == &new JPanel(CategoryPanel#3)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).nullCategory == &new JPanel(CategoryPanel#6)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).padding)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).panels != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent == this
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent != null
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.worker.this$0 == new CategoryPanel(initComponents#1).parent
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).rightPadding)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).scrollPane == &new JScrollPane(CategoryPanel#12)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).title == &new TitlePanel(CategoryPanel#13)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).tooltip == &new ToolTipPanel(CategoryPanel#14)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).waitingCategory == &new JPanel(CategoryPanel#9)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).worker)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): this.worker.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.util.Collections:synchronizedMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JScrollPane:setHorizontalScrollBarPolicy
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.BorderFactory:createEtchedBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TitlePanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.CategoryPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.DefaultListModel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:setSelectionMode
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ListScroller
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setDefaultCloseOperation
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:addWindowListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setTitle
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setResizable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:setBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:orderButtons
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getCancelButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getLeftButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getRightButton
    //#unanalyzed(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker

        initComponents();

        worker = new LoggingSwingWorker<PreferencesManager, Void>() {
    //#SwingPreferencesDialog.java:99: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)
    //#SwingPreferencesDialog.java:99: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)): init'ed(this.this$0)
    //#SwingPreferencesDialog.java:99: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1(SwingPreferencesDialog)
    //#SwingPreferencesDialog.java:99: method: Object com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.doInBackground()
    //#input(Object doInBackground()): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1]
    //#input(Object doInBackground()): __Descendant_Table[others]
    //#input(Object doInBackground()): __Dispatch_Table.doInBackground()Lcom/dmdirc/config/prefs/PreferencesManager;
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.__Tag
    //#input(Object doInBackground()): this.this$0
    //#input(Object doInBackground()): this.this$0.mainPanel
    //#input(Object doInBackground()): this.this$0.mainPanel.__Tag
    //#input(Object doInBackground()): this.this$0.mainPanel.scrollPane
    //#input(Object doInBackground()): this.this$0.mainPanel.waitingCategory
    //#output(Object doInBackground()): new PreferencesManager(doInBackground#1*) num objects
    //#output(Object doInBackground()): return_value
    //#output(Object doInBackground()): this.this$0.mainPanel.waiting
    //#new obj(Object doInBackground()): new PreferencesManager(doInBackground#1*)
    //#pre[2] (Object doInBackground()): this.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1
    //#pre[3] (Object doInBackground()): this.this$0 != null
    //#pre[4] (Object doInBackground()): this.mainPanel != null
    //#pre[5] (Object doInBackground()): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[6] (Object doInBackground()): this.mainPanel.scrollPane != null
    //#pre[7] (Object doInBackground()): init'ed(this.mainPanel.waitingCategory)
    //#post(Object doInBackground()): return_value == &new PreferencesManager(doInBackground#1*)
    //#post(Object doInBackground()): this.this$0.mainPanel.waiting == 1
    //#post(Object doInBackground()): new PreferencesManager(doInBackground#1*) num objects == 1
    //#unanalyzed(Object doInBackground()): Effects-of-calling:access$000
    //#unanalyzed(Object doInBackground()): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(Object doInBackground()): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager
    //#SwingPreferencesDialog.java:99: end of method: Object com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.doInBackground()

            /** {@inheritDoc} */
            @Override
            protected PreferencesManager doInBackground() throws Exception {
                mainPanel.setWaiting(true);
    //#SwingPreferencesDialog.java:104: method: PreferencesManager com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.doInBackground()
    //#input(PreferencesManager doInBackground()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(PreferencesManager doInBackground()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(PreferencesManager doInBackground()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(PreferencesManager doInBackground()): this
    //#input(PreferencesManager doInBackground()): this.this$0
    //#input(PreferencesManager doInBackground()): this.this$0.mainPanel
    //#input(PreferencesManager doInBackground()): this.this$0.mainPanel.__Tag
    //#input(PreferencesManager doInBackground()): this.this$0.mainPanel.scrollPane
    //#input(PreferencesManager doInBackground()): this.this$0.mainPanel.waitingCategory
    //#output(PreferencesManager doInBackground()): new PreferencesManager(doInBackground#1) num objects
    //#output(PreferencesManager doInBackground()): return_value
    //#output(PreferencesManager doInBackground()): this.this$0.mainPanel.waiting
    //#new obj(PreferencesManager doInBackground()): new PreferencesManager(doInBackground#1)
    //#pre[2] (PreferencesManager doInBackground()): this.this$0 != null
    //#pre[3] (PreferencesManager doInBackground()): this.mainPanel != null
    //#pre[4] (PreferencesManager doInBackground()): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[5] (PreferencesManager doInBackground()): this.mainPanel.scrollPane != null
    //#pre[6] (PreferencesManager doInBackground()): init'ed(this.mainPanel.waitingCategory)
    //#post(PreferencesManager doInBackground()): return_value == &new PreferencesManager(doInBackground#1)
    //#post(PreferencesManager doInBackground()): this.this$0.mainPanel.waiting == 1
    //#post(PreferencesManager doInBackground()): new PreferencesManager(doInBackground#1) num objects == 1
    //#unanalyzed(PreferencesManager doInBackground()): Effects-of-calling:javax.swing.JScrollPane:setViewportView
                return new PreferencesManager();
    //#SwingPreferencesDialog.java:105: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.PreferencesManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#    method: PreferencesManager doInBackground()
    //#    unanalyzed callee: void com.dmdirc.config.prefs.PreferencesManager()
    //#SwingPreferencesDialog.java:105: end of method: PreferencesManager com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.doInBackground()
            }

            /** {@inheritDoc} */
            @Override
            protected void done() {
                if (!isCancelled()) {
    //#SwingPreferencesDialog.java:111: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.done()
    //#SwingPreferencesDialog.java:111: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1:isCancelled()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#    method: void done()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1:isCancelled()
    //#input(void done()): "; "._tainted
    //#input(void done()): "body { font-family: "._tainted
    //#input(void done()): "font-size: "._tainted
    //#input(void done()): "pt; }"._tainted
    //#input(void done()): com.dmdirc.logger.ErrorLevel.MEDIUM
    //#input(void done()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void done()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void done()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void done()): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void done()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void done()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void done()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void done()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(void done()): this
    //#input(void done()): this.this$0
    //#input(void done()): this.this$0.mainPanel
    //#input(void done()): this.this$0.mainPanel.__Tag
    //#input(void done()): this.this$0.mainPanel.panels
    //#input(void done()): this.this$0.mainPanel.scrollPane
    //#input(void done()): this.this$0.mainPanel.waitingCategory
    //#input(void done()): this.this$0.tabList
    //#output(void done()): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void done()): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).category
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void done()): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void done()): this.this$0.mainPanel.category
    //#output(void done()): this.this$0.mainPanel.waiting
    //#output(void done()): this.this$0.mainPanel.worker
    //#output(void done()): this.this$0.manager
    //#new obj(void done()): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void done()): new PrefsCategoryLoader(setCategory#2)
    //#pre[6] (void done()): (soft) this.this$0 != null
    //#pre[7] (void done()): (soft) this.mainPanel != null
    //#pre[8] (void done()): (soft) this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[9] (void done()): (soft) this.mainPanel.panels != null
    //#pre[10] (void done()): (soft) this.mainPanel.scrollPane != null
    //#pre[11] (void done()): (soft) init'ed(this.mainPanel.waitingCategory)
    //#pre[12] (void done()): (soft) this.tabList != null
    //#presumption(void done()): com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog_1:get(...)@113 != null
    //#presumption(void done()): init'ed(com.dmdirc.logger.ErrorLevel.MEDIUM)
    //#post(void done()): this.mainPanel.category == One-of{old this.mainPanel.category, null}
    //#post(void done()): possibly_updated(this.this$0.mainPanel.waiting)
    //#post(void done()): this.mainPanel.worker == One-of{old this.mainPanel.worker, &new PrefsCategoryLoader(setCategory#2)}
    //#post(void done()): possibly_updated(this.this$0.manager)
    //#post(void done()): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void done()): new PrefsCategoryLoader(setCategory#2) num objects <= 1
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void done()): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void done()): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void done()): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void done()): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void done()): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void done()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void done()): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void done()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void done()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void done()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void done()): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void done()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void done()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void done()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void done()): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void done()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void done()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:isInline
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getSubcats
    //#unanalyzed(void done()): Effects-of-calling:countCategories
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.DefaultListModel:clear
    //#unanalyzed(void done()): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:getCategories
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void done()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void done()): Effects-of-calling:javax.swing.JList:setCellRenderer
    //#test_vector(void done()): com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog_1:isCancelled(...)@111: {1}, {0}
                    try {
                        setPrefsManager(get());
    //#SwingPreferencesDialog.java:113: Warning: method not available - call not analyzed
    //#    call on Object com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1:get()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#    method: void done()
    //#    unanalyzed callee: Object com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1:get()
                    } catch (InterruptedException ex) {
                        //Ignore
                    } catch (ExecutionException ex) {
                        Logger.appError(ErrorLevel.MEDIUM, ex.getMessage(), ex);
    //#SwingPreferencesDialog.java:117: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#    method: void done()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
                    }
                }
            }
    //#SwingPreferencesDialog.java:120: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.done()
        };
        worker.execute();
    //#SwingPreferencesDialog.java:122: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:execute()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:execute()
    }
    //#SwingPreferencesDialog.java:123: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog(Window)

    private void setPrefsManager(final PreferencesManager manager) {
        this.manager = manager;
    //#SwingPreferencesDialog.java:126: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.setPrefsManager(PreferencesManager)
    //#input(void setPrefsManager(PreferencesManager)): "; "._tainted
    //#input(void setPrefsManager(PreferencesManager)): "body { font-family: "._tainted
    //#input(void setPrefsManager(PreferencesManager)): "font-size: "._tainted
    //#input(void setPrefsManager(PreferencesManager)): "pt; }"._tainted
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void setPrefsManager(PreferencesManager)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(void setPrefsManager(PreferencesManager)): manager
    //#input(void setPrefsManager(PreferencesManager)): this
    //#input(void setPrefsManager(PreferencesManager)): this.mainPanel
    //#input(void setPrefsManager(PreferencesManager)): this.mainPanel.__Tag
    //#input(void setPrefsManager(PreferencesManager)): this.mainPanel.panels
    //#input(void setPrefsManager(PreferencesManager)): this.mainPanel.scrollPane
    //#input(void setPrefsManager(PreferencesManager)): this.mainPanel.waitingCategory
    //#input(void setPrefsManager(PreferencesManager)): this.tabList
    //#output(void setPrefsManager(PreferencesManager)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void setPrefsManager(PreferencesManager)): this.mainPanel.category
    //#output(void setPrefsManager(PreferencesManager)): this.mainPanel.waiting
    //#output(void setPrefsManager(PreferencesManager)): this.mainPanel.worker
    //#output(void setPrefsManager(PreferencesManager)): this.manager
    //#new obj(void setPrefsManager(PreferencesManager)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2)
    //#pre[1] (void setPrefsManager(PreferencesManager)): manager != null
    //#pre[4] (void setPrefsManager(PreferencesManager)): this.mainPanel != null
    //#pre[5] (void setPrefsManager(PreferencesManager)): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[6] (void setPrefsManager(PreferencesManager)): this.mainPanel.panels != null
    //#pre[7] (void setPrefsManager(PreferencesManager)): this.mainPanel.scrollPane != null
    //#pre[8] (void setPrefsManager(PreferencesManager)): init'ed(this.mainPanel.waitingCategory)
    //#pre[9] (void setPrefsManager(PreferencesManager)): this.tabList != null
    //#presumption(void setPrefsManager(PreferencesManager)): com.dmdirc.config.prefs.PreferencesManager:getCategories(...)@131 != null
    //#presumption(void setPrefsManager(PreferencesManager)): javax.swing.JList:getModel(...)@128 != null
    //#post(void setPrefsManager(PreferencesManager)): this.mainPanel.category == null
    //#post(void setPrefsManager(PreferencesManager)): this.mainPanel.waiting == 0
    //#post(void setPrefsManager(PreferencesManager)): this.mainPanel.worker == One-of{&new PrefsCategoryLoader(setCategory#2), old this.mainPanel.worker}
    //#post(void setPrefsManager(PreferencesManager)): this.manager == manager
    //#post(void setPrefsManager(PreferencesManager)): this.manager != null
    //#post(void setPrefsManager(PreferencesManager)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void setPrefsManager(PreferencesManager)): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void setPrefsManager(PreferencesManager)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:isInline
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getSubcats
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:countCategories
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void setPrefsManager(PreferencesManager)): Effects-of-calling:java.util.HashMap

        ((DefaultListModel) tabList.getModel()).clear();
        mainPanel.setCategory(null);

        final int count = countCategories(manager.getCategories());
    //#SwingPreferencesDialog.java:131: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.config.prefs.PreferencesManager:getCategories()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void setPrefsManager(PreferencesManager)
    //#    unanalyzed callee: List com.dmdirc.config.prefs.PreferencesManager:getCategories()
        tabList.setCellRenderer(new PreferencesListCellRenderer(count));

        addCategories(manager.getCategories());
    //#SwingPreferencesDialog.java:134: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.config.prefs.PreferencesManager:getCategories()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void setPrefsManager(PreferencesManager)
    //#    unanalyzed callee: List com.dmdirc.config.prefs.PreferencesManager:getCategories()
    }
    //#SwingPreferencesDialog.java:135: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.setPrefsManager(PreferencesManager)

    /** 
     * Returns the instance of SwingPreferencesDialog.
     * 
     * @param parentWindow Parent window
     */
    public static void showSwingPreferencesDialog(final Window parentWindow) {
        me = getSwingPreferencesDialog(parentWindow);
    //#SwingPreferencesDialog.java:143: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.showSwingPreferencesDialog(Window)
    //#input(void showSwingPreferencesDialog(Window)): "; "._tainted
    //#input(void showSwingPreferencesDialog(Window)): "body { font-family: "._tainted
    //#input(void showSwingPreferencesDialog(Window)): "font-size: "._tainted
    //#input(void showSwingPreferencesDialog(Window)): "pt; }"._tainted
    //#input(void showSwingPreferencesDialog(Window)): __Class_Obj.__Lock
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void showSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void showSwingPreferencesDialog(Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(void showSwingPreferencesDialog(Window)): me
    //#input(void showSwingPreferencesDialog(Window)): parentWindow
    //#output(void showSwingPreferencesDialog(Window)): me
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1) num objects
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).__Tag
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).category
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).leftPadding
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).loading
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).nullCategory
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).padding
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).panels
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).rightPadding
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).scrollPane
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).title
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).tooltip
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).waitingCategory
    //#output(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).worker
    //#output(void showSwingPreferencesDialog(Window)): new JList(initComponents#2) num objects
    //#output(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3) num objects
    //#output(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6) num objects
    //#output(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9) num objects
    //#output(void showSwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void showSwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12) num objects
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1) num objects
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).__Tag
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).this$0
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1) num objects
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).__Tag
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).mainPanel
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).tabList
    //#output(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).worker
    //#output(void showSwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13) num objects
    //#output(void showSwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14) num objects
    //#new obj(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1)
    //#new obj(void showSwingPreferencesDialog(Window)): new JList(initComponents#2)
    //#new obj(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3)
    //#new obj(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6)
    //#new obj(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9)
    //#new obj(void showSwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void showSwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12)
    //#new obj(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2)
    //#new obj(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1)
    //#new obj(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1)
    //#new obj(void showSwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13)
    //#new obj(void showSwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14)
    //#pre[1] (void showSwingPreferencesDialog(Window)): init'ed(me)
    //#post(void showSwingPreferencesDialog(Window)): me == One-of{old me, &new SwingPreferencesDialog(getSwingPreferencesDialog#1)}
    //#post(void showSwingPreferencesDialog(Window)): me != null
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1) num objects <= 1
    //#post(void showSwingPreferencesDialog(Window)): new JList(initComponents#2) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14) num objects == new CategoryPanel(initComponents#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).category)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).leftPadding)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).loading == &new JPanel(CategoryPanel#3)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).nullCategory == &new JPanel(CategoryPanel#6)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).padding)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).panels != null
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent == &new SwingPreferencesDialog(getSwingPreferencesDialog#1)
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).this$0 == &new SwingPreferencesDialog(getSwingPreferencesDialog#1)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).rightPadding)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).scrollPane == &new JScrollPane(CategoryPanel#12)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).title == &new TitlePanel(CategoryPanel#13)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).tooltip == &new ToolTipPanel(CategoryPanel#14)
    //#post(void showSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).waitingCategory == &new JPanel(CategoryPanel#9)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).worker)
    //#post(void showSwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void showSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void showSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).mainPanel == &new CategoryPanel(initComponents#1)
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).tabList == &new JList(initComponents#2)
    //#post(void showSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).worker == &new SwingPreferencesDialog$1(SwingPreferencesDialog#1)
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.util.Collections:synchronizedMap
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JScrollPane:setHorizontalScrollBarPolicy
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.BorderFactory:createEtchedBorder
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TitlePanel
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.CategoryPanel:add
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.DefaultListModel
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:setSelectionMode
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ListScroller
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setDefaultCloseOperation
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:addWindowListener
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setTitle
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setResizable
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:setBorder
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:orderButtons
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getCancelButton
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLayout
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getLeftButton
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getRightButton
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:execute
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:pack
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getParent
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLocationRelativeTo
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setVisible
    //#unanalyzed(void showSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj

        me.display();
    }
    //#SwingPreferencesDialog.java:146: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.showSwingPreferencesDialog(Window)

    /**
     * Returns the current instance of the ErrorListDialog.
     *
     * @param parentWindow Parent window
     * 
     * @return The current PluginDErrorListDialogialog instance
     */
    public static SwingPreferencesDialog getSwingPreferencesDialog(final Window parentWindow) {
        synchronized (SwingPreferencesDialog.class) {
    //#SwingPreferencesDialog.java:156: method: SwingPreferencesDialog com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.getSwingPreferencesDialog(Window)
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): "; "._tainted
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): "body { font-family: "._tainted
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): "font-size: "._tainted
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): "pt; }"._tainted
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): __Class_Obj.__Lock
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): java.awt.Dialog$ModalityType.MODELESS
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): me
    //#input(SwingPreferencesDialog getSwingPreferencesDialog(Window)): parentWindow
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): me
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).__Tag
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).category
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).leftPadding
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).loading
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).nullCategory
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).padding
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).panels
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).rightPadding
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).scrollPane
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).title
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).tooltip
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).waitingCategory
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).worker
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JList(initComponents#2) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).category
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).__Tag
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).this$0
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).__Tag
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).mainPanel
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).tabList
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).worker
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14) num objects
    //#output(SwingPreferencesDialog getSwingPreferencesDialog(Window)): return_value
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JList(initComponents#2)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13)
    //#new obj(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14)
    //#pre[1] (SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(me)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): me == One-of{old me, &new SwingPreferencesDialog(getSwingPreferencesDialog#1)}
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): me != null
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): return_value == One-of{old me, &new SwingPreferencesDialog(getSwingPreferencesDialog#1)}
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): return_value != null
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).category)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).leftPadding)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).loading == &new JPanel(CategoryPanel#3)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).nullCategory == &new JPanel(CategoryPanel#6)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).padding)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).panels != null
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).parent == &new SwingPreferencesDialog(getSwingPreferencesDialog#1)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).rightPadding)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).scrollPane == &new JScrollPane(CategoryPanel#12)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).title == &new TitlePanel(CategoryPanel#13)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).tooltip == &new ToolTipPanel(CategoryPanel#14)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new CategoryPanel(initComponents#1).waitingCategory == &new JPanel(CategoryPanel#9)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new CategoryPanel(initComponents#1).worker)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JList(initComponents#2) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#3) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#6) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(CategoryPanel#9) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new JScrollPane(CategoryPanel#12) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new PrefsCategoryLoader(setCategory#2) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog$1(SwingPreferencesDialog#1).this$0 == &new SwingPreferencesDialog(getSwingPreferencesDialog#1)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).mainPanel == &new CategoryPanel(initComponents#1)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).tabList == &new JList(initComponents#2)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new SwingPreferencesDialog(getSwingPreferencesDialog#1).worker == &new SwingPreferencesDialog$1(SwingPreferencesDialog#1)
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new TitlePanel(CategoryPanel#13) num objects <= 1
    //#post(SwingPreferencesDialog getSwingPreferencesDialog(Window)): new ToolTipPanel(CategoryPanel#14) num objects <= 1
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.util.Collections:synchronizedMap
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JScrollPane:setHorizontalScrollBarPolicy
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.BorderFactory:createEtchedBorder
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TitlePanel
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.CategoryPanel:add
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.DefaultListModel
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:setSelectionMode
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:addListSelectionListener
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ListScroller
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setDefaultCloseOperation
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:java.awt.event.WindowAdapter
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:addWindowListener
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setTitle
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setResizable
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JList:setBorder
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:orderButtons
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getCancelButton
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLayout
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getLeftButton
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getRightButton
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(SwingPreferencesDialog getSwingPreferencesDialog(Window)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:execute
            if (me == null) {
                me = new SwingPreferencesDialog(parentWindow);
            }
        }

        return me;
    //#SwingPreferencesDialog.java:162: end of method: SwingPreferencesDialog com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.getSwingPreferencesDialog(Window)
    }

    /**
     * Initialises GUI components.
     */
    private void initComponents() {
        mainPanel = new CategoryPanel(this);
    //#SwingPreferencesDialog.java:169: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.initComponents()
    //#input(void initComponents()): "; "._tainted
    //#input(void initComponents()): "body { font-family: "._tainted
    //#input(void initComponents()): "font-size: "._tainted
    //#input(void initComponents()): "pt; }"._tainted
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/components/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/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void initComponents()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void initComponents()): this
    //#output(void initComponents()): new CategoryPanel(initComponents#1) num objects
    //#output(void initComponents()): this.mainPanel.__Tag
    //#output(void initComponents()): this.mainPanel.category
    //#output(void initComponents()): this.mainPanel.leftPadding
    //#output(void initComponents()): this.mainPanel.loading
    //#output(void initComponents()): this.mainPanel.nullCategory
    //#output(void initComponents()): this.mainPanel.padding
    //#output(void initComponents()): this.mainPanel.panels
    //#output(void initComponents()): this.mainPanel.parent
    //#output(void initComponents()): this.mainPanel.rightPadding
    //#output(void initComponents()): this.mainPanel.scrollPane
    //#output(void initComponents()): this.mainPanel.title
    //#output(void initComponents()): this.mainPanel.tooltip
    //#output(void initComponents()): this.mainPanel.waitingCategory
    //#output(void initComponents()): this.mainPanel.worker
    //#output(void initComponents()): new JList(initComponents#2) num objects
    //#output(void initComponents()): new JPanel(CategoryPanel#3) num objects
    //#output(void initComponents()): new JPanel(CategoryPanel#6) num objects
    //#output(void initComponents()): new JPanel(CategoryPanel#9) num objects
    //#output(void initComponents()): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void initComponents()): new JScrollPane(CategoryPanel#12) num objects
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).category
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void initComponents()): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void initComponents()): new TitlePanel(CategoryPanel#13) num objects
    //#output(void initComponents()): new ToolTipPanel(CategoryPanel#14) num objects
    //#output(void initComponents()): this.mainPanel
    //#output(void initComponents()): this.tabList
    //#new obj(void initComponents()): new CategoryPanel(initComponents#1)
    //#new obj(void initComponents()): new JList(initComponents#2)
    //#new obj(void initComponents()): new JPanel(CategoryPanel#3)
    //#new obj(void initComponents()): new JPanel(CategoryPanel#6)
    //#new obj(void initComponents()): new JPanel(CategoryPanel#9)
    //#new obj(void initComponents()): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void initComponents()): new JScrollPane(CategoryPanel#12)
    //#new obj(void initComponents()): new PrefsCategoryLoader(setCategory#2)
    //#new obj(void initComponents()): new TitlePanel(CategoryPanel#13)
    //#new obj(void initComponents()): new ToolTipPanel(CategoryPanel#14)
    //#presumption(void initComponents()): (int) (net.miginfocom.layout.UnitValue:getValue(...)@58) in {-2_147_483_648..4_294_967_295}
    //#presumption(void initComponents()): (int) (net.miginfocom.layout.UnitValue:getValue(...)@61) in {-2_147_483_648..4_294_967_295}
    //#presumption(void initComponents()): (int) (net.miginfocom.layout.UnitValue:getValue(...)@64) in {-2_147_483_648..4_294_967_295}
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getCancelButton(...)@196 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton(...)@195 != null
    //#presumption(void initComponents()): java.util.Collections:synchronizedMap(...)@109 != null
    //#post(void initComponents()): this.mainPanel == &new CategoryPanel(initComponents#1)
    //#post(void initComponents()): this.tabList == &new JList(initComponents#2)
    //#post(void initComponents()): new CategoryPanel(initComponents#1) num objects == 1
    //#post(void initComponents()): new JList(initComponents#2) num objects == 1
    //#post(void initComponents()): new JPanel(CategoryPanel#3) num objects == 1
    //#post(void initComponents()): new JPanel(CategoryPanel#6) num objects == 1
    //#post(void initComponents()): new JPanel(CategoryPanel#9) num objects == 1
    //#post(void initComponents()): new JScrollPane(CategoryPanel#12) num objects == 1
    //#post(void initComponents()): new TitlePanel(CategoryPanel#13) num objects == 1
    //#post(void initComponents()): new ToolTipPanel(CategoryPanel#14) num objects == 1
    //#post(void initComponents()): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#post(void initComponents()): init'ed(this.mainPanel.category)
    //#post(void initComponents()): init'ed(this.mainPanel.leftPadding)
    //#post(void initComponents()): this.mainPanel.loading == &new JPanel(CategoryPanel#3)
    //#post(void initComponents()): this.mainPanel.nullCategory == &new JPanel(CategoryPanel#6)
    //#post(void initComponents()): init'ed(this.mainPanel.padding)
    //#post(void initComponents()): this.mainPanel.panels != null
    //#post(void initComponents()): this.mainPanel.parent == this
    //#post(void initComponents()): this.mainPanel.parent != null
    //#post(void initComponents()): init'ed(this.mainPanel.rightPadding)
    //#post(void initComponents()): this.mainPanel.scrollPane == &new JScrollPane(CategoryPanel#12)
    //#post(void initComponents()): this.mainPanel.title == &new TitlePanel(CategoryPanel#13)
    //#post(void initComponents()): this.mainPanel.tooltip == &new ToolTipPanel(CategoryPanel#14)
    //#post(void initComponents()): this.mainPanel.waitingCategory == &new JPanel(CategoryPanel#9)
    //#post(void initComponents()): init'ed(this.mainPanel.worker)
    //#post(void initComponents()): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void initComponents()): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void initComponents()): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void initComponents()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void initComponents()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.HashMap
    //#unanalyzed(void initComponents()): Effects-of-calling:java.util.Collections:synchronizedMap
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.JScrollPane:setHorizontalScrollBarPolicy
    //#unanalyzed(void initComponents()): Effects-of-calling:javax.swing.BorderFactory:createEtchedBorder
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.TitlePanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#unanalyzed(void initComponents()): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.CategoryPanel:add
    //#unanalyzed(void initComponents()): Effects-of-calling:java.awt.event.WindowAdapter

        tabList = new JList(new DefaultListModel());
        tabList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        tabList.addListSelectionListener(this);
        new ListScroller(tabList);
    //#SwingPreferencesDialog.java:174: 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.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.ListScroller(JList)
        final JScrollPane tabListScrollPane = new JScrollPane(tabList);
        tabListScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

        setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
    //#SwingPreferencesDialog.java:178: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setDefaultCloseOperation(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setDefaultCloseOperation(int)
        addWindowListener(new WindowAdapter() {
    //#SwingPreferencesDialog.java:179: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)): init'ed(this.this$0)
    //#SwingPreferencesDialog.java:179: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2(SwingPreferencesDialog)
    //#SwingPreferencesDialog.java:179: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:addWindowListener(WindowListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:addWindowListener(WindowListener)

            /** {@inheritDoc} */
            @Override
            public void windowClosing(final WindowEvent e) {
                super.windowClosing(e);
    //#SwingPreferencesDialog.java:184: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2.windowClosing(WindowEvent)
    //#input(void windowClosing(WindowEvent)): "; "._tainted
    //#input(void windowClosing(WindowEvent)): "body { font-family: "._tainted
    //#input(void windowClosing(WindowEvent)): "font-size: "._tainted
    //#input(void windowClosing(WindowEvent)): "pt; }"._tainted
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog.me
    //#input(void windowClosing(WindowEvent)): e
    //#input(void windowClosing(WindowEvent)): this
    //#input(void windowClosing(WindowEvent)): this.this$0
    //#input(void windowClosing(WindowEvent)): this.this$0.mainPanel
    //#input(void windowClosing(WindowEvent)): this.this$0.mainPanel.__Tag
    //#input(void windowClosing(WindowEvent)): this.this$0.mainPanel.panels
    //#input(void windowClosing(WindowEvent)): this.this$0.manager
    //#input(void windowClosing(WindowEvent)): this.this$0.parentWindow
    //#input(void windowClosing(WindowEvent)): this.this$0.selected
    //#input(void windowClosing(WindowEvent)): this.this$0.tabList
    //#input(void windowClosing(WindowEvent)): this.this$0.worker
    //#output(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog.me
    //#output(void windowClosing(WindowEvent)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void windowClosing(WindowEvent)): this.this$0.mainPanel.category
    //#output(void windowClosing(WindowEvent)): this.this$0.mainPanel.worker
    //#output(void windowClosing(WindowEvent)): this.this$0.manager
    //#output(void windowClosing(WindowEvent)): this.this$0.selected
    //#output(void windowClosing(WindowEvent)): this.this$0.worker
    //#new obj(void windowClosing(WindowEvent)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2)
    //#pre[2] (void windowClosing(WindowEvent)): init'ed(com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog.me)
    //#pre[4] (void windowClosing(WindowEvent)): init'ed(this.manager)
    //#pre[5] (void windowClosing(WindowEvent)): init'ed(this.selected)
    //#pre[6] (void windowClosing(WindowEvent)): init'ed(this.worker)
    //#pre[8] (void windowClosing(WindowEvent)): this.this$0 != null
    //#pre[10] (void windowClosing(WindowEvent)): this.mainPanel != null
    //#pre[11] (void windowClosing(WindowEvent)): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[12] (void windowClosing(WindowEvent)): this.mainPanel.panels != null
    //#pre[13] (void windowClosing(WindowEvent)): (soft) init'ed(this.parentWindow)
    //#pre[14] (void windowClosing(WindowEvent)): (soft) this.tabList != null
    //#post(void windowClosing(WindowEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog.me == null
    //#post(void windowClosing(WindowEvent)): this.this$0.mainPanel.category == null
    //#post(void windowClosing(WindowEvent)): this.mainPanel.worker == One-of{&new PrefsCategoryLoader(setCategory#2), old this.mainPanel.worker}
    //#post(void windowClosing(WindowEvent)): this.manager == One-of{old this.manager, null}
    //#post(void windowClosing(WindowEvent)): init'ed(this.manager)
    //#post(void windowClosing(WindowEvent)): this.this$0.selected == null
    //#post(void windowClosing(WindowEvent)): this.worker == One-of{old this.worker, null}
    //#post(void windowClosing(WindowEvent)): init'ed(this.worker)
    //#post(void windowClosing(WindowEvent)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void windowClosing(WindowEvent)): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void windowClosing(WindowEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:save
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JOptionPane:showMessageDialog
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:isDone
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:cancel
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:close
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:dispose
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getPath
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JList:getSelectedValue
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:fireCategoryDeselected
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.awt.event.ActionEvent:getSource
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:java.lang.Object:equals
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:javax.swing.JList:getSelectedIndex
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.IdentityManager:getConfigIdentity
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.Identity:setOption
    //#unanalyzed(void windowClosing(WindowEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:dismiss
                actionPerformed(null);
            }
    //#SwingPreferencesDialog.java:186: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2.windowClosing(WindowEvent)
        });
        setTitle("Preferences");
    //#SwingPreferencesDialog.java:188: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setTitle(String)
        setResizable(false);
    //#SwingPreferencesDialog.java:189: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setResizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setResizable(bool)

        tabList.setBorder(BorderFactory.createEtchedBorder());

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

        getOkButton().addActionListener(this);
    //#SwingPreferencesDialog.java:195: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton()
        getCancelButton().addActionListener(this);
    //#SwingPreferencesDialog.java:196: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getCancelButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getCancelButton()

        setLayout(new MigLayout("pack"));
    //#SwingPreferencesDialog.java:198: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#SwingPreferencesDialog.java:198: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLayout(LayoutManager)
        add(tabListScrollPane, "w 150!, hmax 545, growy, pushy");
    //#SwingPreferencesDialog.java:199: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
        add(mainPanel, "wrap, w 480!, pushy, growy, pushy");
    //#SwingPreferencesDialog.java:200: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
        add(getLeftButton(), "span, split, right");
    //#SwingPreferencesDialog.java:201: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getLeftButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getLeftButton()
    //#SwingPreferencesDialog.java:201: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
        add(getRightButton(), "right");
    //#SwingPreferencesDialog.java:202: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getRightButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getRightButton()
    //#SwingPreferencesDialog.java:202: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:add(Component, Object)
    }
    //#SwingPreferencesDialog.java:203: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.initComponents()

    /**
     * Adds the categories from the preferences manager, clearing existing
     * categories first.
     */
    private void addCategories(final List<PreferencesCategory> categories) {
        UIUtilities.invokeLater(new Runnable() {
    //#SwingPreferencesDialog.java:210: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): this
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): this.val$categories
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): this.val$categories == Param_2
    //#post(void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)): init'ed(this.val$categories)
    //#SwingPreferencesDialog.java:210: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3(SwingPreferencesDialog, List)
    //#SwingPreferencesDialog.java:210: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.addCategories(List)
    //#SwingPreferencesDialog.java:210: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void addCategories(List)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void addCategories(List)): categories
    //#input(void addCategories(List)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void addCategories(List)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void addCategories(List)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(void addCategories(List)): this
    //#input(void addCategories(List)): this.mainPanel
    //#input(void addCategories(List)): this.mainPanel.__Tag
    //#input(void addCategories(List)): this.mainPanel.scrollPane
    //#input(void addCategories(List)): this.mainPanel.waitingCategory
    //#output(void addCategories(List)): this.mainPanel.waiting
    //#pre[3] (void addCategories(List)): this.mainPanel != null
    //#pre[4] (void addCategories(List)): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[5] (void addCategories(List)): this.mainPanel.scrollPane != null
    //#pre[6] (void addCategories(List)): init'ed(this.mainPanel.waitingCategory)
    //#post(void addCategories(List)): this.mainPanel.waiting == 0
    //#unanalyzed(void addCategories(List)): Effects-of-calling:javax.swing.JScrollPane:setViewportView

            @Override
            public void run() {
                tabList.removeListSelectionListener(SwingPreferencesDialog.this);
    //#SwingPreferencesDialog.java:214: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3.run()
    //#input(void run()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void run()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setWaiting(Z)V
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.mainPanel
    //#input(void run()): this.this$0.mainPanel.__Tag
    //#input(void run()): this.this$0.mainPanel.scrollPane
    //#input(void run()): this.this$0.mainPanel.waitingCategory
    //#input(void run()): this.this$0.tabList
    //#input(void run()): this.val$categories
    //#output(void run()): this.this$0.mainPanel.waiting
    //#pre[3] (void run()): this.this$0 != null
    //#pre[8] (void run()): this.tabList != null
    //#pre[9] (void run()): this.val$categories != null
    //#pre[4] (void run()): (soft) this.mainPanel != null
    //#pre[5] (void run()): (soft) this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[6] (void run()): (soft) this.mainPanel.scrollPane != null
    //#pre[7] (void run()): (soft) init'ed(this.mainPanel.waitingCategory)
    //#presumption(void run()): java.util.Iterator:next(...)@215 != null
    //#presumption(void run()): javax.swing.JList:getModel(...)@217 != null
    //#post(void run()): possibly_updated(this.this$0.mainPanel.waiting)
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JScrollPane:setViewportView
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOption
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JList:getModel
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.DefaultListModel:getSize
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.DefaultListModel:get
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getPath
    //#unanalyzed(void run()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JList:setSelectedIndex
    //#test_vector(void run()): com.dmdirc.config.prefs.PreferencesCategory:isInline(...)@216: {1}, {0}
    //#test_vector(void run()): java.util.Iterator:hasNext(...)@215: {0}, {1}
                for (PreferencesCategory category : categories) {
                    if (!category.isInline()) {
    //#SwingPreferencesDialog.java:216: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.prefs.PreferencesCategory:isInline()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.config.prefs.PreferencesCategory:isInline()
                        ((DefaultListModel) tabList.getModel()).addElement(
                                category);
                    }
                    addCategories(category.getSubcats());
    //#SwingPreferencesDialog.java:220: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.config.prefs.PreferencesCategory:getSubcats()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3
    //#    method: void run()
    //#    unanalyzed callee: List com.dmdirc.config.prefs.PreferencesCategory:getSubcats()
                }
                tabList.addListSelectionListener(SwingPreferencesDialog.this);
                restoreActiveCategory();
            }
    //#SwingPreferencesDialog.java:224: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3.run()
        });
        mainPanel.setWaiting(false);
    }
    //#SwingPreferencesDialog.java:227: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.addCategories(List)

    /**
     * Counts the number of categories that will be displayed in the list panel.
     *
     * @param categories The collection of categories to inspect
     * @return The number of those categories (including children) that will be displayed
     * @since 0.6.3m1rc3
     */
    protected int countCategories(final Collection<PreferencesCategory> categories) {
        int count = 0;
    //#SwingPreferencesDialog.java:237: method: int com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.countCategories(Collection)
    //#input(int countCategories(Collection)): categories
    //#input(int countCategories(Collection)): this
    //#output(int countCategories(Collection)): return_value
    //#pre[1] (int countCategories(Collection)): categories != null
    //#presumption(int countCategories(Collection)): com.dmdirc.config.prefs.PreferencesCategory:getSubcats(...)@241 != null
    //#presumption(int countCategories(Collection)): java.util.Iterator:next(...)@239 != null
    //#post(int countCategories(Collection)): init'ed(return_value)
    //#unanalyzed(int countCategories(Collection)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(int countCategories(Collection)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(int countCategories(Collection)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(int countCategories(Collection)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:isInline
    //#unanalyzed(int countCategories(Collection)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesCategory:getSubcats
    //#unanalyzed(int countCategories(Collection)): Effects-of-calling:countCategories
    //#test_vector(int countCategories(Collection)): com.dmdirc.config.prefs.PreferencesCategory:isInline(...)@240: {1}, {0}
    //#test_vector(int countCategories(Collection)): java.util.Iterator:hasNext(...)@239: {0}, {1}

        for (PreferencesCategory cat : categories) {
            if (!cat.isInline()) {
    //#SwingPreferencesDialog.java:240: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.prefs.PreferencesCategory:isInline()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: int countCategories(Collection)
    //#    unanalyzed callee: bool com.dmdirc.config.prefs.PreferencesCategory:isInline()
                count += 1 + countCategories(cat.getSubcats());
    //#SwingPreferencesDialog.java:241: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.config.prefs.PreferencesCategory:getSubcats()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: int countCategories(Collection)
    //#    unanalyzed callee: List com.dmdirc.config.prefs.PreferencesCategory:getSubcats()
    //#SwingPreferencesDialog.java:241: ?overflow
    //#    count + 1 + countCategories(...) in {-2_147_483_648..4_294_967_295}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: int countCategories(Collection)
    //#    basic block: bb_4
    //#    assertion: count + 1 + countCategories(...) in {-2_147_483_648..4_294_967_295}
    //#    VN: return_value + count + 1
    //#    Expected: {-2_147_483_648..4_294_967_295, Invalid}
    //#    Bad: {-4_294_967_295..-2_147_483_649, 4_294_967_296..8_589_934_591}
    //#    Attribs:  Int  Bad < Exp  Bad > Exp
            }
        }

        return count;
    //#SwingPreferencesDialog.java:245: end of method: int com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.countCategories(Collection)
    }

    /**
     * Handles the actions for the dialog.
     *
     * @param actionEvent Action event
     */
    @Override
    public void actionPerformed(final ActionEvent actionEvent) {
        if (selected != null) {
    //#SwingPreferencesDialog.java:255: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.actionPerformed(ActionEvent)
    //#input(void actionPerformed(ActionEvent)): "; "._tainted
    //#input(void actionPerformed(ActionEvent)): "body { font-family: "._tainted
    //#input(void actionPerformed(ActionEvent)): "font-size: "._tainted
    //#input(void actionPerformed(ActionEvent)): "pt; }"._tainted
    //#input(void actionPerformed(ActionEvent)): actionEvent
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void actionPerformed(ActionEvent)): me
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.mainPanel
    //#input(void actionPerformed(ActionEvent)): this.mainPanel.__Tag
    //#input(void actionPerformed(ActionEvent)): this.mainPanel.panels
    //#input(void actionPerformed(ActionEvent)): this.manager
    //#input(void actionPerformed(ActionEvent)): this.parentWindow
    //#input(void actionPerformed(ActionEvent)): this.selected
    //#input(void actionPerformed(ActionEvent)): this.tabList
    //#input(void actionPerformed(ActionEvent)): this.worker
    //#output(void actionPerformed(ActionEvent)): me
    //#output(void actionPerformed(ActionEvent)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void actionPerformed(ActionEvent)): this.mainPanel.category
    //#output(void actionPerformed(ActionEvent)): this.mainPanel.worker
    //#output(void actionPerformed(ActionEvent)): this.manager
    //#output(void actionPerformed(ActionEvent)): this.selected
    //#output(void actionPerformed(ActionEvent)): this.worker
    //#new obj(void actionPerformed(ActionEvent)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2)
    //#pre[2] (void actionPerformed(ActionEvent)): init'ed(me)
    //#pre[4] (void actionPerformed(ActionEvent)): init'ed(this.manager)
    //#pre[5] (void actionPerformed(ActionEvent)): init'ed(this.selected)
    //#pre[6] (void actionPerformed(ActionEvent)): init'ed(this.worker)
    //#pre[9] (void actionPerformed(ActionEvent)): this.mainPanel != null
    //#pre[10] (void actionPerformed(ActionEvent)): this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[11] (void actionPerformed(ActionEvent)): this.mainPanel.panels != null
    //#pre[12] (void actionPerformed(ActionEvent)): (soft) init'ed(this.parentWindow)
    //#pre[13] (void actionPerformed(ActionEvent)): (soft) this.tabList != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton(...)@261 != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.config.IdentityManager:getConfigIdentity(...)@264 != null
    //#presumption(void actionPerformed(ActionEvent)): javax.swing.JList:getSelectedValue(...)@263 != null
    //#post(void actionPerformed(ActionEvent)): me == null
    //#post(void actionPerformed(ActionEvent)): this.mainPanel.category == null
    //#post(void actionPerformed(ActionEvent)): this.mainPanel.worker == One-of{&new PrefsCategoryLoader(setCategory#2), old this.mainPanel.worker}
    //#post(void actionPerformed(ActionEvent)): this.manager == One-of{old this.manager, null}
    //#post(void actionPerformed(ActionEvent)): init'ed(this.manager)
    //#post(void actionPerformed(ActionEvent)): this.selected == null
    //#post(void actionPerformed(ActionEvent)): this.worker == One-of{old this.worker, null}
    //#post(void actionPerformed(ActionEvent)): init'ed(this.worker)
    //#post(void actionPerformed(ActionEvent)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new PrefsCategoryLoader(setCategory#2) num objects == new JPanel(PrefsCategoryLoader#1) num objects
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void actionPerformed(ActionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#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.awt.Font:getFamily
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:save
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JOptionPane:showMessageDialog
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:isDone
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:cancel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.config.prefs.PreferencesManager:close
    //#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
    //#test_vector(void actionPerformed(ActionEvent)): actionEvent: Addr_Set{null}, Inverse{null}
    //#test_vector(void actionPerformed(ActionEvent)): this.manager: Addr_Set{null}, Inverse{null}
    //#test_vector(void actionPerformed(ActionEvent)): this.selected: Addr_Set{null}, Inverse{null}
    //#test_vector(void actionPerformed(ActionEvent)): java.lang.Object:equals(...)@261: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): javax.swing.JList:getSelectedIndex(...)@262: {-2_147_483_648..-1}, {0..4_294_967_295}
            selected.fireCategoryDeselected();
    //#SwingPreferencesDialog.java:256: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.PreferencesCategory:fireCategoryDeselected()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.PreferencesCategory:fireCategoryDeselected()
            selected = null;
        }
        mainPanel.setCategory(null);
        
        if (actionEvent != null && getOkButton().equals(actionEvent.getSource())) {
    //#SwingPreferencesDialog.java:261: Warning: method not available - call not analyzed
    //#    call on JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: JButton com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getOkButton()
            if (tabList.getSelectedIndex() > -1) {
                final PreferencesCategory node = (PreferencesCategory) tabList.getSelectedValue();
                IdentityManager.getConfigIdentity().setOption("dialogstate",
    //#SwingPreferencesDialog.java:264: Warning: method not available - call not analyzed
    //#    call on Identity com.dmdirc.config.IdentityManager:getConfigIdentity()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Identity com.dmdirc.config.IdentityManager:getConfigIdentity()
    //#SwingPreferencesDialog.java:264: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.config.prefs.PreferencesCategory:getPath()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: String com.dmdirc.config.prefs.PreferencesCategory:getPath()
    //#SwingPreferencesDialog.java:264: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.Identity:setOption(String, String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.Identity:setOption(String, String, String)
                        "preferences", node.getPath());
            }
            saveOptions();
        }
        
        if (manager != null) {
            manager.dismiss();
    //#SwingPreferencesDialog.java:271: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.PreferencesManager:dismiss()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.PreferencesManager:dismiss()
        }
        dispose();
    }
    //#SwingPreferencesDialog.java:274: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.actionPerformed(ActionEvent)

    /**
     * {@inheritDoc}
     *
     * @since 0.6.3m1
     */
    @Override
    public void valueChanged(final ListSelectionEvent e) {
        if (!e.getValueIsAdjusting()) {
    //#SwingPreferencesDialog.java:283: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.valueChanged(ListSelectionEvent)
    //#input(void valueChanged(ListSelectionEvent)): "; "._tainted
    //#input(void valueChanged(ListSelectionEvent)): "body { font-family: "._tainted
    //#input(void valueChanged(ListSelectionEvent)): "font-size: "._tainted
    //#input(void valueChanged(ListSelectionEvent)): "pt; }"._tainted
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Descendant_Table[others]
    //#input(void valueChanged(ListSelectionEvent)): com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel.__Dispatch_Table.setCategory(Lcom/dmdirc/config/prefs/PreferencesCategory;)V
    //#input(void valueChanged(ListSelectionEvent)): e
    //#input(void valueChanged(ListSelectionEvent)): this
    //#input(void valueChanged(ListSelectionEvent)): this.mainPanel
    //#input(void valueChanged(ListSelectionEvent)): this.mainPanel.__Tag
    //#input(void valueChanged(ListSelectionEvent)): this.mainPanel.panels
    //#input(void valueChanged(ListSelectionEvent)): this.selected
    //#input(void valueChanged(ListSelectionEvent)): this.tabList
    //#output(void valueChanged(ListSelectionEvent)): new JPanel(PrefsCategoryLoader#1) num objects
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2) num objects
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).__Tag
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).category
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).categoryPanel
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).errorCategory
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).leftPadding
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).padding
    //#output(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2).rightPadding
    //#output(void valueChanged(ListSelectionEvent)): this.mainPanel.category
    //#output(void valueChanged(ListSelectionEvent)): this.mainPanel.worker
    //#output(void valueChanged(ListSelectionEvent)): this.selected
    //#new obj(void valueChanged(ListSelectionEvent)): new JPanel(PrefsCategoryLoader#1)
    //#new obj(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2)
    //#pre[1] (void valueChanged(ListSelectionEvent)): e != null
    //#pre[4] (void valueChanged(ListSelectionEvent)): (soft) init'ed(this.selected)
    //#pre[6] (void valueChanged(ListSelectionEvent)): (soft) this.mainPanel != null
    //#pre[7] (void valueChanged(ListSelectionEvent)): (soft) this.mainPanel.__Tag == com/dmdirc/addons/ui_swing/dialogs/prefs/CategoryPanel
    //#pre[8] (void valueChanged(ListSelectionEvent)): (soft) this.mainPanel.panels != null
    //#pre[9] (void valueChanged(ListSelectionEvent)): (soft) this.tabList != null
    //#post(void valueChanged(ListSelectionEvent)): possibly_updated(this.mainPanel.category)
    //#post(void valueChanged(ListSelectionEvent)): this.mainPanel.worker == One-of{old this.mainPanel.worker, &new PrefsCategoryLoader(setCategory#2)}
    //#post(void valueChanged(ListSelectionEvent)): init'ed(this.selected)
    //#post(void valueChanged(ListSelectionEvent)): new JPanel(PrefsCategoryLoader#1) num objects <= 1
    //#post(void valueChanged(ListSelectionEvent)): new PrefsCategoryLoader(setCategory#2) num objects <= 1
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).__Tag)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).category)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).categoryPanel)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).errorCategory)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).leftPadding)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).padding)
    //#post(void valueChanged(ListSelectionEvent)): init'ed(new PrefsCategoryLoader(setCategory#2).rightPadding)
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeAndWait
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.util.Map:containsKey
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.SwingWorker
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getUnitValueX
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:net.miginfocom.layout.UnitValue:getValue
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:net.miginfocom.layout.PlatformDefaults:getPanelInsets
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void valueChanged(ListSelectionEvent)): Effects-of-calling:javax.swing.SwingWorker:execute
    //#test_vector(void valueChanged(ListSelectionEvent)): this.selected: Addr_Set{null}, Inverse{null}
    //#test_vector(void valueChanged(ListSelectionEvent)): javax.swing.event.ListSelectionEvent:getValueIsAdjusting(...)@283: {1}, {0}
            PreferencesCategory node = null;
            try {
                node = (PreferencesCategory) tabList.getSelectedValue();
            } catch (ArrayIndexOutOfBoundsException ex) {
                //I hate the JVM
            }
            if (node == null) {
                tabList.setSelectedValue(selected, true);
                return;
            }

            if (selected != null) {
                selected.fireCategoryDeselected();
    //#SwingPreferencesDialog.java:296: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.PreferencesCategory:fireCategoryDeselected()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void valueChanged(ListSelectionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.PreferencesCategory:fireCategoryDeselected()
            }
            selected = node;
            if (selected != null) {
    //#SwingPreferencesDialog.java:299: Warning: test always goes same way
    //#    Test predetermined because this.selected != null
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void valueChanged(ListSelectionEvent)
    //#    from bb: bb_9
    //#    live edge: bb_9-->bb_10
    //#    tested vn: node == null
    //#    tested vn values: {0}
                selected.fireCategorySelected();
    //#SwingPreferencesDialog.java:300: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.PreferencesCategory:fireCategorySelected()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void valueChanged(ListSelectionEvent)
    //#    unanalyzed callee: void com.dmdirc.config.prefs.PreferencesCategory:fireCategorySelected()
            }
            mainPanel.setCategory(selected);
        }
    }
    //#SwingPreferencesDialog.java:304: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.valueChanged(ListSelectionEvent)

    /**
     * Returns the selected category.
     *
     * @return Selected category
     */
    protected PreferencesCategory getSelectedCategory() {
        return selected;
    //#SwingPreferencesDialog.java:312: method: PreferencesCategory com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.getSelectedCategory()
    //#input(PreferencesCategory getSelectedCategory()): this
    //#input(PreferencesCategory getSelectedCategory()): this.selected
    //#output(PreferencesCategory getSelectedCategory()): return_value
    //#pre[2] (PreferencesCategory getSelectedCategory()): init'ed(this.selected)
    //#post(PreferencesCategory getSelectedCategory()): return_value == this.selected
    //#post(PreferencesCategory getSelectedCategory()): init'ed(return_value)
    //#SwingPreferencesDialog.java:312: end of method: PreferencesCategory com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.getSelectedCategory()
    }

    /** {@inheritDoc} */
    public void saveOptions() {
        if (manager != null) {
    //#SwingPreferencesDialog.java:317: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.saveOptions()
    //#input(void saveOptions()): this
    //#input(void saveOptions()): this.manager
    //#input(void saveOptions()): this.parentWindow
    //#pre[2] (void saveOptions()): init'ed(this.manager)
    //#pre[3] (void saveOptions()): (soft) init'ed(this.parentWindow)
    //#test_vector(void saveOptions()): this.manager: Addr_Set{null}, Inverse{null}
    //#test_vector(void saveOptions()): com.dmdirc.config.prefs.PreferencesManager:save(...)@318: {0}, {1}
            if (manager.save()) {
    //#SwingPreferencesDialog.java:318: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.prefs.PreferencesManager:save()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void saveOptions()
    //#    unanalyzed callee: bool com.dmdirc.config.prefs.PreferencesManager:save()
                JOptionPane.showMessageDialog(parentWindow,
                        "One or more of the changes you made " +
                        "won't take effect until you restart the client.",
                        "Restart needed",
                        JOptionPane.INFORMATION_MESSAGE);
            }
        }
    }
    //#SwingPreferencesDialog.java:326: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.saveOptions()

    private void restoreActiveCategory() {
        final String oldCategoryPath = IdentityManager.getGlobalConfig().
    //#SwingPreferencesDialog.java:329: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.restoreActiveCategory()
    //#SwingPreferencesDialog.java:329: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void restoreActiveCategory()
    //#    unanalyzed callee: ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#SwingPreferencesDialog.java:329: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.config.ConfigManager:getOption(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void restoreActiveCategory()
    //#    unanalyzed callee: String com.dmdirc.config.ConfigManager:getOption(String, String)
    //#input(void restoreActiveCategory()): this
    //#input(void restoreActiveCategory()): this.tabList
    //#pre[2] (void restoreActiveCategory()): this.tabList != null
    //#presumption(void restoreActiveCategory()): com.dmdirc.config.ConfigManager:getOption(...)@329 != null
    //#presumption(void restoreActiveCategory()): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@329 != null
    //#presumption(void restoreActiveCategory()): javax.swing.DefaultListModel:get(...)@334 != null
    //#presumption(void restoreActiveCategory()): javax.swing.JList:getModel(...)@331 != null
    //#test_vector(void restoreActiveCategory()): java.lang.String:equals(...)@336: {0}, {1}
                getOption("dialogstate", "preferences");
        final DefaultListModel model = (DefaultListModel) tabList.getModel();
        int indexToSelect = 0;
        for (int i = 0; i < model.getSize(); i++) {
            final PreferencesCategory category =
                    (PreferencesCategory) model.get(i);
            if (oldCategoryPath.equals(category.getPath())) {
    //#SwingPreferencesDialog.java:336: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.config.prefs.PreferencesCategory:getPath()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void restoreActiveCategory()
    //#    unanalyzed callee: String com.dmdirc.config.prefs.PreferencesCategory:getPath()
                indexToSelect = i;
                break;
            }
        }
        tabList.setSelectedIndex(indexToSelect);
    }
    //#SwingPreferencesDialog.java:342: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.restoreActiveCategory()

    /** {@inheritDoc} */
    @Override
    public void display() {
        pack();
    //#SwingPreferencesDialog.java:347: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.display()
    //#SwingPreferencesDialog.java:347: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:pack()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:pack()
    //#input(void display()): this
        setLocationRelativeTo(getParent());
    //#SwingPreferencesDialog.java:348: Warning: method not available - call not analyzed
    //#    call on Container com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getParent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void display()
    //#    unanalyzed callee: Container com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:getParent()
    //#SwingPreferencesDialog.java:348: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLocationRelativeTo(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setLocationRelativeTo(Component)
        setVisible(true);
    //#SwingPreferencesDialog.java:349: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void display()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog:setVisible(bool)
    }
    //#SwingPreferencesDialog.java:350: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.display()

    /** {@inheritDoc} */
    @Override
    public void dispose() {
        synchronized (SwingPreferencesDialog.this) {
    //#SwingPreferencesDialog.java:355: method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.dispose()
    //#input(void dispose()): me
    //#input(void dispose()): this
    //#input(void dispose()): this.__Lock
    //#input(void dispose()): this.manager
    //#input(void dispose()): this.worker
    //#output(void dispose()): me
    //#output(void dispose()): this.manager
    //#output(void dispose()): this.worker
    //#pre[1] (void dispose()): init'ed(me)
    //#pre[2] (void dispose()): init'ed(this.manager)
    //#pre[3] (void dispose()): init'ed(this.worker)
    //#post(void dispose()): me == null
    //#post(void dispose()): this.manager == One-of{old this.manager, null}
    //#post(void dispose()): init'ed(this.manager)
    //#post(void dispose()): this.worker == One-of{old this.worker, null}
    //#post(void dispose()): init'ed(this.worker)
    //#test_vector(void dispose()): me: Inverse{null}, Addr_Set{null}
    //#test_vector(void dispose()): this.manager: Addr_Set{null}, Inverse{null}
    //#test_vector(void dispose()): this.worker: Addr_Set{null}, Inverse{null}
    //#test_vector(void dispose()): com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:isDone(...)@356: {1}, {0}
            if (worker != null && !worker.isDone()) {
    //#SwingPreferencesDialog.java:356: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:isDone()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void dispose()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:isDone()
                worker.cancel(true);
    //#SwingPreferencesDialog.java:357: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:cancel(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void dispose()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.LoggingSwingWorker:cancel(bool)
            }
            if (manager != null) {
                manager.close();
    //#SwingPreferencesDialog.java:360: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.prefs.PreferencesManager:close()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
    //#    method: void dispose()
    //#    unanalyzed callee: void com.dmdirc.config.prefs.PreferencesManager:close()
            }
            if (me == null) {
                return;
            }
            super.dispose();
    //#SwingPreferencesDialog.java:365: 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.prefs.SwingPreferencesDialog
    //#    method: void dispose()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.StandardDialog:dispose()
            me = null;
            worker = null;
            manager = null;
        }
    }
    //#SwingPreferencesDialog.java:370: end of method: void com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog.dispose()
}
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$3]
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$3] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3__static_init): __Dispatch_Table.run()V == &run
    //#SwingPreferencesDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3__static_init
    //#SwingPreferencesDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$3
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$2]
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2__static_init): __Dispatch_Table.windowClosing(Ljava/awt/event/WindowEvent;)V
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$2] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2__static_init): __Dispatch_Table.windowClosing(Ljava/awt/event/WindowEvent;)V == &windowClosing
    //#SwingPreferencesDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2__static_init
    //#SwingPreferencesDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$2
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1]
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Dispatch_Table.doInBackground()Lcom/dmdirc/config/prefs/PreferencesManager;
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#output(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Dispatch_Table.done()V
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Dispatch_Table.doInBackground()Lcom/dmdirc/config/prefs/PreferencesManager; == &doInBackground
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#post(com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init): __Dispatch_Table.done()V == &done
    //#SwingPreferencesDialog.java:: end of method: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1.com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1__static_init
    //#SwingPreferencesDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog$1
    //#SwingPreferencesDialog.java:: end of class: com.dmdirc.addons.ui_swing.dialogs.prefs.SwingPreferencesDialog
