//# 1 errors, 674 messages
//#
/*
    //#StatusbarPopupPanel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder
    //#StatusbarPopupPanel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder__static_init
    //#StatusbarPopupPanel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1
    //#StatusbarPopupPanel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1__static_init
    //#StatusbarPopupPanel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#StatusbarPopupPanel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init
 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package com.dmdirc.addons.ui_swing.components.statusbar;

import com.dmdirc.addons.ui_swing.UIUtilities;
import com.dmdirc.ui.interfaces.StatusBarComponent;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;

import javax.swing.UIManager;
import javax.swing.border.EtchedBorder;

import net.miginfocom.swing.MigLayout;

/**
 * A panel shown in the status bar which displays a {@link StatusbarPopupWindow}
 * when the user mouses over it.
 *
 * @since 0.6.3m1
 * @author chris
 */
public abstract class StatusbarPopupPanel extends JPanel
    //#StatusbarPopupPanel.java:48: method: StatusbarPopupWindow com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.access$000(StatusbarPopupPanel)
    //#input(StatusbarPopupWindow access$000(StatusbarPopupPanel)): x0
    //#input(StatusbarPopupWindow access$000(StatusbarPopupPanel)): x0.dialog
    //#output(StatusbarPopupWindow access$000(StatusbarPopupPanel)): return_value
    //#pre[1] (StatusbarPopupWindow access$000(StatusbarPopupPanel)): x0 != null
    //#pre[2] (StatusbarPopupWindow access$000(StatusbarPopupPanel)): init'ed(x0.dialog)
    //#post(StatusbarPopupWindow access$000(StatusbarPopupPanel)): return_value == x0.dialog
    //#post(StatusbarPopupWindow access$000(StatusbarPopupPanel)): init'ed(return_value)
    //#StatusbarPopupPanel.java:48: end of method: StatusbarPopupWindow com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.access$000(StatusbarPopupPanel)
        implements StatusBarComponent, MouseListener {

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 2;
    
    /** The label we use to show information. */
    protected final JLabel label;

    /** The popup window we're using to show extra info. */
    private StatusbarPopupWindow dialog;

    /**
     * Creates a new {@link StatusbarPopupPanel}, using a default text label.
     */
    public StatusbarPopupPanel() {
        this(new JLabel("Unknown"));
    //#StatusbarPopupPanel.java:68: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): new JLabel(StatusbarPopupPanel#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): this.label
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): new JLabel(StatusbarPopupPanel#1)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): this.label == &new JLabel(StatusbarPopupPanel#1)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): new JLabel(StatusbarPopupPanel#1) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:javax.swing.BorderFactory:createEtchedBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:addMouseListener
    }
    //#StatusbarPopupPanel.java:69: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel()

    /**
     * Creates a new {@link StatusbarPopupPanel}, using the specified label.
     *
     * @param label The label to be displayed in the status bar
     */
    public StatusbarPopupPanel(final JLabel label) {
        super();
    //#StatusbarPopupPanel.java:77: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)): label
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)): this.label
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)): this.label == label
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)): init'ed(this.label)

        this.label = label;

        setBorder(BorderFactory.createEtchedBorder());
    //#StatusbarPopupPanel.java:81: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder(Border)
        setLayout(new MigLayout("ins 0 rel 0 rel, aligny center"));
    //#StatusbarPopupPanel.java:82: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout(String)
    //#StatusbarPopupPanel.java:82: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setLayout(LayoutManager)
        add(label);
    //#StatusbarPopupPanel.java:83: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:add(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    //#    unanalyzed callee: Component com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:add(Component)
        
        addMouseListener(this);
    //#StatusbarPopupPanel.java:85: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:addMouseListener(MouseListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:addMouseListener(MouseListener)
    }
    //#StatusbarPopupPanel.java:86: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel(JLabel)
    
    /**
     * Closes and reopens the dialog to update information and border positions.
     */
    public final void refreshDialog() {
        UIUtilities.invokeLater(new Runnable() {
    //#StatusbarPopupPanel.java:92: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)): init'ed(this.this$0)
    //#StatusbarPopupPanel.java:92: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1(StatusbarPopupPanel)
    //#StatusbarPopupPanel.java:92: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.refreshDialog()
    //#StatusbarPopupPanel.java:92: 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.components.statusbar.StatusbarPopupPanel
    //#    method: void refreshDialog()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void refreshDialog()): this
            @Override
            public void run() {
                synchronized (StatusbarPopupPanel.this) {
    //#StatusbarPopupPanel.java:95: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1.run()
    //#StatusbarPopupPanel.java:95: Warning: suspicious precondition
    //#    The precondition for this.this$0.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1
    //#    method: void run()
    //#    suspicious precondition index: [5]
    //#    Attribs:  Soft
    //#StatusbarPopupPanel.java:95: Warning: suspicious precondition
    //#    The precondition for this.this$0.dialog.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1
    //#    method: void run()
    //#    suspicious precondition index: [7]
    //#    Attribs:  Soft
    //#input(void run()): " ago"._tainted
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.java.awt.Dialog$ModalityType.MODELESS
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.__Tag
    //#input(void run()): this.this$0.dialog
    //#input(void run()): this.this$0.dialog.__Tag
    //#input(void run()): this.this$0.dialog.parent
    //#input(void run()): this.this$0.dialog.parentWindow
    //#input(void run()): this.this$0.dialog.server
    //#input(void run()): this.this$0.mainFrame
    //#output(void run()): new ErrorPopup(getWindow#1) num objects
    //#output(void run()): new ErrorPopup(getWindow#1).__Tag
    //#output(void run()): new ErrorPopup(getWindow#1).parent
    //#output(void run()): new ErrorPopup(getWindow#1).parentWindow
    //#output(void run()): new ErrorPopup(getWindow#1).server
    //#output(void run()): new InvitePopup(getWindow#1) num objects
    //#output(void run()): new InvitePopup(getWindow#1).__Tag
    //#output(void run()): new InvitePopup(getWindow#1).parent
    //#output(void run()): new InvitePopup(getWindow#1).parentWindow
    //#output(void run()): new InvitePopup(getWindow#1).server
    //#output(void run()): this.this$0.dialog
    //#new obj(void run()): new ErrorPopup(getWindow#1)
    //#new obj(void run()): new InvitePopup(getWindow#1)
    //#pre[1] (void run()): init'ed(this.dialog)
    //#pre[3] (void run()): (soft) this.this$0 != null
    //#pre[5] (void run()): (soft) this.__Tag in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel, com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel}
    //#pre[7] (void run()): (soft) this.dialog.__Tag in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup, com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow}
    //#pre[8] (void run()): (soft) this.dialog.parent != null
    //#pre[9] (void run()): (soft) this.dialog.parentWindow != null
    //#post(void run()): init'ed(this.dialog)
    //#post(void run()): new ErrorPopup(getWindow#1) num objects <= 1
    //#post(void run()): init'ed(new ErrorPopup(getWindow#1).__Tag)
    //#post(void run()): init'ed(new ErrorPopup(getWindow#1).parent)
    //#post(void run()): init'ed(new ErrorPopup(getWindow#1).parentWindow)
    //#post(void run()): init'ed(new ErrorPopup(getWindow#1).server)
    //#post(void run()): new InvitePopup(getWindow#1) num objects <= 1
    //#post(void run()): init'ed(new InvitePopup(getWindow#1).__Tag)
    //#post(void run()): init'ed(new InvitePopup(getWindow#1).parent)
    //#post(void run()): possibly_updated(new InvitePopup(getWindow#1).parentWindow)
    //#post(void run()): possibly_updated(new InvitePopup(getWindow#1).server)
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void run()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void run()): Effects-of-calling:initContent
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void run()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void run()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void run()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void run()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void run()): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void run()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void run()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void run()): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void run()): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void run()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void run()): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void run()): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void run()): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void run()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void run()): Effects-of-calling:getWindow
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setDefaultCloseOperation
                    if (dialog != null) {
                        closeDialog();
                        openDialog();
                    }
                }
            }
    //#StatusbarPopupPanel.java:101: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1.run()
        });
    }
    //#StatusbarPopupPanel.java:103: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.refreshDialog()

    /**
     * Opens the information dialog.
     */
    protected final void openDialog() {
        synchronized (StatusbarPopupPanel.this) {
    //#StatusbarPopupPanel.java:109: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.openDialog()
    //#StatusbarPopupPanel.java:109: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void openDialog()
    //#    suspicious precondition index: [2]
    //#input(void openDialog()): " ago"._tainted
    //#input(void openDialog()): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel]
    //#input(void openDialog()): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel]
    //#input(void openDialog()): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel]
    //#input(void openDialog()): __Descendant_Table[others]
    //#input(void openDialog()): __Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void openDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.java.awt.Dialog$ModalityType.MODELESS
    //#input(void openDialog()): this
    //#input(void openDialog()): this.__Lock
    //#input(void openDialog()): this.__Tag
    //#input(void openDialog()): this.dialog.__Tag
    //#input(void openDialog()): this.dialog.parent
    //#input(void openDialog()): this.dialog.parentWindow
    //#input(void openDialog()): this.dialog.server
    //#input(void openDialog()): this.mainFrame
    //#output(void openDialog()): new ErrorPopup(getWindow#1) num objects
    //#output(void openDialog()): new ErrorPopup(getWindow#1).__Tag
    //#output(void openDialog()): new ErrorPopup(getWindow#1).parent
    //#output(void openDialog()): new ErrorPopup(getWindow#1).parentWindow
    //#output(void openDialog()): new ErrorPopup(getWindow#1).server
    //#output(void openDialog()): new InvitePopup(getWindow#1) num objects
    //#output(void openDialog()): new InvitePopup(getWindow#1).__Tag
    //#output(void openDialog()): new InvitePopup(getWindow#1).parent
    //#output(void openDialog()): new InvitePopup(getWindow#1).parentWindow
    //#output(void openDialog()): new InvitePopup(getWindow#1).server
    //#output(void openDialog()): this.dialog
    //#new obj(void openDialog()): new ErrorPopup(getWindow#1)
    //#new obj(void openDialog()): new InvitePopup(getWindow#1)
    //#pre[2] (void openDialog()): this.__Tag in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel, com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel}
    //#presumption(void openDialog()): this.dialog.__Tag@110 in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup, com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow}
    //#presumption(void openDialog()): this.dialog.parent@110 != null
    //#presumption(void openDialog()): this.dialog.parentWindow@110 != null
    //#post(void openDialog()): this.dialog != null
    //#post(void openDialog()): new ErrorPopup(getWindow#1) num objects <= 1
    //#post(void openDialog()): init'ed(new ErrorPopup(getWindow#1).__Tag)
    //#post(void openDialog()): init'ed(new ErrorPopup(getWindow#1).parent)
    //#post(void openDialog()): init'ed(new ErrorPopup(getWindow#1).parentWindow)
    //#post(void openDialog()): init'ed(new ErrorPopup(getWindow#1).server)
    //#post(void openDialog()): new InvitePopup(getWindow#1) num objects <= 1
    //#post(void openDialog()): init'ed(new InvitePopup(getWindow#1).__Tag)
    //#post(void openDialog()): init'ed(new InvitePopup(getWindow#1).parent)
    //#post(void openDialog()): possibly_updated(new InvitePopup(getWindow#1).parentWindow)
    //#post(void openDialog()): possibly_updated(new InvitePopup(getWindow#1).server)
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void openDialog()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void openDialog()): Effects-of-calling:initContent
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void openDialog()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void openDialog()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void openDialog()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void openDialog()): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void openDialog()): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void openDialog()): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void openDialog()): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void openDialog()): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void openDialog()): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void openDialog()): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void openDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setDefaultCloseOperation
            dialog = getWindow();
            dialog.setVisible(true);
    //#StatusbarPopupPanel.java:111: ?precondition failure
    //#    com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.setVisible: (soft) this.parentWindow != null
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void openDialog()
    //#    basic block: bb_2
    //#    assertion: (soft) this.dialog.parentWindow != null
    //#    callee: void com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.setVisible(bool)
    //#    callee assertion: (soft) this.parentWindow != null
    //#    callee file: StatusbarPopupWindow.java
    //#    callee precondition index: [5]
    //#    callee srcpos: 79
    //#    VN: this.dialog.parentWindow
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad  Soft  Uncertain
        }
    }
    //#StatusbarPopupPanel.java:113: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.openDialog()

    /**
     * Closes the information dialog.
     */
    protected final void closeDialog() {
        synchronized (StatusbarPopupPanel.this) {
    //#StatusbarPopupPanel.java:119: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.closeDialog()
    //#StatusbarPopupPanel.java:119: Warning: suspicious precondition
    //#    The precondition for this.dialog.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void closeDialog()
    //#    suspicious precondition index: [3]
    //#    Attribs:  Soft
    //#input(void closeDialog()): " ago"._tainted
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void closeDialog()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void closeDialog()): this
    //#input(void closeDialog()): this.__Lock
    //#input(void closeDialog()): this.dialog
    //#input(void closeDialog()): this.dialog.__Tag
    //#input(void closeDialog()): this.dialog.parent
    //#input(void closeDialog()): this.dialog.parentWindow
    //#input(void closeDialog()): this.dialog.server
    //#output(void closeDialog()): this.dialog
    //#pre[1] (void closeDialog()): init'ed(this.dialog)
    //#pre[3] (void closeDialog()): (soft) this.dialog.__Tag in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup, com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow}
    //#pre[4] (void closeDialog()): (soft) this.dialog.parent != null
    //#pre[5] (void closeDialog()): (soft) this.dialog.parentWindow != null
    //#post(void closeDialog()): this.dialog == null
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void closeDialog()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void closeDialog()): Effects-of-calling:initContent
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void closeDialog()): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void closeDialog()): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void closeDialog()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
            if (dialog != null) {
                dialog.setVisible(false);
                dialog.dispose();
    //#StatusbarPopupPanel.java:122: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void closeDialog()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose()
                dialog = null;
            }
        }
    }
    //#StatusbarPopupPanel.java:126: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.closeDialog()
    
    /**
     * Sets the text for this label.
     * 
     * @param text New text
     */
    public void setText(final String text) {
        label.setText(text);
    //#StatusbarPopupPanel.java:134: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.setText(String)
    //#input(void setText(String)): text
    //#input(void setText(String)): this
    //#input(void setText(String)): this.label
    //#pre[3] (void setText(String)): this.label != null
    }
    //#StatusbarPopupPanel.java:135: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.setText(String)

    /**
     * Retrieves the implementation of {@link StatusbarPopupWindow} that should
     * be shown by this panel when the user mouses over it.
     *
     * @return A concrete {@link StatusbarPopupWindow} implementation to use
     */
    protected abstract StatusbarPopupWindow getWindow();
    
    /** 
     * {@inheritDoc}
     * 
     * @param e Mouse event
     */
    @Override
    public void mouseClicked(final MouseEvent e) {
        // Don't care
    }
    //#StatusbarPopupPanel.java:153: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseClicked(MouseEvent)
    //#StatusbarPopupPanel.java:153: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseClicked(MouseEvent)

    /** 
     * {@inheritDoc}
     * 
     * @param e Mouse event
     */
    @Override
    public void mousePressed(final MouseEvent e) {
        // Don't care
    }
    //#StatusbarPopupPanel.java:163: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mousePressed(MouseEvent)
    //#StatusbarPopupPanel.java:163: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mousePressed(MouseEvent)

    /** 
     * {@inheritDoc}
     * 
     * @param e Mouse event
     */
    @Override
    public void mouseReleased(final MouseEvent e) {
        // Don't care
    }
    //#StatusbarPopupPanel.java:173: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseReleased(MouseEvent)
    //#StatusbarPopupPanel.java:173: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseReleased(MouseEvent)

    /** 
     * {@inheritDoc}
     * 
     * @param e Mouse event
     */
    @Override
    public void mouseEntered(final MouseEvent e) {
        setBackground(UIManager.getColor("ToolTip.background"));
    //#StatusbarPopupPanel.java:182: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseEntered(MouseEvent)
    //#StatusbarPopupPanel.java:182: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBackground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseEntered(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBackground(Color)
    //#StatusbarPopupPanel.java:182: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseEntered(MouseEvent)
    //#    suspicious precondition index: [3]
    //#input(void mouseEntered(MouseEvent)): " ago"._tainted
    //#input(void mouseEntered(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel]
    //#input(void mouseEntered(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel]
    //#input(void mouseEntered(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel]
    //#input(void mouseEntered(MouseEvent)): __Descendant_Table[others]
    //#input(void mouseEntered(MouseEvent)): __Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel.__Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void mouseEntered(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.java.awt.Dialog$ModalityType.MODELESS
    //#input(void mouseEntered(MouseEvent)): this
    //#input(void mouseEntered(MouseEvent)): this.__Tag
    //#input(void mouseEntered(MouseEvent)): this.dialog.__Tag
    //#input(void mouseEntered(MouseEvent)): this.dialog.parent
    //#input(void mouseEntered(MouseEvent)): this.dialog.server
    //#input(void mouseEntered(MouseEvent)): this.mainFrame
    //#output(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1) num objects
    //#output(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1).__Tag
    //#output(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1).parent
    //#output(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1).parentWindow
    //#output(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1).server
    //#output(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1) num objects
    //#output(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1).__Tag
    //#output(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1).parent
    //#output(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1).parentWindow
    //#output(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1).server
    //#output(void mouseEntered(MouseEvent)): this.dialog
    //#new obj(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1)
    //#new obj(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1)
    //#pre[3] (void mouseEntered(MouseEvent)): this.__Tag in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPanel, com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel}
    //#post(void mouseEntered(MouseEvent)): this.dialog != null
    //#post(void mouseEntered(MouseEvent)): new ErrorPopup(getWindow#1) num objects <= 1
    //#post(void mouseEntered(MouseEvent)): init'ed(new ErrorPopup(getWindow#1).__Tag)
    //#post(void mouseEntered(MouseEvent)): init'ed(new ErrorPopup(getWindow#1).parent)
    //#post(void mouseEntered(MouseEvent)): init'ed(new ErrorPopup(getWindow#1).parentWindow)
    //#post(void mouseEntered(MouseEvent)): init'ed(new ErrorPopup(getWindow#1).server)
    //#post(void mouseEntered(MouseEvent)): new InvitePopup(getWindow#1) num objects <= 1
    //#post(void mouseEntered(MouseEvent)): init'ed(new InvitePopup(getWindow#1).__Tag)
    //#post(void mouseEntered(MouseEvent)): init'ed(new InvitePopup(getWindow#1).parent)
    //#post(void mouseEntered(MouseEvent)): possibly_updated(new InvitePopup(getWindow#1).parentWindow)
    //#post(void mouseEntered(MouseEvent)): possibly_updated(new InvitePopup(getWindow#1).server)
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:initContent
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:getWindow
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setDefaultCloseOperation
        setForeground(UIManager.getColor("ToolTip.foreground"));
    //#StatusbarPopupPanel.java:183: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setForeground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseEntered(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setForeground(Color)
        setBorder(new ToplessEtchedBorder());
    //#StatusbarPopupPanel.java:184: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseEntered(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder(Border)

        openDialog();
    }
    //#StatusbarPopupPanel.java:187: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseEntered(MouseEvent)

    /** 
     * {@inheritDoc}
     * 
     * @param e Mouse event
     */
    @Override
    public void mouseExited(final MouseEvent e) {
        setBackground(null);
    //#StatusbarPopupPanel.java:196: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseExited(MouseEvent)
    //#StatusbarPopupPanel.java:196: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBackground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseExited(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBackground(Color)
    //#StatusbarPopupPanel.java:196: Warning: suspicious precondition
    //#    The precondition for this.dialog.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseExited(MouseEvent)
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#input(void mouseExited(MouseEvent)): " ago"._tainted
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void mouseExited(MouseEvent)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void mouseExited(MouseEvent)): this
    //#input(void mouseExited(MouseEvent)): this.dialog
    //#input(void mouseExited(MouseEvent)): this.dialog.__Tag
    //#input(void mouseExited(MouseEvent)): this.dialog.parent
    //#input(void mouseExited(MouseEvent)): this.dialog.parentWindow
    //#input(void mouseExited(MouseEvent)): this.dialog.server
    //#output(void mouseExited(MouseEvent)): this.dialog
    //#pre[1] (void mouseExited(MouseEvent)): init'ed(this.dialog)
    //#pre[4] (void mouseExited(MouseEvent)): (soft) this.dialog.__Tag in {com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup, com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup, com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow}
    //#pre[5] (void mouseExited(MouseEvent)): (soft) this.dialog.parent != null
    //#pre[6] (void mouseExited(MouseEvent)): (soft) this.dialog.parentWindow != null
    //#post(void mouseExited(MouseEvent)): this.dialog == null
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:initContent
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
        setForeground(null);
    //#StatusbarPopupPanel.java:197: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setForeground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseExited(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setForeground(Color)
        setBorder(new EtchedBorder());
    //#StatusbarPopupPanel.java:198: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
    //#    method: void mouseExited(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder(Border)

        closeDialog();
    }
    //#StatusbarPopupPanel.java:201: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.mouseExited(MouseEvent)
    
    /**
     * An {@link EtchedBorder} with no top.
     */
    private static class ToplessEtchedBorder extends EtchedBorder {
    //#StatusbarPopupPanel.java:206: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder()
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder()): this
    //#StatusbarPopupPanel.java:206: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder()
    //#StatusbarPopupPanel.java:206: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder(StatusbarPopupPanel$1)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder(StatusbarPopupPanel$1)): this
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder(StatusbarPopupPanel$1)): Effects-of-calling:javax.swing.border.EtchedBorder
    //#StatusbarPopupPanel.java:206: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder(StatusbarPopupPanel$1)

        /**
         * 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;

        /** {@inheritDoc} */
        @Override
        public void paintBorder(final Component c, final Graphics g,
                final int x, final int y, final int width, final int height) {
            int w = width;
    //#StatusbarPopupPanel.java:219: method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.paintBorder(Component, Graphics, int, int, int, int)
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): c
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): g
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): height
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): java.awt.Color.WHITE
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): this
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): this.etchType
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): width
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): x
    //#input(void paintBorder(Component, Graphics, int, int, int, int)): y
    //#pre[2] (void paintBorder(Component, Graphics, int, int, int, int)): g != null
    //#pre[3] (void paintBorder(Component, Graphics, int, int, int, int)): height >= -2_147_483_646
    //#pre[5] (void paintBorder(Component, Graphics, int, int, int, int)): init'ed(this.etchType)
    //#pre[6] (void paintBorder(Component, Graphics, int, int, int, int)): width >= -2_147_483_646
    //#pre[7] (void paintBorder(Component, Graphics, int, int, int, int)): x <= 2_147_483_648
    //#pre[8] (void paintBorder(Component, Graphics, int, int, int, int)): y <= 2_147_483_648
    //#presumption(void paintBorder(Component, Graphics, int, int, int, int)): init'ed(java.awt.Color.WHITE)
    //#test_vector(void paintBorder(Component, Graphics, int, int, int, int)): this.etchType: {-2_147_483_648..0, 2..4_294_967_295}, {1}
            int h = height;

            g.translate(x, y);

            g.setColor(etchType == LOWERED? getShadowColor(c) : getHighlightColor(c));
    //#StatusbarPopupPanel.java:224: Warning: method not available - call not analyzed
    //#    call on Color com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder:getHighlightColor(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder
    //#    method: void paintBorder(Component, Graphics, int, int, int, int)
    //#    unanalyzed callee: Color com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder:getHighlightColor(Component)
    //#StatusbarPopupPanel.java:224: Warning: method not available - call not analyzed
    //#    call on Color com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder:getShadowColor(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder
    //#    method: void paintBorder(Component, Graphics, int, int, int, int)
    //#    unanalyzed callee: Color com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder:getShadowColor(Component)
            g.drawLine(0, h-2, w, h-2);
            g.drawLine(0, 0, 0, h-1);
            g.drawLine(w-2, 0, w-2, h-1);

            g.setColor(Color.WHITE);
            g.drawLine(0, h-1, w, h-1);
            g.drawLine(w-1, 0, w-1, h-1);

            g.translate(-x, -y);
        }
    //#StatusbarPopupPanel.java:234: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.paintBorder(Component, Graphics, int, int, int, int)

    }
}    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel$ToplessEtchedBorder]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder__static_init): __Dispatch_Table.paintBorder(Ljava/awt/Component;Ljava/awt/Graphics;IIII)V
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel$ToplessEtchedBorder] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder__static_init): __Dispatch_Table.paintBorder(Ljava/awt/Component;Ljava/awt/Graphics;IIII)V == &paintBorder
    //#StatusbarPopupPanel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder__static_init
    //#StatusbarPopupPanel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$ToplessEtchedBorder
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel$1]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1__static_init): __Dispatch_Table.run()V == &run
    //#StatusbarPopupPanel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1__static_init
    //#StatusbarPopupPanel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel$1
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.closeDialog()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.openDialog()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.refreshDialog()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.setText(Ljava/lang/String;)V
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.closeDialog()V == &closeDialog
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow; == &getWindow
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V == &mouseClicked
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V == &mouseEntered
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V == &mouseExited
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V == &mousePressed
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V == &mouseReleased
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.openDialog()V == &openDialog
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.refreshDialog()V == &refreshDialog
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init): __Dispatch_Table.setText(Ljava/lang/String;)V == &setText
    //#StatusbarPopupPanel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel.com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel__static_init
    //#StatusbarPopupPanel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel
