//# 0 errors, 818 messages
//#
/*
    //#InviteLabel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#InviteLabel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init
    //#InviteLabel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2
    //#InviteLabel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2__static_init
    //#InviteLabel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1
    //#InviteLabel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1__static_init
    //#InviteLabel.java:1:1: class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#InviteLabel.java:1:1: method: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__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.FrameContainer;
import com.dmdirc.ui.IconManager;
import com.dmdirc.Invite;
import com.dmdirc.Server;
import com.dmdirc.ServerManager;
import com.dmdirc.actions.ActionManager;
import com.dmdirc.actions.interfaces.ActionType;
import com.dmdirc.actions.CoreActionType;
import com.dmdirc.addons.ui_swing.MainFrame;
import com.dmdirc.interfaces.ActionListener;
import com.dmdirc.interfaces.InviteListener;
import com.dmdirc.ui.interfaces.StatusBarComponent;
import com.dmdirc.util.MapList;

import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;


/**
 * Invite label.
 */
public class InviteLabel extends StatusbarPopupPanel implements StatusBarComponent,
    //#InviteLabel.java:56: method: MapList com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.access$000(InviteLabel)
    //#input(MapList access$000(InviteLabel)): x0
    //#input(MapList access$000(InviteLabel)): x0.inviteList
    //#output(MapList access$000(InviteLabel)): return_value
    //#pre[1] (MapList access$000(InviteLabel)): x0 != null
    //#post(MapList access$000(InviteLabel)): return_value == x0.inviteList
    //#post(MapList access$000(InviteLabel)): init'ed(return_value)
    //#InviteLabel.java:56: end of method: MapList com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.access$000(InviteLabel)
        InviteListener, 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;
    /** Active server. */
    private Server activeServer;
    /** Invite map list. */
    private final MapList<Server, Invite> inviteList;
    /** Invite popup menu. */
    private final JPopupMenu menu;
    /** Dismiss invites menu item. */
    private final JMenuItem dismiss;
    /** Accept invites menu item. */
    private final JMenuItem accept;
    /** Parent window. */
    private MainFrame mainFrame;
    /** Active frame. */
    private FrameContainer activeFrame;

    /**
     * Instantiates a new invite label.
     * 
     * @param mainFrame Parent window
     */
    public InviteLabel(final MainFrame mainFrame) {
        super(new JLabel());
    //#InviteLabel.java:86: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): " ago"._tainted
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.actions.CoreActionType.CLIENT_FRAME_CHANGED
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.actions.CoreActionType.SERVER_CONNECTED
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.actions.CoreActionType.SERVER_CONNECTERROR
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.actions.CoreActionType.SERVER_DISCONNECTED
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): mainFrame
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JLabel(InviteLabel#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JMenuItem(InviteLabel#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JMenuItem(InviteLabel#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JPopupMenu(InviteLabel#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new MapList(InviteLabel#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.__Lock
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.accept
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.activeFrame
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.activeServer
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.dialog
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.dismiss
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.inviteList
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.label
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.mainFrame
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.menu
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JLabel(InviteLabel#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JMenuItem(InviteLabel#4)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JMenuItem(InviteLabel#6)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JPopupMenu(InviteLabel#3)
    //#new obj(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new MapList(InviteLabel#2)
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.ServerManager:getServerManager(...)@125 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.ServerManager:getServers(...)@125 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(com.dmdirc.actions.CoreActionType.CLIENT_FRAME_CHANGED)
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(com.dmdirc.actions.CoreActionType.SERVER_CONNECTED)
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(com.dmdirc.actions.CoreActionType.SERVER_CONNECTERROR)
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(com.dmdirc.actions.CoreActionType.SERVER_DISCONNECTED)
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): com.dmdirc.ui.IconManager:getIconManager(...)@91 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): java.util.Iterator:next(...)@125 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.dialog.__Tag@133 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 com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.dialog.parent@133 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.dialog.parentWindow@133 != null
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(this.__Lock)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.accept == &new JMenuItem(InviteLabel#6)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(this.activeFrame)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(this.activeServer)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(this.dialog)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.dismiss == &new JMenuItem(InviteLabel#4)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.inviteList == &new MapList(InviteLabel#2)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.label == &new JLabel(InviteLabel#1)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.mainFrame == mainFrame
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): init'ed(this.mainFrame)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): this.menu == &new JPopupMenu(InviteLabel#3)
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JLabel(InviteLabel#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JMenuItem(InviteLabel#4) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JMenuItem(InviteLabel#6) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new JPopupMenu(InviteLabel#3) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): new MapList(InviteLabel#2) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.Server:addInviteListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:closeDialog
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:refreshDialog
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:initContent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:javax.swing.BorderFactory:createEtchedBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setBorder
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:setLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:add
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupPanel:addMouseListener
    //#test_vector(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)): java.util.Iterator:hasNext(...)@125: {0}, {1}
        
        this.mainFrame = mainFrame;

        setBorder(BorderFactory.createEtchedBorder());
    //#InviteLabel.java:90: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setBorder(Border)
        label.setIcon(IconManager.getIconManager().getIcon("invite"));
    //#InviteLabel.java:91: 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.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: IconManager com.dmdirc.ui.IconManager:getIconManager()
    //#InviteLabel.java:91: Warning: method not available - call not analyzed
    //#    call on Icon com.dmdirc.ui.IconManager:getIcon(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: Icon com.dmdirc.ui.IconManager:getIcon(String)

        inviteList = new MapList<Server, Invite>();
    //#InviteLabel.java:93: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.util.MapList()
        menu = new JPopupMenu();
        dismiss = new JMenuItem("Dismiss all invites");
        dismiss.addActionListener(new java.awt.event.ActionListener() {
    //#InviteLabel.java:96: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)): init'ed(this.this$0)
    //#InviteLabel.java:96: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1(InviteLabel)

            /** {@inheritDoc} */
            @Override
            public void actionPerformed(final ActionEvent e) {
                for (Server server : inviteList.keySet()) {
    //#InviteLabel.java:101: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1.actionPerformed(ActionEvent)
    //#InviteLabel.java:101: Warning: method not available - call not analyzed
    //#    call on Set com.dmdirc.util.MapList:keySet()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Set com.dmdirc.util.MapList:keySet()
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.this$0
    //#input(void actionPerformed(ActionEvent)): this.this$0.inviteList
    //#pre[2] (void actionPerformed(ActionEvent)): this.this$0 != null
    //#pre[3] (void actionPerformed(ActionEvent)): this.inviteList != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.Invite:getServer(...)@104 != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.util.MapList:keySet(...)@101 != null
    //#presumption(void actionPerformed(ActionEvent)): java.util.Iterator:next(...)@103 != null
    //#test_vector(void actionPerformed(ActionEvent)): java.util.Iterator:hasNext(...)@101: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.util.Iterator:hasNext(...)@103: {0}, {1}
                    final List<Invite> invites = new ArrayList<Invite>(inviteList.values(server));
    //#InviteLabel.java:102: Warning: method not available - call not analyzed
    //#    call on Collection com.dmdirc.util.MapList:values(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Collection com.dmdirc.util.MapList:values(Object)
                    for (Invite invite : invites) {
                        invite.getServer().removeInvite(invite);
    //#InviteLabel.java:104: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.Invite:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Server com.dmdirc.Invite:getServer()
    //#InviteLabel.java:104: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:removeInvite(Invite)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.Server:removeInvite(Invite)
                    }
                }
            }
    //#InviteLabel.java:107: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1.actionPerformed(ActionEvent)
        });

        accept = new JMenuItem("Accept all invites");
        accept.addActionListener(new java.awt.event.ActionListener() {
    //#InviteLabel.java:111: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)): init'ed(this.this$0)
    //#InviteLabel.java:111: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2(InviteLabel)

            /** {@inheritDoc} */
            @Override
            public void actionPerformed(final ActionEvent e) {
                for (Server server : inviteList.keySet()) {
    //#InviteLabel.java:116: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2.actionPerformed(ActionEvent)
    //#InviteLabel.java:116: Warning: method not available - call not analyzed
    //#    call on Set com.dmdirc.util.MapList:keySet()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Set com.dmdirc.util.MapList:keySet()
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.this$0
    //#input(void actionPerformed(ActionEvent)): this.this$0.inviteList
    //#pre[2] (void actionPerformed(ActionEvent)): this.this$0 != null
    //#pre[3] (void actionPerformed(ActionEvent)): this.inviteList != null
    //#presumption(void actionPerformed(ActionEvent)): com.dmdirc.util.MapList:keySet(...)@116 != null
    //#presumption(void actionPerformed(ActionEvent)): java.util.Iterator:next(...)@118 != null
    //#test_vector(void actionPerformed(ActionEvent)): java.util.Iterator:hasNext(...)@116: {0}, {1}
    //#test_vector(void actionPerformed(ActionEvent)): java.util.Iterator:hasNext(...)@118: {0}, {1}
                    final List<Invite> invites = new ArrayList<Invite>(inviteList.values(server));
    //#InviteLabel.java:117: Warning: method not available - call not analyzed
    //#    call on Collection com.dmdirc.util.MapList:values(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: Collection com.dmdirc.util.MapList:values(Object)
                    for (Invite invite : invites) {
                        invite.accept();
    //#InviteLabel.java:119: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Invite:accept()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.Invite:accept()
                    }
                }
            }
    //#InviteLabel.java:122: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2.actionPerformed(ActionEvent)
        });

        for (Server server : ServerManager.getServerManager().getServers()) {
    //#InviteLabel.java:125: Warning: method not available - call not analyzed
    //#    call on ServerManager com.dmdirc.ServerManager:getServerManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: ServerManager com.dmdirc.ServerManager:getServerManager()
    //#InviteLabel.java:125: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.ServerManager:getServers()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: List com.dmdirc.ServerManager:getServers()
            inviteList.add(server, server.getInvites());
    //#InviteLabel.java:126: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.Server:getInvites()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: List com.dmdirc.Server:getInvites()
    //#InviteLabel.java:126: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList:add(Object, Collection)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.util.MapList:add(Object, Collection)
            server.addInviteListener(this);
    //#InviteLabel.java:127: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:addInviteListener(InviteListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.Server:addInviteListener(InviteListener)
        }

        ActionManager.addListener(this, CoreActionType.CLIENT_FRAME_CHANGED);
    //#InviteLabel.java:130: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
        ActionManager.addListener(this, CoreActionType.SERVER_CONNECTED);
    //#InviteLabel.java:131: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
        ActionManager.addListener(this, CoreActionType.SERVER_DISCONNECTED);
    //#InviteLabel.java:132: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
        ActionManager.addListener(this, CoreActionType.SERVER_CONNECTERROR);
    //#InviteLabel.java:133: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:addListener(ActionListener, ActionType[])

        update();
    }
    //#InviteLabel.java:136: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel(MainFrame)

    /** {@inheritDoc} */
    @Override
    protected StatusbarPopupWindow getWindow() {
        return new InvitePopup(this, activeServer, mainFrame);
    //#InviteLabel.java:141: method: StatusbarPopupWindow com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.getWindow()
    //#input(StatusbarPopupWindow getWindow()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.java.awt.Dialog$ModalityType.MODELESS
    //#input(StatusbarPopupWindow getWindow()): this
    //#input(StatusbarPopupWindow getWindow()): this.activeServer
    //#input(StatusbarPopupWindow getWindow()): this.mainFrame
    //#output(StatusbarPopupWindow getWindow()): new InvitePopup(getWindow#1) num objects
    //#output(StatusbarPopupWindow getWindow()): return_value.__Tag
    //#output(StatusbarPopupWindow getWindow()): return_value.parent
    //#output(StatusbarPopupWindow getWindow()): return_value.parentWindow
    //#output(StatusbarPopupWindow getWindow()): return_value.server
    //#output(StatusbarPopupWindow getWindow()): return_value
    //#new obj(StatusbarPopupWindow getWindow()): new InvitePopup(getWindow#1)
    //#pre[2] (StatusbarPopupWindow getWindow()): init'ed(this.activeServer)
    //#pre[3] (StatusbarPopupWindow getWindow()): init'ed(this.mainFrame)
    //#post(StatusbarPopupWindow getWindow()): return_value == &new InvitePopup(getWindow#1)
    //#post(StatusbarPopupWindow getWindow()): new InvitePopup(getWindow#1) num objects == 1
    //#post(StatusbarPopupWindow getWindow()): return_value.__Tag == com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup
    //#post(StatusbarPopupWindow getWindow()): return_value.parent == this
    //#post(StatusbarPopupWindow getWindow()): return_value.parent != null
    //#post(StatusbarPopupWindow getWindow()): return_value.parentWindow == this.mainFrame
    //#post(StatusbarPopupWindow getWindow()): init'ed(return_value.parentWindow)
    //#post(StatusbarPopupWindow getWindow()): return_value.server == this.activeServer
    //#post(StatusbarPopupWindow getWindow()): init'ed(return_value.server)
    //#unanalyzed(StatusbarPopupWindow getWindow()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow
    //#unanalyzed(StatusbarPopupWindow getWindow()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog
    //#unanalyzed(StatusbarPopupWindow getWindow()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setDefaultCloseOperation
    //#InviteLabel.java:141: end of method: StatusbarPopupWindow com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.getWindow()
    }

    /**
     * Popuplates the menu.
     */
    private void popuplateMenu() {
        menu.removeAll();
    //#InviteLabel.java:148: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.popuplateMenu()
    //#input(void popuplateMenu()): " ("._tainted
    //#input(void popuplateMenu()): ")"._tainted
    //#input(void popuplateMenu()): this
    //#input(void popuplateMenu()): this.accept
    //#input(void popuplateMenu()): this.activeServer
    //#input(void popuplateMenu()): this.dismiss
    //#input(void popuplateMenu()): this.menu
    //#pre[3] (void popuplateMenu()): this.activeServer != null
    //#pre[5] (void popuplateMenu()): this.menu != null
    //#presumption(void popuplateMenu()): com.dmdirc.Server:getInvites(...)@150 != null
    //#presumption(void popuplateMenu()): java.util.Iterator:next(...)@151 != null
    //#unanalyzed(void popuplateMenu()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void popuplateMenu()): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void popuplateMenu()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void popuplateMenu()): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void popuplateMenu()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void popuplateMenu()): Effects-of-calling:javax.swing.AbstractAction
    //#test_vector(void popuplateMenu()): java.util.Iterator:hasNext(...)@151: {0}, {1}

        final List<Invite> invites = activeServer.getInvites();
    //#InviteLabel.java:150: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.Server:getInvites()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void popuplateMenu()
    //#    unanalyzed callee: List com.dmdirc.Server:getInvites()
        for (Invite invite : invites) {
            menu.add(new JMenuItem(new InviteAction(invite)));
        }
        menu.add(new JSeparator());
        menu.add(accept);
        menu.add(dismiss);
    }
    //#InviteLabel.java:157: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.popuplateMenu()

    /**
     * Updates the invite label for the currently active server.
     */
    private void update() {
        if (activeFrame == null) {
    //#InviteLabel.java:163: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.update()
    //#InviteLabel.java:163: 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.InviteLabel
    //#    method: void update()
    //#    suspicious precondition index: [5]
    //#    Attribs:  Soft
    //#input(void update()): " ago"._tainted
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void update()): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void update()): this
    //#input(void update()): this.activeFrame
    //#input(void update()): this.dialog
    //#input(void update()): this.dialog.__Tag
    //#input(void update()): this.dialog.parent
    //#input(void update()): this.dialog.parentWindow
    //#input(void update()): this.dialog.server
    //#input(void update()): this.inviteList
    //#output(void update()): this.activeServer
    //#output(void update()): this.dialog
    //#pre[4] (void update()): init'ed(this.activeFrame)
    //#pre[1] (void update()): (soft) init'ed(this.dialog)
    //#pre[5] (void update()): (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[6] (void update()): (soft) this.dialog.parent != null
    //#pre[7] (void update()): (soft) this.dialog.parentWindow != null
    //#pre[9] (void update()): (soft) this.inviteList != null
    //#presumption(void update()): com.dmdirc.util.MapList:get(...)@173 != null
    //#post(void update()): init'ed(this.activeServer)
    //#post(void update()): this.dialog == One-of{old this.dialog, null}
    //#post(void update()): init'ed(this.dialog)
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void update()): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void update()): Effects-of-calling:initContent
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void update()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void update()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void update()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void update()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void update()): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void update()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void update()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void update()): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void update()): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void update()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void update()): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void update()): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void update()): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void update()): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void update()): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void update()): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void update()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void update()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#test_vector(void update()): this.activeFrame: Inverse{null}, Addr_Set{null}
    //#test_vector(void update()): com.dmdirc.util.MapList:containsKey(...)@168: {1}, {0}
    //#test_vector(void update()): java.util.List:isEmpty(...)@173: {0}, {1}
            activeServer = null;
        } else {
            activeServer = activeFrame.getServer();
    //#InviteLabel.java:166: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.FrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: Server com.dmdirc.FrameContainer:getServer()
        }
        if (activeServer != null && !inviteList.containsKey(activeServer)) {
    //#InviteLabel.java:168: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.util.MapList:containsKey(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: bool com.dmdirc.util.MapList:containsKey(Object)
            inviteList.add(activeServer, activeServer.getInvites());
    //#InviteLabel.java:169: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.Server:getInvites()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: List com.dmdirc.Server:getInvites()
    //#InviteLabel.java:169: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList:add(Object, Collection)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: void com.dmdirc.util.MapList:add(Object, Collection)
            activeServer.addInviteListener(this);
    //#InviteLabel.java:170: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:addInviteListener(InviteListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: void com.dmdirc.Server:addInviteListener(InviteListener)
        }

        if (activeServer == null || inviteList.get(activeServer).isEmpty()) {
    //#InviteLabel.java:173: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.util.MapList:get(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: List com.dmdirc.util.MapList:get(Object)
            setVisible(false);
    //#InviteLabel.java:174: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible(bool)
            closeDialog();
        } else {
            refreshDialog();
            setVisible(true);
    //#InviteLabel.java:178: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void update()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible(bool)
        }
    }
    //#InviteLabel.java:180: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.update()

    /** {@inheritDoc} */
    @Override
    public void inviteReceived(final Server server, final Invite invite) {
        if (!inviteList.containsKey(server)) {
    //#InviteLabel.java:185: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.inviteReceived(Server, Invite)
    //#InviteLabel.java:185: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.util.MapList:containsKey(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void inviteReceived(Server, Invite)
    //#    unanalyzed callee: bool com.dmdirc.util.MapList:containsKey(Object)
    //#InviteLabel.java:185: 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.InviteLabel
    //#    method: void inviteReceived(Server, Invite)
    //#    suspicious precondition index: [7]
    //#    Attribs:  Soft
    //#input(void inviteReceived(Server, Invite)): " ago"._tainted
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void inviteReceived(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void inviteReceived(Server, Invite)): invite
    //#input(void inviteReceived(Server, Invite)): server
    //#input(void inviteReceived(Server, Invite)): this
    //#input(void inviteReceived(Server, Invite)): this.activeFrame
    //#input(void inviteReceived(Server, Invite)): this.dialog
    //#input(void inviteReceived(Server, Invite)): this.dialog.__Tag
    //#input(void inviteReceived(Server, Invite)): this.dialog.parent
    //#input(void inviteReceived(Server, Invite)): this.dialog.parentWindow
    //#input(void inviteReceived(Server, Invite)): this.dialog.server
    //#input(void inviteReceived(Server, Invite)): this.inviteList
    //#output(void inviteReceived(Server, Invite)): this.activeServer
    //#output(void inviteReceived(Server, Invite)): this.dialog
    //#pre[6] (void inviteReceived(Server, Invite)): init'ed(this.activeFrame)
    //#pre[11] (void inviteReceived(Server, Invite)): this.inviteList != null
    //#pre[2] (void inviteReceived(Server, Invite)): (soft) init'ed(this.dialog)
    //#pre[7] (void inviteReceived(Server, Invite)): (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 inviteReceived(Server, Invite)): (soft) this.dialog.parent != null
    //#pre[9] (void inviteReceived(Server, Invite)): (soft) this.dialog.parentWindow != null
    //#post(void inviteReceived(Server, Invite)): init'ed(this.activeServer)
    //#post(void inviteReceived(Server, Invite)): this.dialog == One-of{old this.dialog, null}
    //#post(void inviteReceived(Server, Invite)): init'ed(this.dialog)
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.Server:addInviteListener
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:closeDialog
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:refreshDialog
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:initContent
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void inviteReceived(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#test_vector(void inviteReceived(Server, Invite)): com.dmdirc.util.MapList:containsKey(...)@185: {1}, {0}
            inviteList.add(server);
    //#InviteLabel.java:186: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList:add(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void inviteReceived(Server, Invite)
    //#    unanalyzed callee: void com.dmdirc.util.MapList:add(Object)
        }
        inviteList.add(server, invite);
    //#InviteLabel.java:188: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList:add(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void inviteReceived(Server, Invite)
    //#    unanalyzed callee: void com.dmdirc.util.MapList:add(Object, Object)
        update();
    }
    //#InviteLabel.java:190: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.inviteReceived(Server, Invite)

    /** {@inheritDoc} */
    @Override
    public void inviteExpired(final Server server, final Invite invite) {
        if (!inviteList.containsKey(server)) {
    //#InviteLabel.java:195: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.inviteExpired(Server, Invite)
    //#InviteLabel.java:195: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.util.MapList:containsKey(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void inviteExpired(Server, Invite)
    //#    unanalyzed callee: bool com.dmdirc.util.MapList:containsKey(Object)
    //#InviteLabel.java:195: 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.InviteLabel
    //#    method: void inviteExpired(Server, Invite)
    //#    suspicious precondition index: [7]
    //#    Attribs:  Soft
    //#input(void inviteExpired(Server, Invite)): " ago"._tainted
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void inviteExpired(Server, Invite)): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void inviteExpired(Server, Invite)): invite
    //#input(void inviteExpired(Server, Invite)): server
    //#input(void inviteExpired(Server, Invite)): this
    //#input(void inviteExpired(Server, Invite)): this.activeFrame
    //#input(void inviteExpired(Server, Invite)): this.dialog
    //#input(void inviteExpired(Server, Invite)): this.dialog.__Tag
    //#input(void inviteExpired(Server, Invite)): this.dialog.parent
    //#input(void inviteExpired(Server, Invite)): this.dialog.parentWindow
    //#input(void inviteExpired(Server, Invite)): this.dialog.server
    //#input(void inviteExpired(Server, Invite)): this.inviteList
    //#output(void inviteExpired(Server, Invite)): this.activeServer
    //#output(void inviteExpired(Server, Invite)): this.dialog
    //#pre[6] (void inviteExpired(Server, Invite)): init'ed(this.activeFrame)
    //#pre[11] (void inviteExpired(Server, Invite)): this.inviteList != null
    //#pre[2] (void inviteExpired(Server, Invite)): (soft) init'ed(this.dialog)
    //#pre[7] (void inviteExpired(Server, Invite)): (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 inviteExpired(Server, Invite)): (soft) this.dialog.parent != null
    //#pre[9] (void inviteExpired(Server, Invite)): (soft) this.dialog.parentWindow != null
    //#post(void inviteExpired(Server, Invite)): init'ed(this.activeServer)
    //#post(void inviteExpired(Server, Invite)): this.dialog == One-of{old this.dialog, null}
    //#post(void inviteExpired(Server, Invite)): init'ed(this.dialog)
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.Server:addInviteListener
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:closeDialog
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:refreshDialog
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:initContent
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void inviteExpired(Server, Invite)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#test_vector(void inviteExpired(Server, Invite)): com.dmdirc.util.MapList:containsKey(...)@195: {1}, {0}
            inviteList.add(server);
    //#InviteLabel.java:196: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList:add(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void inviteExpired(Server, Invite)
    //#    unanalyzed callee: void com.dmdirc.util.MapList:add(Object)
        }
        inviteList.remove(server, invite);
    //#InviteLabel.java:198: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.MapList:remove(Object, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void inviteExpired(Server, Invite)
    //#    unanalyzed callee: void com.dmdirc.util.MapList:remove(Object, Object)
        update();
    }
    //#InviteLabel.java:200: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.inviteExpired(Server, Invite)

    /** {@inheritDoc} */
    @Override
    public void processEvent(final ActionType type, final StringBuffer format,
            final Object... arguments) {
        if (type == CoreActionType.CLIENT_FRAME_CHANGED) {
    //#InviteLabel.java:206: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.processEvent(ActionType, StringBuffer, Object[])
    //#InviteLabel.java:206: 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.InviteLabel
    //#    method: void processEvent(ActionType, StringBuffer, Object[])
    //#    suspicious precondition index: [9]
    //#    Attribs:  Soft
    //#input(void processEvent(ActionType, StringBuffer, Object[])): " ago"._tainted
    //#input(void processEvent(ActionType, StringBuffer, Object[])): arguments
    //#input(void processEvent(ActionType, StringBuffer, Object[])): arguments.length
    //#input(void processEvent(ActionType, StringBuffer, Object[])): arguments[0]
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com.dmdirc.actions.CoreActionType.CLIENT_FRAME_CHANGED
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com.dmdirc.actions.CoreActionType.SERVER_CONNECTED
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup.__Dispatch_Table.setVisible(Z)V
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup.__Dispatch_Table.setVisible(Z)V
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/ErrorPopup]
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InvitePopup]
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow]
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Descendant_Table[others]
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.initContent(Ljavax/swing/JPanel;)V
    //#input(void processEvent(ActionType, StringBuffer, Object[])): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow.__Dispatch_Table.setVisible(Z)V
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.dialog
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.dialog.__Tag
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.dialog.parent
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.dialog.parentWindow
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.dialog.server
    //#input(void processEvent(ActionType, StringBuffer, Object[])): this.inviteList
    //#input(void processEvent(ActionType, StringBuffer, Object[])): type
    //#output(void processEvent(ActionType, StringBuffer, Object[])): this.activeFrame
    //#output(void processEvent(ActionType, StringBuffer, Object[])): this.activeServer
    //#output(void processEvent(ActionType, StringBuffer, Object[])): this.dialog
    //#pre[1] (void processEvent(ActionType, StringBuffer, Object[])): arguments != null
    //#pre[2] (void processEvent(ActionType, StringBuffer, Object[])): arguments.length >= 1
    //#pre[3] (void processEvent(ActionType, StringBuffer, Object[])): init'ed(arguments[0])
    //#pre[6] (void processEvent(ActionType, StringBuffer, Object[])): (soft) init'ed(this.dialog)
    //#pre[9] (void processEvent(ActionType, StringBuffer, Object[])): (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[10] (void processEvent(ActionType, StringBuffer, Object[])): (soft) this.dialog.parent != null
    //#pre[11] (void processEvent(ActionType, StringBuffer, Object[])): (soft) this.dialog.parentWindow != null
    //#pre[13] (void processEvent(ActionType, StringBuffer, Object[])): (soft) this.inviteList != null
    //#presumption(void processEvent(ActionType, StringBuffer, Object[])): init'ed(com.dmdirc.actions.CoreActionType.CLIENT_FRAME_CHANGED)
    //#presumption(void processEvent(ActionType, StringBuffer, Object[])): init'ed(com.dmdirc.actions.CoreActionType.SERVER_CONNECTED)
    //#post(void processEvent(ActionType, StringBuffer, Object[])): this.activeFrame == One-of{old this.activeFrame, arguments[0]}
    //#post(void processEvent(ActionType, StringBuffer, Object[])): possibly_updated(this.activeServer)
    //#post(void processEvent(ActionType, StringBuffer, Object[])): this.dialog == One-of{old this.dialog, null}
    //#post(void processEvent(ActionType, StringBuffer, Object[])): init'ed(this.dialog)
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.util.MapList:add
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.Server:addInviteListener
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.util.List:isEmpty
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel:setVisible
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:closeDialog
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:refreshDialog
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:net.miginfocom.swing.MigLayout
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:setLayout
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.UIManager:getColor
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:setBackground
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:setForeground
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:initContent
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:add
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.System:currentTimeMillis
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.Invite:getTimestamp
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatDuration
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrorManager
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorManager:getErrors
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.util.MapList
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ProgramError:getLevel
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ProgramError:getReportStatus
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JLabel:getFont
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.awt.Font:deriveFont
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JLabel:setFont
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorLevel:values
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.util.MapList:values
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.util.Collection:size
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorLevel:toString
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorLevel:getIcon
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:values
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.logger.ErrorReportStatus:toString
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:add
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setUndecorated
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusableWindowState
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setFocusable
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setResizable
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:pack
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:getLocationOnScreen
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:getWidth
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getWidth
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:getHeight
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.awt.Point:translate
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.awt.Window:getLocationOnScreen
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.awt.Window:getWidth
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.Math:max
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:setLocation
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:javax.swing.JPanel:setBorder
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.StandardDialog:setVisible
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.components.statusbar.StatusbarPopupWindow:dispose
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void processEvent(ActionType, StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
            if (arguments[0] instanceof FrameContainer) {
            activeFrame = (FrameContainer) arguments[0];
                update();
            }
        } else if (type == CoreActionType.SERVER_CONNECTED) {
            if (arguments[0] instanceof Server) {
                ((Server) arguments[0]).addInviteListener(this);
    //#InviteLabel.java:213: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:addInviteListener(InviteListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void processEvent(ActionType, StringBuffer, Object[])
    //#    unanalyzed callee: void com.dmdirc.Server:addInviteListener(InviteListener)
            }
        } else {
            if (arguments[0] instanceof Server) {
                ((Server) arguments[0]).removeInviteListener(this);
    //#InviteLabel.java:217: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:removeInviteListener(InviteListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
    //#    method: void processEvent(ActionType, StringBuffer, Object[])
    //#    unanalyzed callee: void com.dmdirc.Server:removeInviteListener(InviteListener)
            }
        }
    }
    //#InviteLabel.java:220: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.processEvent(ActionType, StringBuffer, Object[])

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseClicked(final MouseEvent e) {
        super.mouseClicked(e);
    //#InviteLabel.java:229: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.mouseClicked(MouseEvent)
    //#input(void mouseClicked(MouseEvent)): " ("._tainted
    //#input(void mouseClicked(MouseEvent)): ")"._tainted
    //#input(void mouseClicked(MouseEvent)): e
    //#input(void mouseClicked(MouseEvent)): this
    //#input(void mouseClicked(MouseEvent)): this.accept
    //#input(void mouseClicked(MouseEvent)): this.activeServer
    //#input(void mouseClicked(MouseEvent)): this.dismiss
    //#input(void mouseClicked(MouseEvent)): this.menu
    //#pre[4] (void mouseClicked(MouseEvent)): this.activeServer != null
    //#pre[6] (void mouseClicked(MouseEvent)): this.menu != null
    //#pre[1] (void mouseClicked(MouseEvent)): (soft) e != null
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Server:getInvites
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:removeAll
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getChannel
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Invite:getSource
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.AbstractAction
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:add
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JSeparator
    //#test_vector(void mouseClicked(MouseEvent)): javax.swing.JPopupMenu:getComponentCount(...)@231: {-2_147_483_648..0}, {1..4_294_967_295}
        popuplateMenu();
        if (menu.getComponentCount() > 0) {
            menu.show(this, e.getX(), e.getY());
        }
    }
    //#InviteLabel.java:234: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.mouseClicked(MouseEvent)

}
/**
 * Invite action.
 */
class InviteAction extends AbstractAction {

    /**
     * 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;
    /** Invite. */
    private final Invite invite;

    /**
     * Instantiates a new invite action.
     *
     * @param invite Invite for the action
     */
    public InviteAction(final Invite invite) {
        super(invite.getChannel() + " (" + invite.getSource()[0] + ")");
    //#InviteLabel.java:257: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)
    //#InviteLabel.java:257: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.Invite:getChannel()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)
    //#    unanalyzed callee: String com.dmdirc.Invite:getChannel()
    //#InviteLabel.java:257: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.Invite:getSource()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#    method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)
    //#    unanalyzed callee: String[] com.dmdirc.Invite:getSource()
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): " ("._tainted
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): ")"._tainted
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): invite
    //#input(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): this
    //#output(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): this.invite
    //#pre[1] (void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): invite != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): com.dmdirc.Invite:getSource(...).length@257 >= 1
    //#presumption(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): com.dmdirc.Invite:getSource(...)@257 != null
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): this.invite == invite
    //#post(void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)): this.invite != null

        this.invite = invite;
    }
    //#InviteLabel.java:260: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.com.dmdirc.addons.ui_swing.components.statusbar.InviteAction(Invite)

    /**
     * {@inheritDoc}
     *
     * @param e Action event
     */
    @Override
    public void actionPerformed(final ActionEvent e) {
        invite.accept();
    //#InviteLabel.java:269: method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.actionPerformed(ActionEvent)
    //#InviteLabel.java:269: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Invite:accept()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#    method: void actionPerformed(ActionEvent)
    //#    unanalyzed callee: void com.dmdirc.Invite:accept()
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.invite
    //#pre[2] (void actionPerformed(ActionEvent)): this.invite != null
    }
    //#InviteLabel.java:270: end of method: void com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.actionPerformed(ActionEvent)

    /** {@inheritDoc} */
    @Override
    public String toString() {
        return invite.getChannel() + "(" + Arrays.toString(invite.getSource()) + ")";
    //#InviteLabel.java:275: method: String com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.toString()
    //#InviteLabel.java:275: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.Invite:getChannel()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#    method: String toString()
    //#    unanalyzed callee: String com.dmdirc.Invite:getChannel()
    //#InviteLabel.java:275: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.Invite:getSource()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#    method: String toString()
    //#    unanalyzed callee: String[] com.dmdirc.Invite:getSource()
    //#input(String toString()): "("._tainted
    //#input(String toString()): ")"._tainted
    //#input(String toString()): this
    //#input(String toString()): this.invite
    //#output(String toString()): java.lang.StringBuilder:toString(...)._tainted
    //#output(String toString()): return_value
    //#new obj(String toString()): java.lang.StringBuilder:toString(...)
    //#pre[2] (String toString()): this.invite != null
    //#post(String toString()): java.lang.StringBuilder:toString(...)._tainted == 0
    //#post(String toString()): return_value == &java.lang.StringBuilder:toString(...)
    //#InviteLabel.java:275: end of method: String com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.toString()
    }
}
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteAction]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteAction] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#InviteLabel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction.com.dmdirc.addons.ui_swing.components.statusbar.InviteAction__static_init
    //#InviteLabel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.InviteAction
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel$2]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel$2] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#InviteLabel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2__static_init
    //#InviteLabel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$2
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel$1]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#InviteLabel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1__static_init
    //#InviteLabel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel$1
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel]
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.closeDialog()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow;
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.inviteExpired(Lcom/dmdirc/Server;Lcom/dmdirc/Invite;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.inviteReceived(Lcom/dmdirc/Server;Lcom/dmdirc/Invite;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.openDialog()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.popuplateMenu()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.processEvent(Lcom/dmdirc/actions/interfaces/ActionType;Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.refreshDialog()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.setText(Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.update()V
    //#output(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel]
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.__Descendant_Table[com/dmdirc/addons/ui_swing/components/statusbar/InviteLabel] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.closeDialog()V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.closeDialog
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.getWindow()Lcom/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupWindow; == &getWindow
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.inviteExpired(Lcom/dmdirc/Server;Lcom/dmdirc/Invite;)V == &inviteExpired
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.inviteReceived(Lcom/dmdirc/Server;Lcom/dmdirc/Invite;)V == &inviteReceived
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V == &mouseClicked
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.mouseEntered
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.mouseExited
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.mousePressed
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.mouseReleased
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.openDialog()V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.openDialog
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.popuplateMenu()V == &popuplateMenu
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.processEvent(Lcom/dmdirc/actions/interfaces/ActionType;Ljava/lang/StringBuffer;[Ljava/lang/Object;)V == &processEvent
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.refreshDialog()V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.refreshDialog
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.setText(Ljava/lang/String;)V == &com/dmdirc/addons/ui_swing/components/statusbar/StatusbarPopupPanel.setText
    //#post(com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init): __Dispatch_Table.update()V == &update
    //#InviteLabel.java:: end of method: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel.com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel__static_init
    //#InviteLabel.java:: end of class: com.dmdirc.addons.ui_swing.components.statusbar.InviteLabel
