//# 0 errors, 372 messages
//#
/*
    //#FeedbackNag.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#FeedbackNag.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init
 * Copyright (c) 2006-2008 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.components.statusbar;

import com.dmdirc.addons.ui_swing.SwingController;
import com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog;
import com.dmdirc.ui.IconManager;
import com.dmdirc.ui.interfaces.StatusBarComponent;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

/**
 * Feedback nag icon.
 */
public class FeedbackNag extends JLabel implements StatusBarComponent, 
        MouseListener, ActionListener {

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 1;
    /** Nag icon. */
    private final ImageIcon icon;
    /** Dismiss menu. */
    private final JPopupMenu menu;
    /** Dismiss menu item. */
    private final JMenuItem dismiss;
    /** Show menu item. */
    private final JMenuItem show;
    /** Swing Controller. */
    private SwingController controller;

    /**
     * Creates a new feedback nag.
     * 
     * @param controller Swing controller
     */
    public FeedbackNag(final SwingController controller) {
        super();
    //#FeedbackNag.java:70: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): controller
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new ImageIcon(FeedbackNag#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JMenuItem(FeedbackNag#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JMenuItem(FeedbackNag#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JPopupMenu(FeedbackNag#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.controller
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.dismiss
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.icon
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.menu
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.show
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new ImageIcon(FeedbackNag#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JMenuItem(FeedbackNag#3)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JMenuItem(FeedbackNag#4)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JPopupMenu(FeedbackNag#2)
    //#pre[1] (void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): controller != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): com.dmdirc.addons.ui_swing.SwingController:getStatusBar(...)@88 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): com.dmdirc.ui.IconManager:getIconManager(...)@72 != null
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.controller == controller
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.controller != null
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.dismiss == &new JMenuItem(FeedbackNag#3)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.icon == &new ImageIcon(FeedbackNag#1)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.menu == &new JPopupMenu(FeedbackNag#2)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): this.show == &new JMenuItem(FeedbackNag#4)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new ImageIcon(FeedbackNag#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JMenuItem(FeedbackNag#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JMenuItem(FeedbackNag#4) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)): new JPopupMenu(FeedbackNag#2) num objects == 1
        this.controller = controller;
        icon = new ImageIcon(IconManager.getIconManager().getImage("feedback"));
    //#FeedbackNag.java:72: Warning: method not available - call not analyzed
    //#    call on IconManager com.dmdirc.ui.IconManager:getIconManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: IconManager com.dmdirc.ui.IconManager:getIconManager()
    //#FeedbackNag.java:72: Warning: method not available - call not analyzed
    //#    call on Image com.dmdirc.ui.IconManager:getImage(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: Image com.dmdirc.ui.IconManager:getImage(String)
        menu = new JPopupMenu();
        dismiss = new JMenuItem("Dismiss");
        show = new JMenuItem("Open");

        setIcon(icon);
    //#FeedbackNag.java:77: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:setIcon(Icon)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:setIcon(Icon)
        setBorder(BorderFactory.createEtchedBorder());
    //#FeedbackNag.java:78: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:setBorder(Border)
        setToolTipText("We would appreciate any feedback you may have about DMDirc.");
    //#FeedbackNag.java:79: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:setToolTipText(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:setToolTipText(String)

        menu.add(show);
        menu.add(dismiss);

        show.addActionListener(this);
        dismiss.addActionListener(this);
        addMouseListener(this);
    //#FeedbackNag.java:86: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:addMouseListener(MouseListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag:addMouseListener(MouseListener)

        controller.getStatusBar().addComponent(this);
    //#FeedbackNag.java:88: Warning: method not available - call not analyzed
    //#    call on StatusBar com.dmdirc.addons.ui_swing.SwingController:getStatusBar()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: StatusBar com.dmdirc.addons.ui_swing.SwingController:getStatusBar()
    //#FeedbackNag.java:88: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.StatusBar:addComponent(StatusBarComponent)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.StatusBar:addComponent(StatusBarComponent)
    }
    //#FeedbackNag.java:89: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag(SwingController)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseClicked(MouseEvent e) {
        if (e.getButton() == 1) {
    //#FeedbackNag.java:98: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseClicked(MouseEvent)
    //#input(void mouseClicked(MouseEvent)): "; "._tainted
    //#input(void mouseClicked(MouseEvent)): "body { font-family: "._tainted
    //#input(void mouseClicked(MouseEvent)): "font-size: "._tainted
    //#input(void mouseClicked(MouseEvent)): "pt; }"._tainted
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/text/TextLabel]
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Descendant_Table[others]
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.getDocument()Ljavax/swing/text/StyledDocument;
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/components/text/TextLabel.__Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.__Class_Obj.__Lock
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.java.awt.Dialog$ModalityType.MODELESS
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me
    //#input(void mouseClicked(MouseEvent)): e
    //#input(void mouseClicked(MouseEvent)): this
    //#input(void mouseClicked(MouseEvent)): this.controller
    //#input(void mouseClicked(MouseEvent)): this.menu
    //#output(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1) num objects
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).DMDircCheckbox
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).__Tag
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).email
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).feedback
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).info
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).name
    //#output(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1).serverCheckbox
    //#output(void mouseClicked(MouseEvent)): new JCheckBox(initComponents#7) num objects
    //#output(void mouseClicked(MouseEvent)): new JCheckBox(initComponents#8) num objects
    //#output(void mouseClicked(MouseEvent)): new JTextArea(initComponents#6) num objects
    //#output(void mouseClicked(MouseEvent)): new JTextField(initComponents#4) num objects
    //#output(void mouseClicked(MouseEvent)): new JTextField(initComponents#5) num objects
    //#output(void mouseClicked(MouseEvent)): new SimpleAttributeSet(TextLabel#6) num objects
    //#output(void mouseClicked(MouseEvent)): new TextLabel(initComponents#3) num objects
    //#output(void mouseClicked(MouseEvent)): new TextLabel(initComponents#3).__Tag
    //#output(void mouseClicked(MouseEvent)): new TextLabel(initComponents#3).sas
    //#new obj(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1)
    //#new obj(void mouseClicked(MouseEvent)): new JCheckBox(initComponents#7)
    //#new obj(void mouseClicked(MouseEvent)): new JCheckBox(initComponents#8)
    //#new obj(void mouseClicked(MouseEvent)): new JTextArea(initComponents#6)
    //#new obj(void mouseClicked(MouseEvent)): new JTextField(initComponents#4)
    //#new obj(void mouseClicked(MouseEvent)): new JTextField(initComponents#5)
    //#new obj(void mouseClicked(MouseEvent)): new SimpleAttributeSet(TextLabel#6)
    //#new obj(void mouseClicked(MouseEvent)): new TextLabel(initComponents#3)
    //#pre[2] (void mouseClicked(MouseEvent)): e != null
    //#pre[3] (void mouseClicked(MouseEvent)): (soft) init'ed(com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me)
    //#pre[5] (void mouseClicked(MouseEvent)): (soft) this.controller != null
    //#pre[6] (void mouseClicked(MouseEvent)): (soft) this.menu != null
    //#presumption(void mouseClicked(MouseEvent)): com.dmdirc.addons.ui_swing.SwingController:getStatusBar(...)@100 != null
    //#post(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me == One-of{old com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me, &new FeedbackDialog(getFeedbackDialog#1)}
    //#post(void mouseClicked(MouseEvent)): init'ed(com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me)
    //#post(void mouseClicked(MouseEvent)): new FeedbackDialog(getFeedbackDialog#1) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).DMDircCheckbox)
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).__Tag)
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).email)
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).feedback)
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).info)
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).name)
    //#post(void mouseClicked(MouseEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).serverCheckbox)
    //#post(void mouseClicked(MouseEvent)): new JCheckBox(initComponents#7) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): new JCheckBox(initComponents#8) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): new JTextArea(initComponents#6) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): new JTextField(initComponents#4) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): new JTextField(initComponents#5) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): new SimpleAttributeSet(TextLabel#6) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): new TextLabel(initComponents#3) num objects <= 1
    //#post(void mouseClicked(MouseEvent)): init'ed(new TextLabel(initComponents#3).__Tag)
    //#post(void mouseClicked(MouseEvent)): init'ed(new TextLabel(initComponents#3).sas)
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getX
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getY
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:orderButtons
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:getOkButton
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JButton:setActionCommand
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:getCancelButton
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JTextPane:getDocument
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JTextPane:setText
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.DefaultStyledDocument
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JTextPane
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.html.HTMLEditorKit
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditorKit
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.plaf.basic.BasicTextPaneUI
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setUI
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.UIManager:getFont
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.html.HTMLDocument:getStyleSheet
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.Font:getFamily
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.html.StyleSheet:addRule
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setOpaque
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setEditable
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setHighlighter
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.Insets
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setMargin
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setAlignment
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JTextField
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JTextArea
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:addUndoManager
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JCheckBox:setMargin
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JCheckBox:setBorder
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setLayout
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:add
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JTextArea:getDocument
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setTitle
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setResizable
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:pack
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.ServerManager:numServers
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setLocationRelativeTo
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setVisible
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:requestFocusInWindow
    //#test_vector(void mouseClicked(MouseEvent)): java.awt.event.MouseEvent:getButton(...)@98: {-2_147_483_648..0, 2..4_294_967_295}, {1}
            FeedbackDialog.showFeedbackDialog(controller.getMainFrame());
    //#FeedbackNag.java:99: Warning: method not available - call not analyzed
    //#    call on MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void mouseClicked(MouseEvent)
    //#    unanalyzed callee: MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
            controller.getStatusBar().removeComponent(this);
    //#FeedbackNag.java:100: Warning: method not available - call not analyzed
    //#    call on StatusBar com.dmdirc.addons.ui_swing.SwingController:getStatusBar()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void mouseClicked(MouseEvent)
    //#    unanalyzed callee: StatusBar com.dmdirc.addons.ui_swing.SwingController:getStatusBar()
    //#FeedbackNag.java:100: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.StatusBar:removeComponent(StatusBarComponent)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void mouseClicked(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.StatusBar:removeComponent(StatusBarComponent)
        }
        checkMouseEvent(e);
    }
    //#FeedbackNag.java:103: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseClicked(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mousePressed(MouseEvent e) {
        checkMouseEvent(e);
    //#FeedbackNag.java:112: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mousePressed(MouseEvent)
    //#input(void mousePressed(MouseEvent)): e
    //#input(void mousePressed(MouseEvent)): this
    //#input(void mousePressed(MouseEvent)): this.menu
    //#pre[1] (void mousePressed(MouseEvent)): e != null
    //#pre[3] (void mousePressed(MouseEvent)): (soft) this.menu != null
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getX
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getY
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    }
    //#FeedbackNag.java:113: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mousePressed(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseReleased(MouseEvent e) {
        checkMouseEvent(e);
    //#FeedbackNag.java:122: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseReleased(MouseEvent)
    //#input(void mouseReleased(MouseEvent)): e
    //#input(void mouseReleased(MouseEvent)): this
    //#input(void mouseReleased(MouseEvent)): this.menu
    //#pre[1] (void mouseReleased(MouseEvent)): e != null
    //#pre[3] (void mouseReleased(MouseEvent)): (soft) this.menu != null
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getX
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getY
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    }
    //#FeedbackNag.java:123: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseReleased(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseEntered(MouseEvent e) {
        checkMouseEvent(e);
    //#FeedbackNag.java:132: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseEntered(MouseEvent)
    //#input(void mouseEntered(MouseEvent)): e
    //#input(void mouseEntered(MouseEvent)): this
    //#input(void mouseEntered(MouseEvent)): this.menu
    //#pre[1] (void mouseEntered(MouseEvent)): e != null
    //#pre[3] (void mouseEntered(MouseEvent)): (soft) this.menu != null
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getX
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getY
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    }
    //#FeedbackNag.java:133: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseEntered(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseExited(MouseEvent e) {
        checkMouseEvent(e);
    //#FeedbackNag.java:142: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseExited(MouseEvent)
    //#input(void mouseExited(MouseEvent)): e
    //#input(void mouseExited(MouseEvent)): this
    //#input(void mouseExited(MouseEvent)): this.menu
    //#pre[1] (void mouseExited(MouseEvent)): e != null
    //#pre[3] (void mouseExited(MouseEvent)): (soft) this.menu != null
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getX
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getY
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    }
    //#FeedbackNag.java:143: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.mouseExited(MouseEvent)

    /**
     * Checks a mouse event for a popup trigger.
     *
     * @param e Mouse event
     */
    private void checkMouseEvent(MouseEvent e) {
        if (e.isPopupTrigger()) {
    //#FeedbackNag.java:151: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.checkMouseEvent(MouseEvent)
    //#input(void checkMouseEvent(MouseEvent)): e
    //#input(void checkMouseEvent(MouseEvent)): this
    //#input(void checkMouseEvent(MouseEvent)): this.menu
    //#pre[1] (void checkMouseEvent(MouseEvent)): e != null
    //#pre[3] (void checkMouseEvent(MouseEvent)): (soft) this.menu != null
    //#test_vector(void checkMouseEvent(MouseEvent)): java.awt.event.MouseEvent:isPopupTrigger(...)@151: {0}, {1}
            menu.show(this, e.getX(), e.getY());
        }
    }
    //#FeedbackNag.java:154: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.checkMouseEvent(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Action event
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == show) {
    //#FeedbackNag.java:163: method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.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)): 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/FeedbackDialog.__Class_Obj.__Lock
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.java.awt.Dialog$ModalityType.MODELESS
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me
    //#input(void actionPerformed(ActionEvent)): e
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.controller
    //#input(void actionPerformed(ActionEvent)): this.show
    //#output(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1) num objects
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).DMDircCheckbox
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).__Tag
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).email
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).feedback
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).info
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).name
    //#output(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1).serverCheckbox
    //#output(void actionPerformed(ActionEvent)): new JCheckBox(initComponents#7) num objects
    //#output(void actionPerformed(ActionEvent)): new JCheckBox(initComponents#8) num objects
    //#output(void actionPerformed(ActionEvent)): new JTextArea(initComponents#6) num objects
    //#output(void actionPerformed(ActionEvent)): new JTextField(initComponents#4) num objects
    //#output(void actionPerformed(ActionEvent)): new JTextField(initComponents#5) num objects
    //#output(void actionPerformed(ActionEvent)): new SimpleAttributeSet(TextLabel#6) num objects
    //#output(void actionPerformed(ActionEvent)): new TextLabel(initComponents#3) num objects
    //#output(void actionPerformed(ActionEvent)): new TextLabel(initComponents#3).__Tag
    //#output(void actionPerformed(ActionEvent)): new TextLabel(initComponents#3).sas
    //#new obj(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1)
    //#new obj(void actionPerformed(ActionEvent)): new JCheckBox(initComponents#7)
    //#new obj(void actionPerformed(ActionEvent)): new JCheckBox(initComponents#8)
    //#new obj(void actionPerformed(ActionEvent)): new JTextArea(initComponents#6)
    //#new obj(void actionPerformed(ActionEvent)): new JTextField(initComponents#4)
    //#new obj(void actionPerformed(ActionEvent)): new JTextField(initComponents#5)
    //#new obj(void actionPerformed(ActionEvent)): new SimpleAttributeSet(TextLabel#6)
    //#new obj(void actionPerformed(ActionEvent)): new TextLabel(initComponents#3)
    //#pre[2] (void actionPerformed(ActionEvent)): e != null
    //#pre[5] (void actionPerformed(ActionEvent)): this.controller != null
    //#pre[3] (void actionPerformed(ActionEvent)): (soft) init'ed(com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me)
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.addons.ui_swing.SwingController:getStatusBar(...)@166 != null
    //#post(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me == One-of{old com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me, &new FeedbackDialog(getFeedbackDialog#1)}
    //#post(void actionPerformed(ActionEvent)): init'ed(com/dmdirc/addons/ui_swing/dialogs/FeedbackDialog.me)
    //#post(void actionPerformed(ActionEvent)): new FeedbackDialog(getFeedbackDialog#1) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).DMDircCheckbox)
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).__Tag)
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).email)
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).feedback)
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).info)
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).name)
    //#post(void actionPerformed(ActionEvent)): init'ed(new FeedbackDialog(getFeedbackDialog#1).serverCheckbox)
    //#post(void actionPerformed(ActionEvent)): new JCheckBox(initComponents#7) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new JCheckBox(initComponents#8) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new JTextArea(initComponents#6) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new JTextField(initComponents#4) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new JTextField(initComponents#5) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new SimpleAttributeSet(TextLabel#6) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): new TextLabel(initComponents#3) num objects <= 1
    //#post(void actionPerformed(ActionEvent)): init'ed(new TextLabel(initComponents#3).__Tag)
    //#post(void actionPerformed(ActionEvent)): init'ed(new TextLabel(initComponents#3).sas)
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:orderButtons
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:getOkButton
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton:setText
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton:setActionCommand
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton:setEnabled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:getCancelButton
    //#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.JTextField
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextArea
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:addUndoManager
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox:setMargin
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.BorderFactory:createEmptyBorder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox:setBorder
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setLayout
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:add
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JScrollPane
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JButton:addActionListener
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JTextArea:getDocument
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.text.Document:addDocumentListener
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setTitle
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setResizable
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:pack
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.ServerManager:getServerManager
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.ServerManager:numServers
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.JCheckBox:setEnabled
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setLocationRelativeTo
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:setVisible
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.dialogs.FeedbackDialog:requestFocusInWindow
            FeedbackDialog.showFeedbackDialog(controller.getMainFrame());
    //#FeedbackNag.java:164: Warning: method not available - call not analyzed
    //#    call on MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
        }
        controller.getStatusBar().removeComponent(this);
    //#FeedbackNag.java:166: Warning: method not available - call not analyzed
    //#    call on StatusBar com.dmdirc.addons.ui_swing.SwingController:getStatusBar()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: StatusBar com.dmdirc.addons.ui_swing.SwingController:getStatusBar()
    //#FeedbackNag.java:166: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.StatusBar:removeComponent(StatusBarComponent)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.StatusBar:removeComponent(StatusBarComponent)
    }
    //#FeedbackNag.java:167: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.actionPerformed(ActionEvent)
}
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/FeedbackNag]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.checkMouseEvent(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/FeedbackNag] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.checkMouseEvent(Ljava/awt/event/MouseEvent;)V == &checkMouseEvent
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V == &mouseClicked
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V == &mouseEntered
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V == &mouseExited
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V == &mousePressed
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V == &mouseReleased
    //#FeedbackNag.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag.com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag__static_init
    //#FeedbackNag.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.FeedbackNag
