//# 0 errors, 157 messages
//#

    //#ToolTipPanel.java:1:1: class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#ToolTipPanel.java:1:1: method: com.dmdirc.addons.ui_swing.components.ToolTipPanel.com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init
package com.dmdirc.addons.ui_swing.components;

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

import com.dmdirc.addons.ui_swing.components.text.TextLabel;
import com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.HashMap;
import java.util.Map;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;

import net.miginfocom.swing.MigLayout;

/**
 * Panel to display toolstips of a component.
 */
public class ToolTipPanel extends JPanel implements MouseListener {

    /**
     * A version number for this class. It should be changed whenever the
     * class structure is changed (or anything else that would prevent
     * serialized objects being unserialized with the new class).
     */
    private static final long serialVersionUID = -8929794537312606692L;
    /** Default tooltip. */
    private final String defaultHelp;
    /** Tooltip display. */
    private TextLabel tooltip;
    /** Map of registered components to their tooltips. */
    private final Map<JComponent, String> tooltips;

    /**
     * Instantiates a new tooltip panel.
     *
     * @param defaultHelp Default help message when idle
     */
    public ToolTipPanel(final String defaultHelp) {
        super(new MigLayout());
    //#ToolTipPanel.java:67: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)
    //#ToolTipPanel.java:67: Warning: method not available - call not analyzed
    //#    call on void net.miginfocom.swing.MigLayout()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)
    //#    unanalyzed callee: void net.miginfocom.swing.MigLayout()
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/ToolTipPanel]
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): __Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): __Dispatch_Table.reset()V
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): defaultHelp
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): java.awt.Color.WHITE
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this
    //#input(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): new HashMap(ToolTipPanel#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): new TextLabel(ToolTipPanel#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.defaultHelp
    //#output(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.tooltip
    //#output(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.tooltips
    //#new obj(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): new HashMap(ToolTipPanel#2)
    //#new obj(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): new TextLabel(ToolTipPanel#3)
    //#pre[1] (void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): defaultHelp != null
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.__Tag == com/dmdirc/addons/ui_swing/components/ToolTipPanel
    //#presumption(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): init'ed(java.awt.Color.WHITE)
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.__Tag == com/dmdirc/addons/ui_swing/components/ToolTipPanel
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.defaultHelp == defaultHelp
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.defaultHelp != null
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.tooltip == &new TextLabel(ToolTipPanel#3)
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): this.tooltips == &new HashMap(ToolTipPanel#2)
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): new HashMap(ToolTipPanel#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): new TextLabel(ToolTipPanel#3) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setText
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): Effects-of-calling:javax.swing.text.StyleConstants:setItalic
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes

        this.defaultHelp = defaultHelp;
        this.tooltips = new HashMap<JComponent, String>();

        setBackground(Color.WHITE);
    //#ToolTipPanel.java:72: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.ToolTipPanel:setBackground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.ToolTipPanel:setBackground(Color)
        setBorder(BorderFactory.createEtchedBorder());
    //#ToolTipPanel.java:73: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.ToolTipPanel:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.ToolTipPanel:setBorder(Border)

        tooltip = new TextLabel();
    //#ToolTipPanel.java:75: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.text.TextLabel()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.text.TextLabel()
        reset();

        add(tooltip, "grow, push");
    //#ToolTipPanel.java:78: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.ToolTipPanel:add(Component, Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.ToolTipPanel:add(Component, Object)
    }
    //#ToolTipPanel.java:79: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.com.dmdirc.addons.ui_swing.components.ToolTipPanel(String)

    /**
     * Resets the content of the tooltip.
     */
    protected void reset() {
        tooltip.setText(defaultHelp);
    //#ToolTipPanel.java:85: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.reset()
    //#ToolTipPanel.java:85: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.text.TextLabel:setText(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void reset()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.text.TextLabel:setText(String)
    //#input(void reset()): this
    //#input(void reset()): this.defaultHelp
    //#input(void reset()): this.tooltip
    //#pre[2] (void reset()): this.defaultHelp != null
    //#pre[3] (void reset()): this.tooltip != null
    //#presumption(void reset()): com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument(...)@88 != null
        SimpleAttributeSet sas = new SimpleAttributeSet();
        StyleConstants.setItalic(sas, true);
        tooltip.getDocument().setParagraphAttributes(0, defaultHelp.length(),
    //#ToolTipPanel.java:88: Warning: method not available - call not analyzed
    //#    call on StyledDocument com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void reset()
    //#    unanalyzed callee: StyledDocument com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument()
                                                     sas, true);
    }
    //#ToolTipPanel.java:90: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.reset()

    /**
     * Sets the content of the tooltip area to the specified text.
     *
     * @param text The text to be displayed
     */
    protected void setText(final String text) {
        if (tooltip == null) {
    //#ToolTipPanel.java:98: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.setText(String)
    //#input(void setText(String)): text
    //#input(void setText(String)): this
    //#input(void setText(String)): this.tooltip
    //#pre[3] (void setText(String)): init'ed(this.tooltip)
    //#presumption(void setText(String)): com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument(...)@107 != null
    //#test_vector(void setText(String)): text: Inverse{null}, Addr_Set{null}
    //#test_vector(void setText(String)): this.tooltip: Inverse{null}, Addr_Set{null}
    //#test_vector(void setText(String)): com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument(...)@102: Addr_Set{null}, Inverse{null}
            return;
        }
        tooltip.setText(text);
    //#ToolTipPanel.java:101: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.text.TextLabel:setText(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void setText(String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.text.TextLabel:setText(String)
        if (tooltip.getDocument() == null || text == null) {
    //#ToolTipPanel.java:102: Warning: method not available - call not analyzed
    //#    call on StyledDocument com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void setText(String)
    //#    unanalyzed callee: StyledDocument com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument()
            return;
        }
        SimpleAttributeSet sas = new SimpleAttributeSet();
        StyleConstants.setItalic(sas, false);
        tooltip.getDocument().setParagraphAttributes(0, text.length(), sas, true);
    //#ToolTipPanel.java:107: Warning: method not available - call not analyzed
    //#    call on StyledDocument com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void setText(String)
    //#    unanalyzed callee: StyledDocument com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument()
    }
    //#ToolTipPanel.java:108: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.setText(String)

    /**
     * Registers a component with this tooltip handler.
     *
     * @param component Component to register
     */
    public void registerTooltipHandler(final JComponent component) {
        registerTooltipHandler(component, component.getToolTipText());
    //#ToolTipPanel.java:116: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.registerTooltipHandler(JComponent)
    //#input(void registerTooltipHandler(JComponent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/ToolTipPanel]
    //#input(void registerTooltipHandler(JComponent)): __Descendant_Table[others]
    //#input(void registerTooltipHandler(JComponent)): __Dispatch_Table.registerTooltipHandler(Ljavax/swing/JComponent;Ljava/lang/String;)V
    //#input(void registerTooltipHandler(JComponent)): component
    //#input(void registerTooltipHandler(JComponent)): this
    //#input(void registerTooltipHandler(JComponent)): this.__Tag
    //#input(void registerTooltipHandler(JComponent)): this.tooltips
    //#pre[1] (void registerTooltipHandler(JComponent)): component != null
    //#pre[3] (void registerTooltipHandler(JComponent)): this.__Tag == com/dmdirc/addons/ui_swing/components/ToolTipPanel
    //#pre[4] (void registerTooltipHandler(JComponent)): this.tooltips != null
    //#unanalyzed(void registerTooltipHandler(JComponent)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void registerTooltipHandler(JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:instanceof
    //#unanalyzed(void registerTooltipHandler(JComponent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getTextField
    //#unanalyzed(void registerTooltipHandler(JComponent)): Effects-of-calling:javax.swing.JTextField:addMouseListener
    //#unanalyzed(void registerTooltipHandler(JComponent)): Effects-of-calling:javax.swing.JComponent:addMouseListener
        component.setToolTipText(null);
    }
    //#ToolTipPanel.java:118: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.registerTooltipHandler(JComponent)

    /**
     * Registers a component with this tooltip handler.
     *
     * @param component Component to register
     * @param tooltipText Tooltip text for the component
     */
    public void registerTooltipHandler(final JComponent component,
            final String tooltipText) {
        tooltips.put(component, tooltipText);
    //#ToolTipPanel.java:128: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.registerTooltipHandler(JComponent, String)
    //#input(void registerTooltipHandler(JComponent, String)): component
    //#input(void registerTooltipHandler(JComponent, String)): this
    //#input(void registerTooltipHandler(JComponent, String)): this.tooltips
    //#input(void registerTooltipHandler(JComponent, String)): tooltipText
    //#pre[1] (void registerTooltipHandler(JComponent, String)): component != null
    //#pre[3] (void registerTooltipHandler(JComponent, String)): this.tooltips != null
    //#presumption(void registerTooltipHandler(JComponent, String)): com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getTextField(...)@130 != null
    //#test_vector(void registerTooltipHandler(JComponent, String)): com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:instanceof(...)@129: {0}, {1}
        if (component instanceof ValidatingJTextField) {
            ((ValidatingJTextField) component).getTextField().addMouseListener(
    //#ToolTipPanel.java:130: Warning: method not available - call not analyzed
    //#    call on JTextField com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getTextField()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
    //#    method: void registerTooltipHandler(JComponent, String)
    //#    unanalyzed callee: JTextField com.dmdirc.addons.ui_swing.components.validating.ValidatingJTextField:getTextField()
                    this);
        } else {
          component.addMouseListener(this);
        }
    }
    //#ToolTipPanel.java:135: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.registerTooltipHandler(JComponent, String)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseClicked(final MouseEvent e) {
        // Not used
    }
    //#ToolTipPanel.java:145: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseClicked(MouseEvent)
    //#ToolTipPanel.java:145: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseClicked(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mousePressed(final MouseEvent e) {
        // Not used
    }
    //#ToolTipPanel.java:155: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mousePressed(MouseEvent)
    //#ToolTipPanel.java:155: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mousePressed(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseReleased(final MouseEvent e) {
        // Not used
    }
    //#ToolTipPanel.java:165: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseReleased(MouseEvent)
    //#ToolTipPanel.java:165: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseReleased(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseEntered(final MouseEvent e) {
        if (e.getSource() instanceof JComponent) {
    //#ToolTipPanel.java:174: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseEntered(MouseEvent)
    //#input(void mouseEntered(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/ToolTipPanel]
    //#input(void mouseEntered(MouseEvent)): __Descendant_Table[others]
    //#input(void mouseEntered(MouseEvent)): __Dispatch_Table.setText(Ljava/lang/String;)V
    //#input(void mouseEntered(MouseEvent)): e
    //#input(void mouseEntered(MouseEvent)): this
    //#input(void mouseEntered(MouseEvent)): this.__Tag
    //#input(void mouseEntered(MouseEvent)): this.tooltip
    //#input(void mouseEntered(MouseEvent)): this.tooltips
    //#pre[1] (void mouseEntered(MouseEvent)): e != null
    //#pre[3] (void mouseEntered(MouseEvent)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/ToolTipPanel
    //#pre[4] (void mouseEntered(MouseEvent)): (soft) init'ed(this.tooltip)
    //#pre[5] (void mouseEntered(MouseEvent)): (soft) this.tooltips != null
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setText
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setItalic
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void mouseEntered(MouseEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
            setText(tooltips.get(e.getSource()));
        }
    }
    //#ToolTipPanel.java:177: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseEntered(MouseEvent)

    /**
     * {@inheritDoc}
     *
     * @param e Mouse event
     */
    @Override
    public void mouseExited(final MouseEvent e) {
        reset();
    //#ToolTipPanel.java:186: method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseExited(MouseEvent)
    //#input(void mouseExited(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/ToolTipPanel]
    //#input(void mouseExited(MouseEvent)): __Descendant_Table[others]
    //#input(void mouseExited(MouseEvent)): __Dispatch_Table.reset()V
    //#input(void mouseExited(MouseEvent)): this
    //#input(void mouseExited(MouseEvent)): this.__Tag
    //#input(void mouseExited(MouseEvent)): this.defaultHelp
    //#input(void mouseExited(MouseEvent)): this.tooltip
    //#pre[2] (void mouseExited(MouseEvent)): this.__Tag == com/dmdirc/addons/ui_swing/components/ToolTipPanel
    //#pre[3] (void mouseExited(MouseEvent)): this.defaultHelp != null
    //#pre[4] (void mouseExited(MouseEvent)): this.tooltip != null
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:setText
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.text.SimpleAttributeSet
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.text.StyleConstants:setItalic
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.text.TextLabel:getDocument
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void mouseExited(MouseEvent)): Effects-of-calling:javax.swing.text.StyledDocument:setParagraphAttributes
    }
    //#ToolTipPanel.java:187: end of method: void com.dmdirc.addons.ui_swing.components.ToolTipPanel.mouseExited(MouseEvent)
}
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/ToolTipPanel]
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.registerTooltipHandler(Ljavax/swing/JComponent;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.registerTooltipHandler(Ljavax/swing/JComponent;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.reset()V
    //#output(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.setText(Ljava/lang/String;)V
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/ToolTipPanel] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V == &mouseClicked
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V == &mouseEntered
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V == &mouseExited
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V == &mousePressed
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V == &mouseReleased
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.registerTooltipHandler(Ljavax/swing/JComponent;)V == &registerTooltipHandler
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.registerTooltipHandler(Ljavax/swing/JComponent;Ljava/lang/String;)V == &registerTooltipHandler
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.reset()V == &reset
    //#post(com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init): __Dispatch_Table.setText(Ljava/lang/String;)V == &setText
    //#ToolTipPanel.java:: end of method: com.dmdirc.addons.ui_swing.components.ToolTipPanel.com.dmdirc.addons.ui_swing.components.ToolTipPanel__static_init
    //#ToolTipPanel.java:: end of class: com.dmdirc.addons.ui_swing.components.ToolTipPanel
