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

package com.dmdirc.addons.ui_swing.components.frames;

import com.dmdirc.FrameContainer;
import com.dmdirc.actions.ActionManager;
import com.dmdirc.actions.CoreActionType;
import com.dmdirc.addons.ui_swing.SwingController;
import com.dmdirc.addons.ui_swing.UIUtilities;
import com.dmdirc.addons.ui_swing.actions.ChannelCopyAction;
import com.dmdirc.addons.ui_swing.actions.CommandAction;
import com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction;
import com.dmdirc.addons.ui_swing.actions.NicknameCopyAction;
import com.dmdirc.addons.ui_swing.actions.SearchAction;
import com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction;
import com.dmdirc.addons.ui_swing.components.LoggingSwingWorker;
import com.dmdirc.addons.ui_swing.components.SwingSearchBar;
import com.dmdirc.addons.ui_swing.textpane.ClickType;
import com.dmdirc.addons.ui_swing.textpane.LineInfo;
import com.dmdirc.addons.ui_swing.textpane.TextPane;
import com.dmdirc.addons.ui_swing.textpane.TextPanePageDownAction;
import com.dmdirc.addons.ui_swing.textpane.TextPanePageUpAction;
import com.dmdirc.commandparser.PopupManager;
import com.dmdirc.commandparser.PopupMenu;
import com.dmdirc.commandparser.PopupMenuItem;
import com.dmdirc.commandparser.PopupType;
import com.dmdirc.commandparser.parsers.GlobalCommandParser;
import com.dmdirc.util.StringTranscoder;
import com.dmdirc.config.ConfigManager;
import com.dmdirc.interfaces.ConfigChangeListener;
import com.dmdirc.interfaces.IconChangeListener;
import com.dmdirc.logger.ErrorLevel;
import com.dmdirc.logger.Logger;
import com.dmdirc.ui.WindowManager;
import com.dmdirc.ui.interfaces.InputWindow;
import com.dmdirc.ui.interfaces.Window;
import com.dmdirc.ui.messages.Formatter;
import com.dmdirc.util.URLHandler;

import java.awt.Dimension;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyVetoException;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
import java.nio.charset.UnsupportedCharsetException;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import java.util.concurrent.atomic.AtomicBoolean;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import javax.swing.plaf.synth.SynthLookAndFeel;

/**
 * Implements a generic (internal) frame.
 */
public abstract class TextFrame extends JInternalFrame implements Window,
    //#TextFrame.java:98: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$001(TextFrame, String)
    //#input(void access$001(TextFrame, String)): x0
    //#input(void access$001(TextFrame, String)): x1
    //#pre[1] (void access$001(TextFrame, String)): x0 != null
    //#TextFrame.java:98: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$001(TextFrame, String)
    //#TextFrame.java:98: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$101(TextFrame, bool)
    //#input(void access$101(TextFrame, bool)): x0
    //#input(void access$101(TextFrame, bool)): x1
    //#pre[1] (void access$101(TextFrame, bool)): x0 != null
    //#TextFrame.java:98: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$101(TextFrame, bool)
    //#TextFrame.java:98: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$201(TextFrame, bool)
    //#input(void access$201(TextFrame, bool)): x0
    //#input(void access$201(TextFrame, bool)): x1
    //#pre[1] (void access$201(TextFrame, bool)): x0 != null
    //#TextFrame.java:98: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$201(TextFrame, bool)
    //#TextFrame.java:98: method: SwingController com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$300(TextFrame)
    //#input(SwingController access$300(TextFrame)): x0
    //#input(SwingController access$300(TextFrame)): x0.controller
    //#output(SwingController access$300(TextFrame)): return_value
    //#pre[1] (SwingController access$300(TextFrame)): x0 != null
    //#pre[2] (SwingController access$300(TextFrame)): init'ed(x0.controller)
    //#post(SwingController access$300(TextFrame)): return_value == x0.controller
    //#post(SwingController access$300(TextFrame)): init'ed(return_value)
    //#TextFrame.java:98: end of method: SwingController com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$300(TextFrame)
    //#TextFrame.java:98: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$401(TextFrame, bool)
    //#input(void access$401(TextFrame, bool)): x0
    //#input(void access$401(TextFrame, bool)): x1
    //#pre[1] (void access$401(TextFrame, bool)): x0 != null
    //#TextFrame.java:98: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$401(TextFrame, bool)
    //#TextFrame.java:98: method: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$500(TextFrame)
    //#input(bool access$500(TextFrame)): x0
    //#input(bool access$500(TextFrame)): x0.closing
    //#output(bool access$500(TextFrame)): return_value
    //#pre[1] (bool access$500(TextFrame)): x0 != null
    //#pre[2] (bool access$500(TextFrame)): init'ed(x0.closing)
    //#post(bool access$500(TextFrame)): return_value == x0.closing
    //#post(bool access$500(TextFrame)): init'ed(return_value)
    //#TextFrame.java:98: end of method: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$500(TextFrame)
    //#TextFrame.java:98: method: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$502(TextFrame, bool)
    //#input(bool access$502(TextFrame, bool)): x0
    //#input(bool access$502(TextFrame, bool)): x1
    //#output(bool access$502(TextFrame, bool)): return_value
    //#output(bool access$502(TextFrame, bool)): x0.closing
    //#pre[1] (bool access$502(TextFrame, bool)): x0 != null
    //#post(bool access$502(TextFrame, bool)): return_value == x1
    //#post(bool access$502(TextFrame, bool)): init'ed(return_value)
    //#post(bool access$502(TextFrame, bool)): x0.closing == return_value
    //#TextFrame.java:98: end of method: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$502(TextFrame, bool)
    //#TextFrame.java:98: method: Logger com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$600()
    //#input(Logger access$600()): LOGGER
    //#output(Logger access$600()): return_value
    //#post(Logger access$600()): init'ed(return_value)
    //#TextFrame.java:98: end of method: Logger com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$600()
    //#TextFrame.java:98: method: AtomicBoolean com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$700(TextFrame)
    //#input(AtomicBoolean access$700(TextFrame)): x0
    //#input(AtomicBoolean access$700(TextFrame)): x0.maximiseRestoreInProgress
    //#output(AtomicBoolean access$700(TextFrame)): return_value
    //#pre[1] (AtomicBoolean access$700(TextFrame)): x0 != null
    //#pre[2] (AtomicBoolean access$700(TextFrame)): init'ed(x0.maximiseRestoreInProgress)
    //#post(AtomicBoolean access$700(TextFrame)): return_value == x0.maximiseRestoreInProgress
    //#post(AtomicBoolean access$700(TextFrame)): init'ed(return_value)
    //#TextFrame.java:98: end of method: AtomicBoolean com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$700(TextFrame)
    //#TextFrame.java:98: method: TextPane com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$800(TextFrame)
    //#input(TextPane access$800(TextFrame)): x0
    //#input(TextPane access$800(TextFrame)): x0.textPane
    //#output(TextPane access$800(TextFrame)): return_value
    //#pre[1] (TextPane access$800(TextFrame)): x0 != null
    //#pre[2] (TextPane access$800(TextFrame)): init'ed(x0.textPane)
    //#post(TextPane access$800(TextFrame)): return_value == x0.textPane
    //#post(TextPane access$800(TextFrame)): init'ed(return_value)
    //#TextFrame.java:98: end of method: TextPane com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$800(TextFrame)
    //#TextFrame.java:98: method: int com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$900(TextFrame)
    //#input(int access$900(TextFrame)): x0
    //#input(int access$900(TextFrame)): x0.frameBufferSize
    //#output(int access$900(TextFrame)): return_value
    //#pre[1] (int access$900(TextFrame)): x0 != null
    //#pre[2] (int access$900(TextFrame)): init'ed(x0.frameBufferSize)
    //#post(int access$900(TextFrame)): return_value == x0.frameBufferSize
    //#post(int access$900(TextFrame)): init'ed(return_value)
    //#TextFrame.java:98: end of method: int com.dmdirc.addons.ui_swing.components.frames.TextFrame.access$900(TextFrame)
        PropertyChangeListener, InternalFrameListener,
        MouseListener, KeyListener, ConfigChangeListener {

    /** Logger to use. */
    private static final java.util.logging.Logger LOGGER =
    //#TextFrame.java:103: method: com.dmdirc.addons.ui_swing.components.frames.TextFrame.com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): LOGGER
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.activateFrame()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addLine(Ljava/lang/String;Z)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.clear()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.close()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.configChanged(Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getController()Lcom/dmdirc/addons/ui_swing/SwingController;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getNormalPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getSearchBar()Lcom/dmdirc/addons/ui_swing/components/SwingSearchBar;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getTextPane()Lcom/dmdirc/addons/ui_swing/textpane/TextPane;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getTranscoder()Lcom/dmdirc/util/StringTranscoder;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.hideTitlebar()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.initComponents()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameActivated(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameClosed(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameClosing(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameDeactivated(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameDeiconified(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameIconified(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameOpened(Ljavax/swing/event/InternalFrameEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.keyPressed(Ljava/awt/event/KeyEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.keyReleased(Ljava/awt/event/KeyEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.keyTyped(Ljava/awt/event/KeyEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.maximise()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.minimise()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.open()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.populatePopupMenu(Ljavax/swing/JComponent;Lcom/dmdirc/commandparser/PopupMenu;[Ljava/lang/Object;)Ljavax/swing/JComponent;
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.processMouseClickEvent(Ljava/awt/event/MouseEvent;Lcom/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.propertyChange(Ljava/beans/PropertyChangeEvent;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.restore()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.setTextPane(Lcom/dmdirc/addons/ui_swing/textpane/TextPane;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.setVisible(Z)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.showPopupMenu(Lcom/dmdirc/addons/ui_swing/textpane/ClickType;Ljava/awt/Point;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.showPopupMenuInternal(Lcom/dmdirc/addons/ui_swing/textpane/ClickType;Ljava/awt/Point;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.showTitlebar()V
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.toggleMaximise()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): init'ed(LOGGER)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.activateFrame()V == &activateFrame
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V == &addCustomPopupItems
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addLine(Ljava/lang/String;Z)V == &addLine
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V == &addLine
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V == &addLine
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.clear()V == &clear
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.close()V == &close
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.configChanged(Ljava/lang/String;Ljava/lang/String;)V == &configChanged
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType; == &getChannelPopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager; == &getConfigManager
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer; == &getContainer
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getController()Lcom/dmdirc/addons/ui_swing/SwingController; == &getController
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType; == &getHyperlinkPopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType; == &getNicknamePopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getNormalPopupType()Lcom/dmdirc/commandparser/PopupType; == &getNormalPopupType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu; == &getPopupMenu
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getSearchBar()Lcom/dmdirc/addons/ui_swing/components/SwingSearchBar; == &getSearchBar
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getTextPane()Lcom/dmdirc/addons/ui_swing/textpane/TextPane; == &getTextPane
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.getTranscoder()Lcom/dmdirc/util/StringTranscoder; == &getTranscoder
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.hideTitlebar()V == &hideTitlebar
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.initComponents()V == &initComponents
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameActivated(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameActivated
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameClosed(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameClosed
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameClosing(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameClosing
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameDeactivated(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameDeactivated
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameDeiconified(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameDeiconified
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameIconified(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameIconified
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.internalFrameOpened(Ljavax/swing/event/InternalFrameEvent;)V == &internalFrameOpened
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.keyPressed(Ljava/awt/event/KeyEvent;)V == &keyPressed
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.keyReleased(Ljava/awt/event/KeyEvent;)V == &keyReleased
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.keyTyped(Ljava/awt/event/KeyEvent;)V == &keyTyped
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.maximise()V == &maximise
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.minimise()V == &minimise
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseClicked(Ljava/awt/event/MouseEvent;)V == &mouseClicked
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseEntered(Ljava/awt/event/MouseEvent;)V == &mouseEntered
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseExited(Ljava/awt/event/MouseEvent;)V == &mouseExited
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mousePressed(Ljava/awt/event/MouseEvent;)V == &mousePressed
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.mouseReleased(Ljava/awt/event/MouseEvent;)V == &mouseReleased
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.open()V == &open
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.populatePopupMenu(Ljavax/swing/JComponent;Lcom/dmdirc/commandparser/PopupMenu;[Ljava/lang/Object;)Ljavax/swing/JComponent; == &populatePopupMenu
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.processMouseClickEvent(Ljava/awt/event/MouseEvent;Lcom/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType;)V == &processMouseClickEvent
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.propertyChange(Ljava/beans/PropertyChangeEvent;)V == &propertyChange
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.restore()V == &restore
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.setTextPane(Lcom/dmdirc/addons/ui_swing/textpane/TextPane;)V == &setTextPane
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.setTitle(Ljava/lang/String;)V == &setTitle
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.setVisible(Z)V == &setVisible
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.showPopupMenu(Lcom/dmdirc/addons/ui_swing/textpane/ClickType;Ljava/awt/Point;Ljava/lang/String;)V == &showPopupMenu
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.showPopupMenuInternal(Lcom/dmdirc/addons/ui_swing/textpane/ClickType;Ljava/awt/Point;Ljava/lang/String;)V == &showPopupMenuInternal
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.showTitlebar()V == &showTitlebar
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init): __Dispatch_Table.toggleMaximise()V == &toggleMaximise
    //#TextFrame.java:103: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame.com.dmdirc.addons.ui_swing.components.frames.TextFrame__static_init
            java.util.logging.Logger.getLogger(TextFrame.class.getName());
    /**
     * 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 = 5;
    /** The channel object that owns this frame. */
    protected final FrameContainer frameParent;
    /** Frame output pane. */
    private TextPane textPane;
    /** search bar. */
    private SwingSearchBar searchBar;
    /** String transcoder. */
    private StringTranscoder transcoder;
    /** Frame buffer size. */
    private int frameBufferSize;
    /** Quick copy? */
    private boolean quickCopy;
    /** Are we closing? */
    private boolean closing = false;
    /** Input window for popup commands. */
    private Window inputWindow;
    /** Swing controller. */
    private SwingController controller;
    /** Are we maximising/restoring? */
    private AtomicBoolean maximiseRestoreInProgress = new AtomicBoolean(false);

    /** Click types. */
    public enum MouseClickType {
    //#TextFrame.java:133: method: TextFrame$MouseClickType[] com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.values()
    //#input(TextFrame$MouseClickType[] values()): $VALUES
    //#input(TextFrame$MouseClickType[] values()): $VALUES.length
    //#input(TextFrame$MouseClickType[] values()): $VALUES[0..3]
    //#output(TextFrame$MouseClickType[] values()): new TextFrame$MouseClickType[](values#1) num objects
    //#output(TextFrame$MouseClickType[] values()): return_value.length
    //#output(TextFrame$MouseClickType[] values()): return_value[0..3]
    //#output(TextFrame$MouseClickType[] values()): return_value
    //#new obj(TextFrame$MouseClickType[] values()): new TextFrame$MouseClickType[](values#1)
    //#pre[1] (TextFrame$MouseClickType[] values()): (soft) init'ed($VALUES[0..3])
    //#post(TextFrame$MouseClickType[] values()): return_value == &new TextFrame$MouseClickType[](values#1)
    //#post(TextFrame$MouseClickType[] values()): new TextFrame$MouseClickType[](values#1) num objects == 1
    //#post(TextFrame$MouseClickType[] values()): return_value.length == 3
    //#post(TextFrame$MouseClickType[] values()): return_value[0..3] == One-of{$VALUES[0..3], undefined}
    //#TextFrame.java:133: end of method: TextFrame$MouseClickType[] com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.values()
    //#TextFrame.java:133: method: TextFrame$MouseClickType com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.valueOf(String)
    //#input(TextFrame$MouseClickType valueOf(String)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType]
    //#input(TextFrame$MouseClickType valueOf(String)): __Descendant_Table[others]
    //#input(TextFrame$MouseClickType valueOf(String)): name
    //#output(TextFrame$MouseClickType valueOf(String)): return_value
    //#presumption(TextFrame$MouseClickType valueOf(String)): java.lang.Enum:valueOf(...).__Tag@133 == com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType
    //#post(TextFrame$MouseClickType valueOf(String)): init'ed(return_value)
    //#TextFrame.java:133: end of method: TextFrame$MouseClickType com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.valueOf(String)
    //#TextFrame.java:133: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType(String, int)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType(String, int)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType(String, int)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType(String, int)): this
    //#TextFrame.java:133: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType(String, int)

        /** Clicked. */
        CLICKED,
    //#TextFrame.java:136: method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): CLICKED
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): PRESSED
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): RELEASED
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#1) num objects
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): CLICKED.__Tag
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#2) num objects
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): RELEASED.__Tag
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#3) num objects
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): PRESSED.__Tag
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType[](TextFrame$MouseClickType__static_init#4) num objects
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES.length
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES[0]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES[1]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES[2]
    //#new obj(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#1)
    //#new obj(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#2)
    //#new obj(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#3)
    //#new obj(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType[](TextFrame$MouseClickType__static_init#4)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES == &new TextFrame$MouseClickType[](TextFrame$MouseClickType__static_init#4)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): CLICKED == &new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#1)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES[0] == &new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#1)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): PRESSED == &new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#3)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES[2] == &new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#3)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): RELEASED == &new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#2)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES[1] == &new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#2)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#1) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#2) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType(TextFrame$MouseClickType__static_init#3) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): new TextFrame$MouseClickType[](TextFrame$MouseClickType__static_init#4) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): CLICKED.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): RELEASED.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): PRESSED.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): $VALUES.length == 3
    //#unanalyzed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init): Effects-of-calling:java.lang.Enum
        /** Released. */
        RELEASED,
        /** Pressed. */
        PRESSED,
    //#TextFrame.java:140: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType.com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType__static_init
    }

    /**
     * Creates a new instance of Frame.
     *
     * @param owner FrameContainer owning this frame.
     * @param controller Swing controller
     */
    public TextFrame(final FrameContainer owner,
            final SwingController controller) {
        super();
    //#TextFrame.java:151: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): __Descendant_Table[others]
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): controller
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): owner
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new AtomicBoolean(TextFrame#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#3) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#4) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#5) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#6) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new SwingSearchBar(initComponents#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new TextPane(initComponents#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.__Tag
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.closing
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.controller
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.frameBufferSize
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.frameParent
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.inputWindow
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.maximiseRestoreInProgress
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.quickCopy
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.searchBar
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.textPane
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.transcoder
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new AtomicBoolean(TextFrame#1)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#3)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#4)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#5)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#6)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new SwingSearchBar(initComponents#2)
    //#new obj(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new TextPane(initComponents#1)
    //#pre[1] (void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): controller != null
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[3] (void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): owner != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): com.dmdirc.FrameContainer:getConfigManager(...)@155 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): com.dmdirc.addons.ui_swing.SwingController:getMainFrame(...)@190 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): com.dmdirc.addons.ui_swing.SwingController:getMainFrame(...)@190 != null
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): init'ed(this.closing)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.controller == controller
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.controller != null
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): init'ed(this.frameBufferSize)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.frameParent == owner
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.frameParent != null
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): init'ed(this.inputWindow)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.maximiseRestoreInProgress == &new AtomicBoolean(TextFrame#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): init'ed(this.quickCopy)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.searchBar == &new SwingSearchBar(initComponents#2)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.textPane == &new TextPane(initComponents#1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): this.transcoder in Addr_Set{&new StringTranscoder(TextFrame#3),&new StringTranscoder(TextFrame#6),&new StringTranscoder(TextFrame#5),&new StringTranscoder(TextFrame#4)}
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new AtomicBoolean(TextFrame#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new SwingSearchBar(initComponents#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new TextPane(initComponents#1) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#3) num objects <= 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#4) num objects <= 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#5) num objects <= 1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): new StringTranscoder(TextFrame#6) num objects <= 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:addMouseListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:addKeyListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.SwingController:getMainFrame
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingSearchBar
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingSearchBar:setVisible
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SwingSearchBar:addKeyListener
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:javax.swing.InputMap:put
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:getCtrlDownMask
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPanePageUpAction
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:javax.swing.ActionMap:put
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPanePageDownAction
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.SearchAction
        this.controller = controller;
        frameParent = owner;

        final ConfigManager config = owner.getConfigManager();
    //#TextFrame.java:155: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: ConfigManager com.dmdirc.FrameContainer:getConfigManager()
        frameBufferSize = config.getOptionInt("ui", "frameBufferSize");
    //#TextFrame.java:156: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.config.ConfigManager:getOptionInt(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: int com.dmdirc.config.ConfigManager:getOptionInt(String, String)
        quickCopy = config.getOptionBool("ui", "quickCopy");
    //#TextFrame.java:157: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
        setFrameIcon(owner.getIcon());
    //#TextFrame.java:158: Warning: method not available - call not analyzed
    //#    call on Icon com.dmdirc.FrameContainer:getIcon()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: Icon com.dmdirc.FrameContainer:getIcon()
    //#TextFrame.java:158: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setFrameIcon(Icon)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setFrameIcon(Icon)
        owner.addIconChangeListener(new IconChangeListener() {
    //#TextFrame.java:159: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1.com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:159: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1.com.dmdirc.addons.ui_swing.components.frames.TextFrame$1(TextFrame)
    //#TextFrame.java:159: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.FrameContainer:addIconChangeListener(IconChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.FrameContainer:addIconChangeListener(IconChangeListener)

            /** {@inheritDoc} */
            @Override
            public void iconChanged(final Window window, final Icon icon) {
                setFrameIcon(icon);
    //#TextFrame.java:164: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1.iconChanged(Window, Icon)
    //#TextFrame.java:164: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setFrameIcon(Icon)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$1
    //#    method: void iconChanged(Window, Icon)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setFrameIcon(Icon)
    //#input(void iconChanged(Window, Icon)): icon
    //#input(void iconChanged(Window, Icon)): this
    //#input(void iconChanged(Window, Icon)): this.this$0
    //#pre[3] (void iconChanged(Window, Icon)): this.this$0 != null
            }
    //#TextFrame.java:165: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$1.iconChanged(Window, Icon)
        });

        try {
            transcoder = new StringTranscoder(Charset.forName(
    //#TextFrame.java:169: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.config.ConfigManager:getOption(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: String com.dmdirc.config.ConfigManager:getOption(String, String)
    //#TextFrame.java:169: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.StringTranscoder(Charset)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.util.StringTranscoder(Charset)
                    config.getOption("channel", "encoding")));
        } catch (UnsupportedCharsetException ex) {
            transcoder = new StringTranscoder(Charset.forName("UTF-8"));
    //#TextFrame.java:172: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.StringTranscoder(Charset)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.util.StringTranscoder(Charset)
        } catch (IllegalCharsetNameException ex) {
            transcoder = new StringTranscoder(Charset.forName("UTF-8"));
    //#TextFrame.java:174: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.StringTranscoder(Charset)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.util.StringTranscoder(Charset)
        } catch (IllegalArgumentException ex) {
            transcoder = new StringTranscoder(Charset.forName("UTF-8"));
    //#TextFrame.java:176: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.StringTranscoder(Charset)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.util.StringTranscoder(Charset)
        }

        inputWindow = this;
        while (!(inputWindow instanceof InputWindow) && inputWindow != null) {
            inputWindow = WindowManager.getParent(inputWindow);
    //#TextFrame.java:181: Warning: method not available - call not analyzed
    //#    call on Window com.dmdirc.ui.WindowManager:getParent(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: Window com.dmdirc.ui.WindowManager:getParent(Window)
        }

        initComponents();
        setMaximizable(true);
    //#TextFrame.java:185: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximizable(bool)
        setClosable(true);
    //#TextFrame.java:186: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setClosable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setClosable(bool)
        setResizable(true);
    //#TextFrame.java:187: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setResizable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setResizable(bool)
        setIconifiable(true);
    //#TextFrame.java:188: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIconifiable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIconifiable(bool)
        setFocusable(true);
    //#TextFrame.java:189: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setFocusable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setFocusable(bool)
        setPreferredSize(new Dimension(controller.getMainFrame().getWidth() /
    //#TextFrame.java:190: Warning: method not available - call not analyzed
    //#    call on MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#TextFrame.java:190: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.MainFrame:getWidth()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.MainFrame:getWidth()
    //#TextFrame.java:190: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.MainFrame:getHeight()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.MainFrame:getHeight()
    //#TextFrame.java:190: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setPreferredSize(Dimension)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setPreferredSize(Dimension)
                2, controller.getMainFrame().getHeight() / 3));
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    //#TextFrame.java:192: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setDefaultCloseOperation(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setDefaultCloseOperation(int)

        addPropertyChangeListener("UI", this);
    //#TextFrame.java:194: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:addPropertyChangeListener(String, PropertyChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:addPropertyChangeListener(String, PropertyChangeListener)
        addInternalFrameListener(this);
    //#TextFrame.java:195: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:addInternalFrameListener(InternalFrameListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:addInternalFrameListener(InternalFrameListener)

        getTextPane().setBackground(config.getOptionColour("ui",
    //#TextFrame.java:197: Warning: method not available - call not analyzed
    //#    call on Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#TextFrame.java:197: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:setBackground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:setBackground(Color)
                "backgroundcolour"));
        getTextPane().setForeground(config.getOptionColour("ui",
    //#TextFrame.java:199: Warning: method not available - call not analyzed
    //#    call on Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#TextFrame.java:199: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:setForeground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:setForeground(Color)
                "foregroundcolour"));

        config.addChangeListener("ui", "foregroundcolour", this);
    //#TextFrame.java:202: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
        config.addChangeListener("ui", "backgroundcolour", this);
    //#TextFrame.java:203: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
        config.addChangeListener("ui", "quickCopy", this);
    //#TextFrame.java:204: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
        config.addChangeListener("ui", "frameBufferSize", this);
    //#TextFrame.java:205: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)

        addPropertyChangeListener("maximum", this);
    //#TextFrame.java:207: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:addPropertyChangeListener(String, PropertyChangeListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:addPropertyChangeListener(String, PropertyChangeListener)
    }
    //#TextFrame.java:208: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.com.dmdirc.addons.ui_swing.components.frames.TextFrame(FrameContainer, SwingController)

    /**
     * Returns this text frames swing controller.
     * 
     * @return Swing controller
     */
    public SwingController getController() {
        return controller;
    //#TextFrame.java:216: method: SwingController com.dmdirc.addons.ui_swing.components.frames.TextFrame.getController()
    //#input(SwingController getController()): this
    //#input(SwingController getController()): this.controller
    //#output(SwingController getController()): return_value
    //#pre[2] (SwingController getController()): init'ed(this.controller)
    //#post(SwingController getController()): return_value == this.controller
    //#post(SwingController getController()): init'ed(return_value)
    //#TextFrame.java:216: end of method: SwingController com.dmdirc.addons.ui_swing.components.frames.TextFrame.getController()
    }

    /** {@inheritDoc} */
    @Override
    public void setTitle(final String title) {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:222: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2.com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): this.val$title
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): this.val$title == Param_2
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)): init'ed(this.val$title)
    //#TextFrame.java:222: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2.com.dmdirc.addons.ui_swing.components.frames.TextFrame$2(TextFrame, String)
    //#TextFrame.java:222: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.setTitle(String)
    //#TextFrame.java:222: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void setTitle(String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void setTitle(String)): this
    //#input(void setTitle(String)): title

            /** {@inheritDoc} */
            @Override
            public void run() {
                TextFrame.super.setTitle(title);
    //#TextFrame.java:227: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2.run()
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.val$title
    //#pre[2] (void run()): this.this$0 != null
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JInternalFrame:setTitle
            }
    //#TextFrame.java:228: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$2.run()
        });
    }
    //#TextFrame.java:230: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.setTitle(String)

    /** {@inheritDoc} */
    @Override
    public void setVisible(final boolean isVisible) {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:235: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3.com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): this.val$isVisible
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): this.val$isVisible == Param_2
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)): init'ed(this.val$isVisible)
    //#TextFrame.java:235: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3.com.dmdirc.addons.ui_swing.components.frames.TextFrame$3(TextFrame, bool)
    //#TextFrame.java:235: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.setVisible(bool)
    //#TextFrame.java:235: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void setVisible(bool)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void setVisible(bool)): isVisible
    //#input(void setVisible(bool)): this

            @Override
            public void run() {
                if (isVisible() && isVisible) {
    //#TextFrame.java:239: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3.run()
    //#TextFrame.java:239: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$3
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible()
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.open()V
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.__Tag
    //#input(void run()): this.this$0.frameParent
    //#input(void run()): this.val$isVisible
    //#pre[2] (void run()): this.this$0 != null
    //#pre[3] (void run()): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[4] (void run()): (soft) this.frameParent != null
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JComponent:setVisible
    //#test_vector(void run()): this.val$isVisible: {0}, {1}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible(...)@239: {0}, {1}
                    open();
                } else {
                    TextFrame.super.setVisible(isVisible);
                }
            }
    //#TextFrame.java:244: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$3.run()
        });
    }
    //#TextFrame.java:246: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.setVisible(bool)

    /** {@inheritDoc} */
    @Override
    public void open() {
        final boolean pref = frameParent.getConfigManager().getOptionBool("ui",
    //#TextFrame.java:251: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.open()
    //#TextFrame.java:251: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void open()
    //#    unanalyzed callee: ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#TextFrame.java:251: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void open()
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#input(void open()): this
    //#input(void open()): this.frameParent
    //#pre[2] (void open()): this.frameParent != null
    //#presumption(void open()): com.dmdirc.FrameContainer:getConfigManager(...)@251 != null
                    "maximisewindows");
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:253: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4.com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): this.val$pref
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): this.val$pref == Param_2
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)): init'ed(this.val$pref)
    //#TextFrame.java:253: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4.com.dmdirc.addons.ui_swing.components.frames.TextFrame$4(TextFrame, bool)
    //#TextFrame.java:253: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void open()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)

            @Override
            public void run() {
                if (!isVisible()) {
    //#TextFrame.java:257: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4.run()
    //#TextFrame.java:257: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible()
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.controller
    //#input(void run()): this.val$pref
    //#pre[2] (void run()): this.this$0 != null
    //#pre[3] (void run()): (soft) this.controller != null
    //#presumption(void run()): com.dmdirc.addons.ui_swing.SwingController:getMainFrame(...)@261 != null
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JComponent:setVisible
    //#test_vector(void run()): this.val$pref: {1}, {0}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.MainFrame:getMaximised(...)@261: {0}, {1}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum(...)@262: {1}, {0}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isSelected(...)@270: {1}, {0}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible(...)@257: {1}, {0}
                    TextFrame.super.setVisible(true);
                }
                try {
                    if (pref || controller.getMainFrame().getMaximised()) {
    //#TextFrame.java:261: Warning: method not available - call not analyzed
    //#    call on MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#TextFrame.java:261: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.MainFrame:getMaximised()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.MainFrame:getMaximised()
                        if (!isMaximum()) {
    //#TextFrame.java:262: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
                            setMaximum(true);
    //#TextFrame.java:263: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximum(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximum(bool)
                        }
                    }
                } catch (PropertyVetoException ex) {
                    //Ignore
                }
                try {
                    if (!isSelected()) {
    //#TextFrame.java:270: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isSelected()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isSelected()
                        setSelected(true);
    //#TextFrame.java:271: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setSelected(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setSelected(bool)
                    }
                } catch (PropertyVetoException ex) {
                    //Ignore
                }
            }
    //#TextFrame.java:276: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$4.run()
        });
    }
    //#TextFrame.java:278: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.open()

    /** {@inheritDoc} */
    @Override
    public void activateFrame() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:283: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5.com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:283: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5.com.dmdirc.addons.ui_swing.components.frames.TextFrame$5(TextFrame)
    //#TextFrame.java:283: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.activateFrame()
    //#TextFrame.java:283: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void activateFrame()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void activateFrame()): this

            @Override
            public void run() {
                try {
                    if (isIcon()) {
    //#TextFrame.java:288: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5.run()
    //#TextFrame.java:288: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
    //#input(void run()): com.dmdirc.actions.CoreActionType.CLIENT_FRAME_CHANGED
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.__Tag
    //#input(void run()): this.this$0.frameParent
    //#pre[2] (void run()): (soft) this.this$0 != null
    //#pre[3] (void run()): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#presumption(void run()): init'ed(com.dmdirc.actions.CoreActionType.CLIENT_FRAME_CHANGED)
    //#unanalyzed(void run()): Effects-of-calling:javax.swing.JComponent:setVisible
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon(...)@288: {0}, {1}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isSelected(...)@294: {1}, {0}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible(...)@291: {1}, {0}
                        setIcon(false);
    //#TextFrame.java:289: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
                    }
                    if (!isVisible()) {
    //#TextFrame.java:291: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isVisible()
                        TextFrame.super.setVisible(true);
                    }
                    if (!isSelected()) {
    //#TextFrame.java:294: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isSelected()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isSelected()
                        ActionManager.processEvent(
    //#TextFrame.java:295: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:processEvent(ActionType, StringBuffer, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:processEvent(ActionType, StringBuffer, Object[])
                            CoreActionType.CLIENT_FRAME_CHANGED,
                            null, getContainer());
                        setSelected(true);
    //#TextFrame.java:298: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setSelected(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setSelected(bool)
                    }
                } catch (PropertyVetoException ex) {
                    //Ignore
                }
            }
    //#TextFrame.java:303: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$5.run()
        });
    }
    //#TextFrame.java:305: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.activateFrame()

    /** Closes this frame. */
    @Override
    public void close() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:310: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6.com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:310: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6.com.dmdirc.addons.ui_swing.components.frames.TextFrame$6(TextFrame)
    //#TextFrame.java:310: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.close()
    //#TextFrame.java:310: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void close()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void close()): this

            @Override
            public void run() {
                if (closing) {
    //#TextFrame.java:314: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6.run()
    //#input(void run()): com.dmdirc.logger.ErrorLevel.LOW
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.closing
    //#output(void run()): this.this$0.closing
    //#pre[1] (void run()): init'ed(this.closing)
    //#pre[3] (void run()): (soft) this.this$0 != null
    //#presumption(void run()): init'ed(com.dmdirc.logger.ErrorLevel.LOW)
    //#post(void run()): this.this$0.closing == 1
    //#test_vector(void run()): this.closing: {0}, {1}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isClosed(...)@321: {1}, {0}
                    return;
                }

                closing = true;

                try {
                    if (!isClosed()) {
    //#TextFrame.java:321: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isClosed()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$6
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isClosed()
                        setClosed(true);
    //#TextFrame.java:322: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setClosed(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$6
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setClosed(bool)
                    }
                } catch (PropertyVetoException ex) {
                    Logger.userError(ErrorLevel.LOW, "Unable to close frame");
    //#TextFrame.java:325: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$6
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
                }

            }
    //#TextFrame.java:328: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$6.run()
        });
    }
    //#TextFrame.java:330: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.close()

    /** {@inheritDoc} */
    @Override
    public void minimise() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:335: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7.com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:335: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7.com.dmdirc.addons.ui_swing.components.frames.TextFrame$7(TextFrame)
    //#TextFrame.java:335: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.minimise()
    //#TextFrame.java:335: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void minimise()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void minimise()): this

            @Override
            public void run() {
                try {
                    if (!isIcon()) {
    //#TextFrame.java:340: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7.run()
    //#TextFrame.java:340: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$7
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
    //#input(void run()): com.dmdirc.logger.ErrorLevel.LOW
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#pre[2] (void run()): (soft) this.this$0 != null
    //#presumption(void run()): init'ed(com.dmdirc.logger.ErrorLevel.LOW)
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon(...)@340: {1}, {0}
                        setIcon(true);
    //#TextFrame.java:341: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$7
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
                    }
                } catch (PropertyVetoException ex) {
                    Logger.userError(ErrorLevel.LOW, "Unable to minimise frame");
    //#TextFrame.java:344: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$7
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
                }
            }
    //#TextFrame.java:346: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$7.run()
        });
    }
    //#TextFrame.java:348: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.minimise()

    /** {@inheritDoc} */
    @Override
    public void maximise() {
        LOGGER.finest("maximise(): About to invokeAndWait");
    //#TextFrame.java:353: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.maximise()
    //#input(void maximise()): LOGGER
    //#input(void maximise()): this
    //#presumption(void maximise()): java.util.logging.Logger:getLogger(...)@103 != null

        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:355: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8.com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:355: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8.com.dmdirc.addons.ui_swing.components.frames.TextFrame$8(TextFrame)
    //#TextFrame.java:355: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void maximise()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)

            /** {@inheritDoc} */
            @Override
            public void run() {
                LOGGER.finest("maximise(): Running");
    //#TextFrame.java:360: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8.run()
    //#input(void run()): com.dmdirc.logger.ErrorLevel.LOW
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.LOGGER
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.maximiseRestoreInProgress
    //#pre[2] (void run()): (soft) this.this$0 != null
    //#pre[3] (void run()): (soft) this.maximiseRestoreInProgress != null
    //#presumption(void run()): init'ed(com.dmdirc.logger.ErrorLevel.LOW)
    //#presumption(void run()): java.util.logging.Logger:getLogger(...)@103 != null
    //#presumption(void run()): java.util.logging.Logger:getLogger(...)@103 != null
    //#presumption(void run()): java.util.logging.Logger:getLogger(...)@103 != null
    //#presumption(void run()): java.util.logging.Logger:getLogger(...)@103 != null
    //#presumption(void run()): java.util.logging.Logger:getLogger(...)@103 != null
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon(...)@369: {0}, {1}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum(...)@363: {0}, {1}

                try {
                    if (isMaximum()) {
    //#TextFrame.java:363: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
                        return;
                    }

                    maximiseRestoreInProgress.set(true);
                    LOGGER.finest("maximise(): About to set icon");
                    if (isIcon()) {
    //#TextFrame.java:369: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
                        setIcon(false);
    //#TextFrame.java:370: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
                    }
                    LOGGER.finest("maximise(): About to set maximum");
                    setMaximum(true);
    //#TextFrame.java:373: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximum(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximum(bool)
                    LOGGER.finest("maximise(): Done?");
                } catch (PropertyVetoException ex) {
                    Logger.userError(ErrorLevel.LOW, "Unable to minimise frame");
    //#TextFrame.java:376: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
                }
                maximiseRestoreInProgress.set(false);

                LOGGER.finest("maximise(): Done running");
            }
    //#TextFrame.java:381: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$8.run()
        });
        LOGGER.finest("maximise(): Done");
    }
    //#TextFrame.java:384: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.maximise()

    /** {@inheritDoc} */
    @Override
    public void restore() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:389: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9.com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:389: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9.com.dmdirc.addons.ui_swing.components.frames.TextFrame$9(TextFrame)
    //#TextFrame.java:389: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.restore()
    //#TextFrame.java:389: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void restore()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void restore()): this

            /** {@inheritDoc} */
            @Override
            public void run() {
                try {
                    if (!isMaximum()) {
    //#TextFrame.java:395: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9.run()
    //#TextFrame.java:395: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#input(void run()): com.dmdirc.logger.ErrorLevel.LOW
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.maximiseRestoreInProgress
    //#pre[2] (void run()): (soft) this.this$0 != null
    //#pre[3] (void run()): (soft) this.maximiseRestoreInProgress != null
    //#presumption(void run()): init'ed(com.dmdirc.logger.ErrorLevel.LOW)
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon(...)@400: {0}, {1}
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum(...)@395: {1}, {0}
                        return;
                    }

                    maximiseRestoreInProgress.set(true);
                    if (isIcon()) {
    //#TextFrame.java:400: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isIcon()
                        setIcon(false);
    //#TextFrame.java:401: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setIcon(bool)
                    }
                    setMaximum(false);
    //#TextFrame.java:403: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximum(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setMaximum(bool)
                } catch (PropertyVetoException ex) {
                    Logger.userError(ErrorLevel.LOW, "Unable to minimise frame");
    //#TextFrame.java:405: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:userError(ErrorLevel, String)
                }
                maximiseRestoreInProgress.set(false);
            }
    //#TextFrame.java:408: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$9.run()
        });
    }
    //#TextFrame.java:410: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.restore()

    /** {@inheritDoc} */
    @Override
    public void toggleMaximise() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:415: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10.com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:415: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10.com.dmdirc.addons.ui_swing.components.frames.TextFrame$10(TextFrame)
    //#TextFrame.java:415: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.toggleMaximise()
    //#TextFrame.java:415: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void toggleMaximise()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void toggleMaximise()): this

            /** {@inheritDoc} */
            @Override
            public void run() {
                if (isMaximum()) {
    //#TextFrame.java:420: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10.run()
    //#TextFrame.java:420: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$10
    //#    method: void run()
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.LOGGER
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.maximise()V
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.restore()V
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.__Tag
    //#pre[2] (void run()): this.this$0 != null
    //#pre[3] (void run()): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void run()): Effects-of-calling:java.util.logging.Logger:finest
    //#test_vector(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum(...)@420: {0}, {1}
                    restore();
                } else {
                    maximise();
                }
            }
    //#TextFrame.java:425: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$10.run()
        });
    }
    //#TextFrame.java:427: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.toggleMaximise()

    /** {@inheritDoc} */
    @Override
    public final void addLine(final String line, final boolean timestamp) {
        final String encodedLine = transcoder.decode(line);
    //#TextFrame.java:432: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.addLine(String, bool)
    //#TextFrame.java:432: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.util.StringTranscoder:decode(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void addLine(String, bool)
    //#    unanalyzed callee: String com.dmdirc.util.StringTranscoder:decode(String)
    //#input(void addLine(String, bool)): line
    //#input(void addLine(String, bool)): this
    //#input(void addLine(String, bool)): this.transcoder
    //#input(void addLine(String, bool)): timestamp
    //#pre[3] (void addLine(String, bool)): this.transcoder != null
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:433: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11.com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): Param_3
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this.val$encodedLine
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this.val$timestamp
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this.val$encodedLine == Param_2
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): init'ed(this.val$encodedLine)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): this.val$timestamp == Param_3
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)): init'ed(this.val$timestamp)
    //#TextFrame.java:433: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11.com.dmdirc.addons.ui_swing.components.frames.TextFrame$11(TextFrame, String, bool)
    //#TextFrame.java:433: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void addLine(String, bool)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)

            /** {@inheritDoc} */
            @Override
            public void run() {
                final List<String[]> lines = new LinkedList<String[]>();
    //#TextFrame.java:438: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11.run()
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[others]
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void run()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.__Tag
    //#input(void run()): this.this$0.frameBufferSize
    //#input(void run()): this.this$0.frameParent
    //#input(void run()): this.this$0.textPane
    //#input(void run()): this.val$encodedLine
    //#input(void run()): this.val$encodedLine._tainted
    //#input(void run()): this.val$timestamp
    //#pre[2] (void run()): this.this$0 != null
    //#pre[4] (void run()): init'ed(this.frameBufferSize)
    //#pre[6] (void run()): this.textPane != null
    //#pre[7] (void run()): this.val$encodedLine != null
    //#presumption(void run()): com.dmdirc.addons.ui_swing.textpane.TextPane:getDocument(...)@461 != null
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#unanalyzed(void run()): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#test_vector(void run()): this.frameBufferSize: {-2_147_483_648..0}, {1..4_294_967_295}
                for (final String myLine : encodedLine.split("\n")) {
    //#TextFrame.java:439: ?use of default init
    //#    init'ed(arr$.length)
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    basic block: Entry_BB_1
    //#    assertion: init'ed(arr$.length)
    //#    VN: undefined
    //#    Expected: {-Inf..+Inf}
    //#    Bad: {Invalid}
    //#    Attribs:  Int  Bad only invalid
    //#TextFrame.java:439: ?use of default init
    //#    init'ed(len$)
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    basic block: bb_2
    //#    assertion: init'ed(len$)
    //#    VN: undefined
    //#    Expected: {-Inf..+Inf}
    //#    Bad: {Invalid}
    //#    Attribs:  Int  Bad only invalid
    //#TextFrame.java:439: Warning: test always goes same way
    //#    Test predetermined because i$ == len$
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    from bb: bb_2
    //#    live edge: bb_2-->bb_7
    //#    tested vn: i$ - undefined
    //#    tested vn values: {0}
    //#TextFrame.java:439: Warning: dead code
    //#    Dead code here because i$ == len$
    //#    severity: LOW
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    dead bb: bb_3
                    if (timestamp) {
                        lines.add(new String[]{
    //#TextFrame.java:441: Warning: dead code continues
    //#    Dead code continues
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    dead bb: bb_4
                                    Formatter.formatMessage(getConfigManager(),
                                    "timestamp", new Date()), myLine,});
                    } else {
                        lines.add(new String[]{myLine,});
    //#TextFrame.java:445: Warning: dead code continues
    //#    Dead code continues
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    dead bb: bb_5
                    }

                    new LoggingSwingWorker() {
    //#TextFrame.java:448: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)
    //#TextFrame.java:448: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): this.this$1
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): this.val$myLine
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): this.this$1 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): init'ed(this.this$1)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): this.val$myLine == Param_2
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)): init'ed(this.val$myLine)
    //#TextFrame.java:448: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1(TextFrame$11, String)
    //#TextFrame.java:448: Warning: dead code continues
    //#    Dead code continues
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    dead bb: bb_6

                        /** {@inheritDoc} */
                        @Override
                        protected Object doInBackground() throws Exception {
                            ActionManager.processEvent(
    //#TextFrame.java:453: method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.doInBackground()
    //#TextFrame.java:453: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.actions.ActionManager:processEvent(ActionType, StringBuffer, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1
    //#    method: Object doInBackground()
    //#    unanalyzed callee: void com.dmdirc.actions.ActionManager:processEvent(ActionType, StringBuffer, Object[])
    //#input(Object doInBackground()): com.dmdirc.actions.CoreActionType.CLIENT_LINE_ADDED
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Descendant_Table[others]
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.__Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.this$1
    //#input(Object doInBackground()): this.this$1.this$0
    //#input(Object doInBackground()): this.this$1.this$0.__Tag
    //#input(Object doInBackground()): this.this$1.this$0.frameParent
    //#input(Object doInBackground()): this.val$myLine
    //#output(Object doInBackground()): return_value
    //#pre[2] (Object doInBackground()): this.this$1 != null
    //#pre[3] (Object doInBackground()): this.this$0 != null
    //#pre[4] (Object doInBackground()): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#presumption(Object doInBackground()): init'ed(com.dmdirc.actions.CoreActionType.CLIENT_LINE_ADDED)
    //#post(Object doInBackground()): return_value == null
                                    CoreActionType.CLIENT_LINE_ADDED,
                                    null, getContainer(), myLine);
                            return null;
    //#TextFrame.java:456: end of method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.doInBackground()
                        }
                    }.execute();
                }

                textPane.getDocument().addText(lines);
    //#TextFrame.java:461: Warning: method not available - call not analyzed
    //#    call on IRCDocument com.dmdirc.addons.ui_swing.textpane.TextPane:getDocument()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    unanalyzed callee: IRCDocument com.dmdirc.addons.ui_swing.textpane.TextPane:getDocument()
    //#TextFrame.java:461: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.IRCDocument:addText(List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.IRCDocument:addText(List)

                if (frameBufferSize > 0) {
                    textPane.trim(frameBufferSize);
    //#TextFrame.java:464: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:trim(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:trim(int)
                }
            }
    //#TextFrame.java:466: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$11.run()
        });
    }
    //#TextFrame.java:468: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.addLine(String, bool)

    /** {@inheritDoc} */
    @Override
    public final void addLine(final String messageType,
            final Object... args) {
        if (!messageType.isEmpty()) {
    //#TextFrame.java:474: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.addLine(String, Object[])
    //#input(void addLine(String, Object[])): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void addLine(String, Object[])): __Descendant_Table[others]
    //#input(void addLine(String, Object[])): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void addLine(String, Object[])): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void addLine(String, Object[])): args
    //#input(void addLine(String, Object[])): messageType
    //#input(void addLine(String, Object[])): this
    //#input(void addLine(String, Object[])): this.__Tag
    //#input(void addLine(String, Object[])): this.frameParent
    //#input(void addLine(String, Object[])): this.transcoder
    //#pre[2] (void addLine(String, Object[])): messageType != null
    //#pre[4] (void addLine(String, Object[])): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[5] (void addLine(String, Object[])): (soft) this.frameParent != null
    //#pre[6] (void addLine(String, Object[])): (soft) this.transcoder != null
    //#unanalyzed(void addLine(String, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void addLine(String, Object[])): Effects-of-calling:com.dmdirc.util.StringTranscoder:decode
    //#unanalyzed(void addLine(String, Object[])): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#test_vector(void addLine(String, Object[])): java.lang.String:isEmpty(...)@474: {1}, {0}
            addLine(Formatter.formatMessage(getConfigManager(), messageType,
    //#TextFrame.java:475: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.ui.messages.Formatter:formatMessage(ConfigManager, String, Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void addLine(String, Object[])
    //#    unanalyzed callee: String com.dmdirc.ui.messages.Formatter:formatMessage(ConfigManager, String, Object[])
                    args), true);
        }

    }
    //#TextFrame.java:479: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.addLine(String, Object[])

    /** {@inheritDoc} */
    @Override
    public final void addLine(final StringBuffer messageType,
            final Object... args) {
        if (messageType != null) {
    //#TextFrame.java:485: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.addLine(StringBuffer, Object[])
    //#input(void addLine(StringBuffer, Object[])): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void addLine(StringBuffer, Object[])): __Descendant_Table[others]
    //#input(void addLine(StringBuffer, Object[])): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void addLine(StringBuffer, Object[])): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void addLine(StringBuffer, Object[])): args
    //#input(void addLine(StringBuffer, Object[])): messageType
    //#input(void addLine(StringBuffer, Object[])): messageType._tainted
    //#input(void addLine(StringBuffer, Object[])): this
    //#input(void addLine(StringBuffer, Object[])): this.__Tag
    //#input(void addLine(StringBuffer, Object[])): this.frameParent
    //#input(void addLine(StringBuffer, Object[])): this.transcoder
    //#pre[5] (void addLine(StringBuffer, Object[])): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[6] (void addLine(StringBuffer, Object[])): (soft) this.frameParent != null
    //#pre[7] (void addLine(StringBuffer, Object[])): (soft) this.transcoder != null
    //#unanalyzed(void addLine(StringBuffer, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#unanalyzed(void addLine(StringBuffer, Object[])): Effects-of-calling:com.dmdirc.util.StringTranscoder:decode
    //#unanalyzed(void addLine(StringBuffer, Object[])): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void addLine(StringBuffer, Object[])): Effects-of-calling:java.lang.String:isEmpty
    //#unanalyzed(void addLine(StringBuffer, Object[])): Effects-of-calling:com.dmdirc.ui.messages.Formatter:formatMessage
    //#test_vector(void addLine(StringBuffer, Object[])): messageType: Addr_Set{null}, Inverse{null}
            addLine(messageType.toString(), args);
        }

    }
    //#TextFrame.java:489: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.addLine(StringBuffer, Object[])

    /** {@inheritDoc} */
    @Override
    public final void clear() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:494: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12.com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:494: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12.com.dmdirc.addons.ui_swing.components.frames.TextFrame$12(TextFrame)
    //#TextFrame.java:494: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.clear()
    //#TextFrame.java:494: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void clear()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void clear()): this

            /** {@inheritDoc} */
            @Override
            public void run() {
                getTextPane().clear();
    //#TextFrame.java:499: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12.run()
    //#TextFrame.java:499: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:clear()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$12
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:clear()
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.textPane
    //#pre[2] (void run()): this.this$0 != null
    //#pre[3] (void run()): this.textPane != null
            }
    //#TextFrame.java:500: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$12.run()
        });
    }
    //#TextFrame.java:502: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.clear()

    /**
     * Initialises the components for this frame.
     */
    private void initComponents() {
        setTextPane(new TextPane(getContainer()));
    //#TextFrame.java:508: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.initComponents()
    //#TextFrame.java:508: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane(FrameContainer)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane(FrameContainer)
    //#input(void initComponents()): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void initComponents()): __Descendant_Table[others]
    //#input(void initComponents()): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void initComponents()): this
    //#input(void initComponents()): this.__Tag
    //#input(void initComponents()): this.controller
    //#input(void initComponents()): this.frameParent
    //#output(void initComponents()): new SwingSearchBar(initComponents#2) num objects
    //#output(void initComponents()): new TextPane(initComponents#1) num objects
    //#output(void initComponents()): this.searchBar
    //#output(void initComponents()): this.textPane
    //#new obj(void initComponents()): new SwingSearchBar(initComponents#2)
    //#new obj(void initComponents()): new TextPane(initComponents#1)
    //#pre[2] (void initComponents()): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[3] (void initComponents()): this.controller != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap(...)@532 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap(...)@534 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap(...)@536 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(...)@517 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(...)@521 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(...)@525 != null
    //#presumption(void initComponents()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(...)@528 != null
    //#post(void initComponents()): this.searchBar == &new SwingSearchBar(initComponents#2)
    //#post(void initComponents()): this.textPane == &new TextPane(initComponents#1)
    //#post(void initComponents()): new SwingSearchBar(initComponents#2) num objects == 1
    //#post(void initComponents()): new TextPane(initComponents#1) num objects == 1

        getTextPane().addMouseListener(this);
    //#TextFrame.java:510: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:addMouseListener(MouseListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:addMouseListener(MouseListener)
        getTextPane().addKeyListener(this);
    //#TextFrame.java:511: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:addKeyListener(KeyListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:addKeyListener(KeyListener)

        searchBar = new SwingSearchBar(this, controller.getMainFrame());
    //#TextFrame.java:513: Warning: method not available - call not analyzed
    //#    call on MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: MainFrame com.dmdirc.addons.ui_swing.SwingController:getMainFrame()
    //#TextFrame.java:513: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.SwingSearchBar(TextFrame, Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.SwingSearchBar(TextFrame, Window)
        searchBar.setVisible(false);
    //#TextFrame.java:514: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.SwingSearchBar:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.SwingSearchBar:setVisible(bool)
        searchBar.addKeyListener(this);
    //#TextFrame.java:515: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.SwingSearchBar:addKeyListener(KeyListener)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.SwingSearchBar:addKeyListener(KeyListener)

        getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
    //#TextFrame.java:517: Warning: method not available - call not analyzed
    //#    call on InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
                put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP, 0),
                "pageUpAction");

        getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
    //#TextFrame.java:521: Warning: method not available - call not analyzed
    //#    call on InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
                put(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN, 0),
                "pageDownAction");

        getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
    //#TextFrame.java:525: Warning: method not available - call not analyzed
    //#    call on InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
                put(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), "searchAction");

        getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
    //#TextFrame.java:528: Warning: method not available - call not analyzed
    //#    call on InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: InputMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getInputMap(int)
    //#TextFrame.java:528: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.UIUtilities:getCtrlDownMask()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.UIUtilities:getCtrlDownMask()
                put(KeyStroke.getKeyStroke(KeyEvent.VK_F,
                UIUtilities.getCtrlDownMask()), "searchAction");

        getActionMap().put("pageUpAction",
    //#TextFrame.java:532: Warning: method not available - call not analyzed
    //#    call on ActionMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: ActionMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap()
    //#TextFrame.java:532: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPanePageUpAction(TextPane)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPanePageUpAction(TextPane)
                new TextPanePageUpAction(getTextPane()));
        getActionMap().put("pageDownAction",
    //#TextFrame.java:534: Warning: method not available - call not analyzed
    //#    call on ActionMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: ActionMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap()
    //#TextFrame.java:534: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPanePageDownAction(TextPane)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPanePageDownAction(TextPane)
                new TextPanePageDownAction(getTextPane()));
        getActionMap().put("searchAction", new SearchAction(searchBar));
    //#TextFrame.java:536: Warning: method not available - call not analyzed
    //#    call on ActionMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: ActionMap com.dmdirc.addons.ui_swing.components.frames.TextFrame:getActionMap()
    //#TextFrame.java:536: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.SearchAction(SwingSearchBar)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void initComponents()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.SearchAction(SwingSearchBar)
    }
    //#TextFrame.java:537: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.initComponents()

    /**
     * Removes and reinserts the border of an internal frame on maximising.
     * {@inheritDoc}
     * 
     * @param event Property change event
     */
    @Override
    public final void propertyChange(final PropertyChangeEvent event) {
        LOGGER.finer("Property change: name: " + event.getPropertyName() +
    //#TextFrame.java:547: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.propertyChange(PropertyChangeEvent)
    //#input(void propertyChange(PropertyChangeEvent)): " value: "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "->"._tainted
    //#input(void propertyChange(PropertyChangeEvent)): "Property change: name: "._tainted
    //#input(void propertyChange(PropertyChangeEvent)): LOGGER
    //#input(void propertyChange(PropertyChangeEvent)): event
    //#input(void propertyChange(PropertyChangeEvent)): this
    //#pre[1] (void propertyChange(PropertyChangeEvent)): event != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.beans.PropertyChangeEvent:getNewValue(...)@554 != null
    //#presumption(void propertyChange(PropertyChangeEvent)): java.util.logging.Logger:getLogger(...)@103 != null
    //#unanalyzed(void propertyChange(PropertyChangeEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.UIUtilities:invokeLater
    //#test_vector(void propertyChange(PropertyChangeEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum(...)@550: {0}, {1}
    //#test_vector(void propertyChange(PropertyChangeEvent)): java.lang.Boolean:booleanValue(...)@554: {0}, {1}
    //#test_vector(void propertyChange(PropertyChangeEvent)): java.lang.String:equals(...)@549: {0}, {1}
                " value: " + event.getOldValue() + "->" + event.getNewValue());
        if ("UI".equals(event.getPropertyName())) {
            if (isMaximum()) {
    //#TextFrame.java:550: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void propertyChange(PropertyChangeEvent)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.frames.TextFrame:isMaximum()
                hideTitlebar();
            }
        } else {
            if ((Boolean) event.getNewValue()) {
                hideTitlebar();
            } else {
                showTitlebar();
            }
        }
        LOGGER.finest("Done property change");
    }
    //#TextFrame.java:561: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.propertyChange(PropertyChangeEvent)

    /** Hides the titlebar for this frame. */
    private void hideTitlebar() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:565: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13.com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:565: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13.com.dmdirc.addons.ui_swing.components.frames.TextFrame$13(TextFrame)
    //#TextFrame.java:565: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.hideTitlebar()
    //#TextFrame.java:565: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void hideTitlebar()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void hideTitlebar()): this

            /** {@inheritDoc} */
            @Override
            public void run() {
                setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    //#TextFrame.java:570: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13.run()
    //#TextFrame.java:570: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$13
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setBorder(Border)
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#pre[2] (void run()): this.this$0 != null
    //#presumption(void run()): com.dmdirc.addons.ui_swing.components.frames.TextFrame:getUI(...)@571 != null
                ((BasicInternalFrameUI) getUI()).setNorthPane(null);
    //#TextFrame.java:571: Warning: method not available - call not analyzed
    //#    call on InternalFrameUI com.dmdirc.addons.ui_swing.components.frames.TextFrame:getUI()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$13
    //#    method: void run()
    //#    unanalyzed callee: InternalFrameUI com.dmdirc.addons.ui_swing.components.frames.TextFrame:getUI()
            }
    //#TextFrame.java:572: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$13.run()
        });
    }
    //#TextFrame.java:574: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.hideTitlebar()

    /** Shows the titlebar for this frame. */
    private void showTitlebar() {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:578: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14.com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:578: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14.com.dmdirc.addons.ui_swing.components.frames.TextFrame$14(TextFrame)
    //#TextFrame.java:578: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.showTitlebar()
    //#TextFrame.java:578: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showTitlebar()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void showTitlebar()): this

            /** {@inheritDoc} */
            @Override
            public void run() {
                final Class<?> c;
                Object temp = null;
    //#TextFrame.java:584: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14.run()
    //#input(void run()): com.dmdirc.logger.ErrorLevel.MEDIUM
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#pre[2] (void run()): this.this$0 != null
    //#presumption(void run()): init'ed(com.dmdirc.logger.ErrorLevel.MEDIUM)
    //#presumption(void run()): java.lang.Class:getClassLoader(...)@594 != null
    //#presumption(void run()): java.lang.Class:getConstructor(...)@595 != null
    //#presumption(void run()): java.lang.ClassLoader:loadClass(...)@594 != null
    //#presumption(void run()): java.lang.Object:getClass(...)@594 != null
    //#test_vector(void run()): java.lang.String:equals(...)@590: {0}, {1}
                Constructor<?> constructor;

                final String componentUI = (String) UIManager.get(
                        "InternalFrameUI");

                if ("javax.swing.plaf.synth.SynthLookAndFeel".equals(componentUI)) {
                    temp = SynthLookAndFeel.createUI(TextFrame.this);
                } else {
                    try {
                        c = getClass().getClassLoader().loadClass(componentUI);
                        constructor =
                                c.getConstructor(new Class[]{
                                    javax.swing.JInternalFrame.class});
                        temp =
                                constructor.newInstance(new Object[]{
                                    TextFrame.this});
                    } catch (ClassNotFoundException ex) {
                        Logger.appError(ErrorLevel.MEDIUM,
    //#TextFrame.java:602: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
                                "Unable to readd titlebar",
                                ex);
                    } catch (NoSuchMethodException ex) {
                        Logger.appError(ErrorLevel.MEDIUM,
    //#TextFrame.java:606: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
                                "Unable to readd titlebar",
                                ex);
                    } catch (InstantiationException ex) {
                        Logger.appError(ErrorLevel.MEDIUM,
    //#TextFrame.java:610: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
                                "Unable to readd titlebar",
                                ex);
                    } catch (IllegalAccessException ex) {
                        Logger.appError(ErrorLevel.MEDIUM,
    //#TextFrame.java:614: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
                                "Unable to readd titlebar",
                                ex);
                    } catch (InvocationTargetException ex) {
                        Logger.appError(ErrorLevel.MEDIUM,
    //#TextFrame.java:618: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
                                "Unable to readd titlebar",
                                ex);
                    }

                }

                setBorder(UIManager.getBorder("InternalFrame.border"));
    //#TextFrame.java:625: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setBorder(Border)
                if (temp == null) {
                    temp = new BasicInternalFrameUI(TextFrame.this);
                }

                setUI((BasicInternalFrameUI) temp);
    //#TextFrame.java:630: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setUI(InternalFrameUI)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame:setUI(InternalFrameUI)
            }
    //#TextFrame.java:631: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$14.run()
        });
    }
    //#TextFrame.java:633: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.showTitlebar()

    /**
     * Not needed for this class. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameOpened(final InternalFrameEvent event) {
        new LoggingSwingWorker() {
    //#TextFrame.java:642: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15.com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)
    //#TextFrame.java:642: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$15
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:642: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15.com.dmdirc.addons.ui_swing.components.frames.TextFrame$15(TextFrame)
    //#TextFrame.java:642: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameOpened(InternalFrameEvent)
    //#TextFrame.java:642: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15:execute()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void internalFrameOpened(InternalFrameEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$15:execute()
    //#input(void internalFrameOpened(InternalFrameEvent)): this
    //#unanalyzed(void internalFrameOpened(InternalFrameEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker

            /** {@inheritDoc} */
            @Override
            protected Object doInBackground() throws Exception {
                frameParent.windowOpened();
    //#TextFrame.java:647: method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$15.doInBackground()
    //#TextFrame.java:647: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.FrameContainer:windowOpened()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$15
    //#    method: Object doInBackground()
    //#    unanalyzed callee: void com.dmdirc.FrameContainer:windowOpened()
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.this$0
    //#input(Object doInBackground()): this.this$0.frameParent
    //#output(Object doInBackground()): return_value
    //#pre[2] (Object doInBackground()): this.this$0 != null
    //#pre[3] (Object doInBackground()): this.frameParent != null
    //#post(Object doInBackground()): return_value == null
                return null;
    //#TextFrame.java:648: end of method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$15.doInBackground()
            }
        }.execute();
    }
    //#TextFrame.java:651: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameOpened(InternalFrameEvent)

    /**
     * Not needed for this class. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameClosing(final InternalFrameEvent event) {
        new LoggingSwingWorker() {
    //#TextFrame.java:660: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16.com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)
    //#TextFrame.java:660: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$16
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:660: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16.com.dmdirc.addons.ui_swing.components.frames.TextFrame$16(TextFrame)
    //#TextFrame.java:660: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameClosing(InternalFrameEvent)
    //#TextFrame.java:660: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16:execute()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void internalFrameClosing(InternalFrameEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$16:execute()
    //#input(void internalFrameClosing(InternalFrameEvent)): this
    //#unanalyzed(void internalFrameClosing(InternalFrameEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker

            /** {@inheritDoc} */
            @Override
            protected Object doInBackground() throws Exception {
                frameParent.windowClosing();
    //#TextFrame.java:665: method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$16.doInBackground()
    //#TextFrame.java:665: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.FrameContainer:windowClosing()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$16
    //#    method: Object doInBackground()
    //#    unanalyzed callee: void com.dmdirc.FrameContainer:windowClosing()
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.this$0
    //#input(Object doInBackground()): this.this$0.frameParent
    //#output(Object doInBackground()): return_value
    //#pre[2] (Object doInBackground()): this.this$0 != null
    //#pre[3] (Object doInBackground()): this.frameParent != null
    //#post(Object doInBackground()): return_value == null
                return null;
    //#TextFrame.java:666: end of method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$16.doInBackground()
            }
        }.execute();
    }
    //#TextFrame.java:669: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameClosing(InternalFrameEvent)

    /**
     * Not needed for this class. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameClosed(final InternalFrameEvent event) {
        new LoggingSwingWorker() {
    //#TextFrame.java:678: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17.com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)
    //#TextFrame.java:678: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$17
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:678: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17.com.dmdirc.addons.ui_swing.components.frames.TextFrame$17(TextFrame)
    //#TextFrame.java:678: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameClosed(InternalFrameEvent)
    //#TextFrame.java:678: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17:execute()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void internalFrameClosed(InternalFrameEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$17:execute()
    //#input(void internalFrameClosed(InternalFrameEvent)): this
    //#unanalyzed(void internalFrameClosed(InternalFrameEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker

            /** {@inheritDoc} */
            @Override
            protected Object doInBackground() throws Exception {
                frameParent.windowClosed();
    //#TextFrame.java:683: method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$17.doInBackground()
    //#TextFrame.java:683: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.FrameContainer:windowClosed()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$17
    //#    method: Object doInBackground()
    //#    unanalyzed callee: void com.dmdirc.FrameContainer:windowClosed()
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.this$0
    //#input(Object doInBackground()): this.this$0.frameParent
    //#output(Object doInBackground()): return_value
    //#pre[2] (Object doInBackground()): this.this$0 != null
    //#pre[3] (Object doInBackground()): this.frameParent != null
    //#post(Object doInBackground()): return_value == null
                return null;
    //#TextFrame.java:684: end of method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$17.doInBackground()
            }
        }.execute();
    }
    //#TextFrame.java:687: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameClosed(InternalFrameEvent)

    /**
     * Makes the internal frame invisible. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameIconified(final InternalFrameEvent event) {
        UIUtilities.invokeLater(new Runnable() {
    //#TextFrame.java:696: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18.com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): Param_2
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): this.this$0
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): this.val$event
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): init'ed(this.this$0)
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): this.val$event == Param_2
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)): init'ed(this.val$event)
    //#TextFrame.java:696: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18.com.dmdirc.addons.ui_swing.components.frames.TextFrame$18(TextFrame, InternalFrameEvent)
    //#TextFrame.java:696: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameIconified(InternalFrameEvent)
    //#TextFrame.java:696: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void internalFrameIconified(InternalFrameEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.UIUtilities:invokeLater(Runnable)
    //#input(void internalFrameIconified(InternalFrameEvent)): event
    //#input(void internalFrameIconified(InternalFrameEvent)): this

            @Override
            public void run() {
                event.getInternalFrame().setVisible(false);
    //#TextFrame.java:700: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18.run()
    //#input(void run()): this
    //#input(void run()): this.val$event
    //#pre[2] (void run()): this.val$event != null
    //#presumption(void run()): javax.swing.event.InternalFrameEvent:getInternalFrame(...)@700 != null
            }
    //#TextFrame.java:701: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$18.run()
        });
    }
    //#TextFrame.java:703: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameIconified(InternalFrameEvent)

    /**
     * Not needed for this class. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameDeiconified(final InternalFrameEvent event) {
        //Ignore.
        }
    //#TextFrame.java:713: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameDeiconified(InternalFrameEvent)
    //#TextFrame.java:713: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameDeiconified(InternalFrameEvent)

    /**
     * Activates the input field on frame focus. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameActivated(final InternalFrameEvent event) {
        LOGGER.finer(getName() + ": internalFrameActivated()");
    //#TextFrame.java:722: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameActivated(InternalFrameEvent)
    //#input(void internalFrameActivated(InternalFrameEvent)): ""._tainted
    //#input(void internalFrameActivated(InternalFrameEvent)): ": internalFrameActivated()"._tainted
    //#input(void internalFrameActivated(InternalFrameEvent)): LOGGER
    //#input(void internalFrameActivated(InternalFrameEvent)): this
    //#input(void internalFrameActivated(InternalFrameEvent)): this.frameParent
    //#input(void internalFrameActivated(InternalFrameEvent)): this.frameParent._tainted
    //#input(void internalFrameActivated(InternalFrameEvent)): this.maximiseRestoreInProgress
    //#pre[4] (void internalFrameActivated(InternalFrameEvent)): this.maximiseRestoreInProgress != null
    //#presumption(void internalFrameActivated(InternalFrameEvent)): java.util.logging.Logger:getLogger(...)@103 != null
    //#unanalyzed(void internalFrameActivated(InternalFrameEvent)): Effects-of-calling:com.dmdirc.FrameContainer:toString
    //#unanalyzed(void internalFrameActivated(InternalFrameEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#test_vector(void internalFrameActivated(InternalFrameEvent)): java.util.concurrent.atomic.AtomicBoolean:get(...)@724: {0}, {1}

        if (maximiseRestoreInProgress.get()) {
            return;
        }
        new LoggingSwingWorker() {
    //#TextFrame.java:727: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19.com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)
    //#TextFrame.java:727: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$19
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:727: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19.com.dmdirc.addons.ui_swing.components.frames.TextFrame$19(TextFrame)
    //#TextFrame.java:727: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19:execute()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void internalFrameActivated(InternalFrameEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$19:execute()

            /** {@inheritDoc} */
            @Override
            protected Object doInBackground() throws Exception {
                LOGGER.finer(getName() +
    //#TextFrame.java:732: method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$19.doInBackground()
    //#input(Object doInBackground()): ""._tainted
    //#input(Object doInBackground()): ": internalFrameActivated(): doInBackground"._tainted
    //#input(Object doInBackground()): com/dmdirc/addons/ui_swing/components/frames/TextFrame.LOGGER
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.this$0
    //#input(Object doInBackground()): this.this$0.frameParent
    //#input(Object doInBackground()): this.this$0.frameParent._tainted
    //#output(Object doInBackground()): return_value
    //#pre[2] (Object doInBackground()): this.this$0 != null
    //#pre[3] (Object doInBackground()): this.frameParent != null
    //#presumption(Object doInBackground()): java.util.logging.Logger:getLogger(...)@103 != null
    //#post(Object doInBackground()): return_value == null
    //#unanalyzed(Object doInBackground()): Effects-of-calling:com.dmdirc.FrameContainer:toString
                        ": internalFrameActivated(): doInBackground");
                frameParent.windowActivated();
    //#TextFrame.java:734: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.FrameContainer:windowActivated()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$19
    //#    method: Object doInBackground()
    //#    unanalyzed callee: void com.dmdirc.FrameContainer:windowActivated()
                return null;
    //#TextFrame.java:735: end of method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$19.doInBackground()
            }
        }.execute();
    }
    //#TextFrame.java:738: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameActivated(InternalFrameEvent)

    /**
     * Not needed for this class. {@inheritDoc}
     * 
     * @param event Internal frame event
     */
    @Override
    public void internalFrameDeactivated(final InternalFrameEvent event) {
        if (maximiseRestoreInProgress.get()) {
    //#TextFrame.java:747: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameDeactivated(InternalFrameEvent)
    //#input(void internalFrameDeactivated(InternalFrameEvent)): this
    //#input(void internalFrameDeactivated(InternalFrameEvent)): this.maximiseRestoreInProgress
    //#pre[2] (void internalFrameDeactivated(InternalFrameEvent)): this.maximiseRestoreInProgress != null
    //#unanalyzed(void internalFrameDeactivated(InternalFrameEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.LoggingSwingWorker
    //#test_vector(void internalFrameDeactivated(InternalFrameEvent)): java.util.concurrent.atomic.AtomicBoolean:get(...)@747: {0}, {1}
            return;
        }
        new LoggingSwingWorker() {
    //#TextFrame.java:750: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20.com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)
    //#TextFrame.java:750: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$20
    //#    method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.LoggingSwingWorker()
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)): this
    //#output(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)): init'ed(this.this$0)
    //#TextFrame.java:750: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20.com.dmdirc.addons.ui_swing.components.frames.TextFrame$20(TextFrame)
    //#TextFrame.java:750: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20:execute()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void internalFrameDeactivated(InternalFrameEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.frames.TextFrame$20:execute()

            /** {@inheritDoc} */
            @Override
            protected Object doInBackground() throws Exception {
                frameParent.windowDeactivated();
    //#TextFrame.java:755: method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$20.doInBackground()
    //#TextFrame.java:755: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.FrameContainer:windowDeactivated()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$20
    //#    method: Object doInBackground()
    //#    unanalyzed callee: void com.dmdirc.FrameContainer:windowDeactivated()
    //#input(Object doInBackground()): this
    //#input(Object doInBackground()): this.this$0
    //#input(Object doInBackground()): this.this$0.frameParent
    //#output(Object doInBackground()): return_value
    //#pre[2] (Object doInBackground()): this.this$0 != null
    //#pre[3] (Object doInBackground()): this.frameParent != null
    //#post(Object doInBackground()): return_value == null
                return null;
    //#TextFrame.java:756: end of method: Object com.dmdirc.addons.ui_swing.components.frames.TextFrame$20.doInBackground()
            }
        }.execute();
    }
    //#TextFrame.java:759: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.internalFrameDeactivated(InternalFrameEvent)

    /** {@inheritDoc} */
    @Override
    public FrameContainer getContainer() {
        return frameParent;
    //#TextFrame.java:764: method: FrameContainer com.dmdirc.addons.ui_swing.components.frames.TextFrame.getContainer()
    //#input(FrameContainer getContainer()): this
    //#input(FrameContainer getContainer()): this.frameParent
    //#output(FrameContainer getContainer()): return_value
    //#post(FrameContainer getContainer()): return_value == this.frameParent
    //#post(FrameContainer getContainer()): init'ed(return_value)
    //#TextFrame.java:764: end of method: FrameContainer com.dmdirc.addons.ui_swing.components.frames.TextFrame.getContainer()
    }

    /** {@inheritDoc} */
    @Override
    public ConfigManager getConfigManager() {
        return getContainer().getConfigManager();
    //#TextFrame.java:770: method: ConfigManager com.dmdirc.addons.ui_swing.components.frames.TextFrame.getConfigManager()
    //#TextFrame.java:770: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: ConfigManager getConfigManager()
    //#    unanalyzed callee: ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#input(ConfigManager getConfigManager()): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(ConfigManager getConfigManager()): __Descendant_Table[others]
    //#input(ConfigManager getConfigManager()): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(ConfigManager getConfigManager()): this
    //#input(ConfigManager getConfigManager()): this.__Tag
    //#input(ConfigManager getConfigManager()): this.frameParent
    //#output(ConfigManager getConfigManager()): return_value
    //#pre[2] (ConfigManager getConfigManager()): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[3] (ConfigManager getConfigManager()): this.frameParent != null
    //#post(ConfigManager getConfigManager()): init'ed(return_value)
    //#TextFrame.java:770: end of method: ConfigManager com.dmdirc.addons.ui_swing.components.frames.TextFrame.getConfigManager()
    }

    /**
     * Returns the text pane for this frame.
     *
     * @return Text pane for this frame
     */
    public final TextPane getTextPane() {
        return textPane;
    //#TextFrame.java:779: method: TextPane com.dmdirc.addons.ui_swing.components.frames.TextFrame.getTextPane()
    //#input(TextPane getTextPane()): this
    //#input(TextPane getTextPane()): this.textPane
    //#output(TextPane getTextPane()): return_value
    //#pre[2] (TextPane getTextPane()): init'ed(this.textPane)
    //#post(TextPane getTextPane()): return_value == this.textPane
    //#post(TextPane getTextPane()): init'ed(return_value)
    //#TextFrame.java:779: end of method: TextPane com.dmdirc.addons.ui_swing.components.frames.TextFrame.getTextPane()
    }

    /**
     * Returns the transcoder for this frame.
     *
     * @return String transcoder for this frame
     */
    @Override
    public StringTranscoder getTranscoder() {
        return transcoder;
    //#TextFrame.java:789: method: StringTranscoder com.dmdirc.addons.ui_swing.components.frames.TextFrame.getTranscoder()
    //#input(StringTranscoder getTranscoder()): this
    //#input(StringTranscoder getTranscoder()): this.transcoder
    //#output(StringTranscoder getTranscoder()): return_value
    //#pre[2] (StringTranscoder getTranscoder()): init'ed(this.transcoder)
    //#post(StringTranscoder getTranscoder()): return_value == this.transcoder
    //#post(StringTranscoder getTranscoder()): init'ed(return_value)
    //#TextFrame.java:789: end of method: StringTranscoder com.dmdirc.addons.ui_swing.components.frames.TextFrame.getTranscoder()
    }

    /** {@inheritDoc} */
    @Override
    public final String getName() {
        if (frameParent == null) {
    //#TextFrame.java:795: method: String com.dmdirc.addons.ui_swing.components.frames.TextFrame.getName()
    //#input(String getName()): this
    //#input(String getName()): this.frameParent
    //#input(String getName()): this.frameParent._tainted
    //#output(String getName()): com.dmdirc.FrameContainer:toString(...)._tainted
    //#output(String getName()): return_value
    //#new obj(String getName()): com.dmdirc.FrameContainer:toString(...)
    //#post(String getName()): init'ed(com.dmdirc.FrameContainer:toString(...)._tainted)
    //#post(String getName()): return_value in Addr_Set{&com.dmdirc.FrameContainer:toString(...),&""}
    //#test_vector(String getName()): this.frameParent: Inverse{null}, Addr_Set{null}
            return "";
        }

        return frameParent.toString();
    //#TextFrame.java:799: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.FrameContainer:toString()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: String getName()
    //#    unanalyzed callee: String com.dmdirc.FrameContainer:toString()
    //#TextFrame.java:799: end of method: String com.dmdirc.addons.ui_swing.components.frames.TextFrame.getName()
    }

    /**
     * Sets the frames text pane.
     *
     * @param newTextPane new text pane to use
     */
    protected final void setTextPane(final TextPane newTextPane) {
        this.textPane = newTextPane;
    //#TextFrame.java:808: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.setTextPane(TextPane)
    //#input(void setTextPane(TextPane)): newTextPane
    //#input(void setTextPane(TextPane)): this
    //#output(void setTextPane(TextPane)): this.textPane
    //#post(void setTextPane(TextPane)): this.textPane == newTextPane
    //#post(void setTextPane(TextPane)): init'ed(this.textPane)
    }
    //#TextFrame.java:809: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.setTextPane(TextPane)

    /**
     * {@inheritDoc}
     * 
     * @param mouseEvent Mouse event
     */
    @Override
    public void mouseClicked(final MouseEvent mouseEvent) {
        if (mouseEvent.getSource() == getTextPane()) {
    //#TextFrame.java:818: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseClicked(MouseEvent)
    //#input(void mouseClicked(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void mouseClicked(MouseEvent)): __Descendant_Table[others]
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#input(void mouseClicked(MouseEvent)): __Dispatch_Table.processMouseClickEvent(Ljava/awt/event/MouseEvent;Lcom/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType;)V
    //#input(void mouseClicked(MouseEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1).length
    //#input(void mouseClicked(MouseEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$21.$SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#input(void mouseClicked(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType.CLICKED
    //#input(void mouseClicked(MouseEvent)): mouseEvent
    //#input(void mouseClicked(MouseEvent)): this
    //#input(void mouseClicked(MouseEvent)): this.__Tag
    //#input(void mouseClicked(MouseEvent)): this.frameParent
    //#input(void mouseClicked(MouseEvent)): this.inputWindow
    //#input(void mouseClicked(MouseEvent)): this.textPane
    //#pre[2] (void mouseClicked(MouseEvent)): mouseEvent != null
    //#pre[1] (void mouseClicked(MouseEvent)): (soft) init'ed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295])
    //#pre[4] (void mouseClicked(MouseEvent)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[5] (void mouseClicked(MouseEvent)): (soft) this.frameParent != null
    //#pre[6] (void mouseClicked(MouseEvent)): (soft) init'ed(this.inputWindow)
    //#pre[7] (void mouseClicked(MouseEvent)): (soft) this.textPane != null
    //#presumption(void mouseClicked(MouseEvent)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length >= 1
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#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:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:populatePopupMenu
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getSource
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:getChannelPopupType
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.ChannelCopyAction
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:add
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:getComponentCount
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:addSeparator
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:getHyperlinkPopupType
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:getNicknamePopupType
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.NicknameCopyAction
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.Point:getX
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.Point:getY
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupManager:getMenu
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getMousePosition
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getClickPosition
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getClickType
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getAttributeValueAtPoint
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:showPopupMenuInternal
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Server:join
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.util.URLHandler:getURLHander
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.util.URLHandler:launchApp
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Server:hasQuery
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Server:getQuery
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Query:activateFrame
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Server:addQuery
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.Query:show
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:javax.swing.JInternalFrame:processMouseEvent
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction
    //#unanalyzed(void mouseClicked(MouseEvent)): Effects-of-calling:addCustomPopupItems
            processMouseClickEvent(mouseEvent, MouseClickType.CLICKED);
        }

    }
    //#TextFrame.java:822: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseClicked(MouseEvent)

    /**
     * {@inheritDoc}
     * 
     * @param mouseEvent Mouse event
     */
    @Override
    public void mousePressed(final MouseEvent mouseEvent) {
        processMouseClickEvent(mouseEvent, MouseClickType.PRESSED);
    //#TextFrame.java:831: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mousePressed(MouseEvent)
    //#input(void mousePressed(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void mousePressed(MouseEvent)): __Descendant_Table[others]
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#input(void mousePressed(MouseEvent)): __Dispatch_Table.processMouseClickEvent(Ljava/awt/event/MouseEvent;Lcom/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType;)V
    //#input(void mousePressed(MouseEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1).length
    //#input(void mousePressed(MouseEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]
    //#input(void mousePressed(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$21.$SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#input(void mousePressed(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType.CLICKED
    //#input(void mousePressed(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType.PRESSED
    //#input(void mousePressed(MouseEvent)): mouseEvent
    //#input(void mousePressed(MouseEvent)): this
    //#input(void mousePressed(MouseEvent)): this.__Tag
    //#input(void mousePressed(MouseEvent)): this.frameParent
    //#input(void mousePressed(MouseEvent)): this.inputWindow
    //#input(void mousePressed(MouseEvent)): this.textPane
    //#pre[2] (void mousePressed(MouseEvent)): mouseEvent != null
    //#pre[7] (void mousePressed(MouseEvent)): this.textPane != null
    //#pre[1] (void mousePressed(MouseEvent)): (soft) init'ed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295])
    //#pre[4] (void mousePressed(MouseEvent)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[5] (void mousePressed(MouseEvent)): (soft) this.frameParent != null
    //#pre[6] (void mousePressed(MouseEvent)): (soft) init'ed(this.inputWindow)
    //#presumption(void mousePressed(MouseEvent)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length >= 1
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:populatePopupMenu
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getSource
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:getChannelPopupType
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.ChannelCopyAction
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:add
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:getComponentCount
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:addSeparator
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:getHyperlinkPopupType
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:getNicknamePopupType
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.NicknameCopyAction
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.Point:getX
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.Point:getY
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupManager:getMenu
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getMousePosition
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getClickPosition
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getClickType
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getAttributeValueAtPoint
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:showPopupMenuInternal
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.Server:join
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.util.URLHandler:getURLHander
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.util.URLHandler:launchApp
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.Server:hasQuery
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.Server:getQuery
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.Query:activateFrame
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.Server:addQuery
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.Query:show
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:javax.swing.JInternalFrame:processMouseEvent
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction
    //#unanalyzed(void mousePressed(MouseEvent)): Effects-of-calling:addCustomPopupItems
    }
    //#TextFrame.java:832: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mousePressed(MouseEvent)

    /**
     * {@inheritDoc}
     * 
     * @param mouseEvent Mouse event
     */
    @Override
    public void mouseReleased(final MouseEvent mouseEvent) {
        if (quickCopy && mouseEvent.getSource() == getTextPane()) {
    //#TextFrame.java:841: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseReleased(MouseEvent)
    //#input(void mouseReleased(MouseEvent)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void mouseReleased(MouseEvent)): __Descendant_Table[others]
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#input(void mouseReleased(MouseEvent)): __Dispatch_Table.processMouseClickEvent(Ljava/awt/event/MouseEvent;Lcom/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType;)V
    //#input(void mouseReleased(MouseEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1).length
    //#input(void mouseReleased(MouseEvent)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]
    //#input(void mouseReleased(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$21.$SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#input(void mouseReleased(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType.CLICKED
    //#input(void mouseReleased(MouseEvent)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType.RELEASED
    //#input(void mouseReleased(MouseEvent)): mouseEvent
    //#input(void mouseReleased(MouseEvent)): this
    //#input(void mouseReleased(MouseEvent)): this.__Tag
    //#input(void mouseReleased(MouseEvent)): this.frameParent
    //#input(void mouseReleased(MouseEvent)): this.inputWindow
    //#input(void mouseReleased(MouseEvent)): this.quickCopy
    //#input(void mouseReleased(MouseEvent)): this.textPane
    //#pre[4] (void mouseReleased(MouseEvent)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[7] (void mouseReleased(MouseEvent)): init'ed(this.quickCopy)
    //#pre[1] (void mouseReleased(MouseEvent)): (soft) init'ed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295])
    //#pre[2] (void mouseReleased(MouseEvent)): (soft) mouseEvent != null
    //#pre[5] (void mouseReleased(MouseEvent)): (soft) this.frameParent != null
    //#pre[6] (void mouseReleased(MouseEvent)): (soft) init'ed(this.inputWindow)
    //#pre[8] (void mouseReleased(MouseEvent)): (soft) this.textPane != null
    //#presumption(void mouseReleased(MouseEvent)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length >= 1
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:populatePopupMenu
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:getSource
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:getChannelPopupType
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.ChannelCopyAction
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:add
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:getComponentCount
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:addSeparator
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:getHyperlinkPopupType
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:getNicknamePopupType
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.NicknameCopyAction
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.Point:getX
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.Point:getY
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu:show
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.commandparser.PopupManager:getMenu
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getMousePosition
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getClickPosition
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getClickType
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.TextPane:getAttributeValueAtPoint
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:java.awt.event.MouseEvent:isPopupTrigger
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:showPopupMenuInternal
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.FrameContainer:getServer
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.Server:join
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.util.URLHandler:getURLHander
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.util.URLHandler:launchApp
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.Server:hasQuery
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.Server:getQuery
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.Query:activateFrame
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.Server:addQuery
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.Query:show
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:javax.swing.JInternalFrame:processMouseEvent
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction
    //#unanalyzed(void mouseReleased(MouseEvent)): Effects-of-calling:addCustomPopupItems
    //#test_vector(void mouseReleased(MouseEvent)): this.quickCopy: {0}, {1}
            getTextPane().copy();
    //#TextFrame.java:842: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:copy()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void mouseReleased(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:copy()
            getTextPane().clearSelection();
    //#TextFrame.java:843: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:clearSelection()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void mouseReleased(MouseEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:clearSelection()
        }

        processMouseClickEvent(mouseEvent, MouseClickType.RELEASED);
    }
    //#TextFrame.java:847: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseReleased(MouseEvent)

    /**
     * {@inheritDoc}
     * 
     * @param mouseEvent Mouse event
     */
    @Override
    public void mouseEntered(final MouseEvent mouseEvent) {
        //Ignore.
        }
    //#TextFrame.java:857: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseEntered(MouseEvent)
    //#TextFrame.java:857: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseEntered(MouseEvent)

    /**
     * {@inheritDoc}
     * 
     * @param mouseEvent Mouse event
     */
    @Override
    public void mouseExited(final MouseEvent mouseEvent) {
        //Ignore.
        }
    //#TextFrame.java:867: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseExited(MouseEvent)
    //#TextFrame.java:867: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.mouseExited(MouseEvent)

    /**
     * Processes every mouse button event to check for a popup trigger.
     *
     * @param e mouse event
     * @param type 
     */
    public void processMouseClickEvent(final MouseEvent e,
            final MouseClickType type) {
        final Point point = getTextPane().getMousePosition();
    //#TextFrame.java:877: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#TextFrame.java:877: Warning: method not available - call not analyzed
    //#    call on Point com.dmdirc.addons.ui_swing.textpane.TextPane:getMousePosition()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Point com.dmdirc.addons.ui_swing.textpane.TextPane:getMousePosition()
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Descendant_Table[others]
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1).length
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$21.$SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$MouseClickType.CLICKED
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): e
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): this
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): this.__Tag
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): this.frameParent
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): this.inputWindow
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): this.textPane
    //#input(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): type
    //#pre[2] (void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): e != null
    //#pre[7] (void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): this.textPane != null
    //#pre[1] (void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): (soft) init'ed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295])
    //#pre[4] (void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[5] (void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): (soft) this.frameParent != null
    //#pre[6] (void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): (soft) init'ed(this.inputWindow)
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.FrameContainer:getServer(...)@889 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.FrameContainer:getServer(...)@895 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.FrameContainer:getServer(...)@896 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.FrameContainer:getServer(...)@899 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.FrameContainer:getServer(...)@900 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.Server:getQuery(...)@896 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.Server:getQuery(...)@900 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 >= 0
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length >= 1
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length - com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 in range
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 < com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.textpane.TextPane:getClickType(...)@880 != null
    //#presumption(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.util.URLHandler:getURLHander(...)@892 != null
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:populatePopupMenu
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:getChannelPopupType
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.ChannelCopyAction
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JPopupMenu:add
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JPopupMenu:getComponentCount
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JPopupMenu:addSeparator
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:getHyperlinkPopupType
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:getNicknamePopupType
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.NicknameCopyAction
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:java.awt.Point:getX
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:java.awt.Point:getY
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JPopupMenu:show
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.commandparser.PopupManager:getMenu
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction
    //#unanalyzed(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): Effects-of-calling:addCustomPopupItems
    //#test_vector(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]: {1}, {2}, {3}, {-2_147_483_648..0, 4..4_294_967_295}
    //#test_vector(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.Server:hasQuery(...)@895: {0}, {1}
    //#test_vector(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): com.dmdirc.addons.ui_swing.textpane.TextPane:getMousePosition(...)@877: Addr_Set{null}, Inverse{null}
    //#test_vector(void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)): java.awt.event.MouseEvent:isPopupTrigger(...)@883: {0}, {1}
        if (e.getSource() == getTextPane() && point != null) {
            final LineInfo lineInfo = getTextPane().getClickPosition(point);
    //#TextFrame.java:879: Warning: method not available - call not analyzed
    //#    call on LineInfo com.dmdirc.addons.ui_swing.textpane.TextPane:getClickPosition(Point)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: LineInfo com.dmdirc.addons.ui_swing.textpane.TextPane:getClickPosition(Point)
            final ClickType clickType = getTextPane().getClickType(lineInfo);
    //#TextFrame.java:880: Warning: method not available - call not analyzed
    //#    call on ClickType com.dmdirc.addons.ui_swing.textpane.TextPane:getClickType(LineInfo)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: ClickType com.dmdirc.addons.ui_swing.textpane.TextPane:getClickType(LineInfo)
            final String attribute = (String) getTextPane().
    //#TextFrame.java:881: Warning: method not available - call not analyzed
    //#    call on Object com.dmdirc.addons.ui_swing.textpane.TextPane:getAttributeValueAtPoint(LineInfo)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Object com.dmdirc.addons.ui_swing.textpane.TextPane:getAttributeValueAtPoint(LineInfo)
                    getAttributeValueAtPoint(lineInfo);
            if (e.isPopupTrigger()) {
                showPopupMenuInternal(clickType, point, attribute);
            } else {
                if (type == MouseClickType.CLICKED) {
                    switch (clickType) {
    //#TextFrame.java:887: method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21.com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init
    //#TextFrame.java:887: Warning: method not available - call not analyzed
    //#    call on ClickType[] com.dmdirc.addons.ui_swing.textpane.ClickType:values()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21
    //#    method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init
    //#    unanalyzed callee: ClickType[] com.dmdirc.addons.ui_swing.textpane.ClickType:values()
    //#TextFrame.java:887: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21
    //#    method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#input(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType.CHANNEL
    //#input(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType.HYPERLINK
    //#input(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType.NICKNAME
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$21]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): new int[](TextFrame$21__static_init#1) num objects
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType.length
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType[0..4_294_967_295]
    //#new obj(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): new int[](TextFrame$21__static_init#1)
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType.CHANNEL != null
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType.HYPERLINK != null
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType.NICKNAME != null
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 >= 0
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 >= 0
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 >= 0
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 < com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length@887
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 < com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length@887
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@887 < com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length@887
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length@887 >= 1
    //#presumption(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...)@887 != null
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType == &new int[](TextFrame$21__static_init#1)
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$21] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): new int[](TextFrame$21__static_init#1) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType.length >= 1
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init): $SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType[0..4_294_967_295] in {0..3}, if init'ed
    //#TextFrame.java:887: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21.com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init
    //#TextFrame.java:887: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
                        case CHANNEL:
                            frameParent.getServer().join(attribute);
    //#TextFrame.java:889: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.FrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Server com.dmdirc.FrameContainer:getServer()
    //#TextFrame.java:889: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:join(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: void com.dmdirc.Server:join(String)
                            break;
                        case HYPERLINK:
                            URLHandler.getURLHander().launchApp(attribute);
    //#TextFrame.java:892: Warning: method not available - call not analyzed
    //#    call on URLHandler com.dmdirc.util.URLHandler:getURLHander()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: URLHandler com.dmdirc.util.URLHandler:getURLHander()
    //#TextFrame.java:892: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.util.URLHandler:launchApp(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: void com.dmdirc.util.URLHandler:launchApp(String)
                            break;
                        case NICKNAME:
                            if (getContainer().getServer().hasQuery(attribute)) {
    //#TextFrame.java:895: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.FrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Server com.dmdirc.FrameContainer:getServer()
    //#TextFrame.java:895: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.Server:hasQuery(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: bool com.dmdirc.Server:hasQuery(String)
                                getContainer().getServer().getQuery(attribute).
    //#TextFrame.java:896: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.FrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Server com.dmdirc.FrameContainer:getServer()
    //#TextFrame.java:896: Warning: method not available - call not analyzed
    //#    call on Query com.dmdirc.Server:getQuery(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Query com.dmdirc.Server:getQuery(String)
    //#TextFrame.java:896: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Query:activateFrame()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: void com.dmdirc.Query:activateFrame()
                                        activateFrame();
                            } else {
                                getContainer().getServer().addQuery(attribute);
    //#TextFrame.java:899: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.FrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Server com.dmdirc.FrameContainer:getServer()
    //#TextFrame.java:899: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Server:addQuery(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: void com.dmdirc.Server:addQuery(String)
                                getContainer().getServer().getQuery(attribute).
    //#TextFrame.java:900: Warning: method not available - call not analyzed
    //#    call on Server com.dmdirc.FrameContainer:getServer()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Server com.dmdirc.FrameContainer:getServer()
    //#TextFrame.java:900: Warning: method not available - call not analyzed
    //#    call on Query com.dmdirc.Server:getQuery(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: Query com.dmdirc.Server:getQuery(String)
    //#TextFrame.java:900: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.Query:show()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)
    //#    unanalyzed callee: void com.dmdirc.Query:show()
                                        show();
                            }

                            break;
                        default:
                            break;
                    }

                }
            }
        }
        super.processMouseEvent(e);
    }
    //#TextFrame.java:913: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.processMouseClickEvent(MouseEvent, TextFrame$MouseClickType)

    /**
     * What popup type should be used for popup menus for nicknames
     * 
     * @return Appropriate popuptype for this frame
     */
    public abstract PopupType getNicknamePopupType();

    /**
     * What popup type should be used for popup menus for channels
     * 
     * @return Appropriate popuptype for this frame
     */
    public abstract PopupType getChannelPopupType();

    /**
     * What popup type should be used for popup menus for hyperlinks
     * 
     * @return Appropriate popuptype for this frame
     */
    public abstract PopupType getHyperlinkPopupType();

    /**
     * What popup type should be used for popup menus for normal clicks
     * 
     * @return Appropriate popuptype for this frame
     */
    public abstract PopupType getNormalPopupType();

    /**
     * A method called to add custom popup items.
     * 
     * @param popupMenu Popup menu to add popup items to
     */
    public abstract void addCustomPopupItems(final JPopupMenu popupMenu);

    /**
     * Shows a popup menu at the specified point for the specified click type
     * 
     * @param type ClickType Click type
     * @param point Point Point of the click
     * @param argument Word under the click
     */
    private void showPopupMenuInternal(final ClickType type,
            final Point point,
            final String argument) {
        final JPopupMenu popupMenu;

        switch (type) {
    //#TextFrame.java:962: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.showPopupMenuInternal(ClickType, Point, String)
    //#TextFrame.java:962: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Descendant_Table[others]
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.addCustomPopupItems(Ljavax/swing/JPopupMenu;)V
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void showPopupMenuInternal(ClickType, Point, String)): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#input(void showPopupMenuInternal(ClickType, Point, String)): argument
    //#input(void showPopupMenuInternal(ClickType, Point, String)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1).length
    //#input(void showPopupMenuInternal(ClickType, Point, String)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]
    //#input(void showPopupMenuInternal(ClickType, Point, String)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$21.$SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#input(void showPopupMenuInternal(ClickType, Point, String)): point
    //#input(void showPopupMenuInternal(ClickType, Point, String)): this
    //#input(void showPopupMenuInternal(ClickType, Point, String)): this.__Tag
    //#input(void showPopupMenuInternal(ClickType, Point, String)): this.frameParent
    //#input(void showPopupMenuInternal(ClickType, Point, String)): this.inputWindow
    //#input(void showPopupMenuInternal(ClickType, Point, String)): this.textPane
    //#input(void showPopupMenuInternal(ClickType, Point, String)): type
    //#pre[3] (void showPopupMenuInternal(ClickType, Point, String)): point != null
    //#pre[8] (void showPopupMenuInternal(ClickType, Point, String)): init'ed(this.textPane)
    //#pre[9] (void showPopupMenuInternal(ClickType, Point, String)): type != null
    //#pre[2] (void showPopupMenuInternal(ClickType, Point, String)): (soft) init'ed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295])
    //#pre[5] (void showPopupMenuInternal(ClickType, Point, String)): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[6] (void showPopupMenuInternal(ClickType, Point, String)): (soft) this.frameParent != null
    //#pre[7] (void showPopupMenuInternal(ClickType, Point, String)): (soft) init'ed(this.inputWindow)
    //#presumption(void showPopupMenuInternal(ClickType, Point, String)): (int) (java.awt.Point:getX(...)@996) in {-2_147_483_648..4_294_967_295}
    //#presumption(void showPopupMenuInternal(ClickType, Point, String)): (int) (java.awt.Point:getY(...)@996) in {-2_147_483_648..4_294_967_295}
    //#presumption(void showPopupMenuInternal(ClickType, Point, String)): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@962 >= 0
    //#presumption(void showPopupMenuInternal(ClickType, Point, String)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length >= 1
    //#presumption(void showPopupMenuInternal(ClickType, Point, String)): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@962 < com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:populatePopupMenu
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void showPopupMenuInternal(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupManager:getMenu
    //#test_vector(void showPopupMenuInternal(ClickType, Point, String)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]: {1}, {2}, {3}, {-2_147_483_648..0, 4..4_294_967_295}
    //#test_vector(void showPopupMenuInternal(ClickType, Point, String)): javax.swing.JPopupMenu:getComponentCount(...)@966: {-2_147_483_648..1}, {2..4_294_967_295}
    //#test_vector(void showPopupMenuInternal(ClickType, Point, String)): javax.swing.JPopupMenu:getComponentCount(...)@974: {-2_147_483_648..1}, {2..4_294_967_295}
    //#test_vector(void showPopupMenuInternal(ClickType, Point, String)): javax.swing.JPopupMenu:getComponentCount(...)@981: {-2_147_483_648..0}, {1..4_294_967_295}
            case CHANNEL:
                popupMenu = getPopupMenu(getChannelPopupType(), argument);
    //#TextFrame.java:964: Warning: method not available - call not analyzed
    //#    call on PopupType getChannelPopupType()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: PopupType getChannelPopupType()
                popupMenu.add(new ChannelCopyAction(argument));
    //#TextFrame.java:965: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.ChannelCopyAction(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.ChannelCopyAction(String)
                if (popupMenu.getComponentCount() > 1) {
                    popupMenu.addSeparator();
                }

                break;
            case HYPERLINK:
                popupMenu = getPopupMenu(getHyperlinkPopupType(), argument);
    //#TextFrame.java:972: Warning: method not available - call not analyzed
    //#    call on PopupType getHyperlinkPopupType()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: PopupType getHyperlinkPopupType()
                popupMenu.add(new HyperlinkCopyAction(argument));
    //#TextFrame.java:973: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction(String)
                if (popupMenu.getComponentCount() > 1) {
                    popupMenu.addSeparator();
                }

                break;
            case NICKNAME:
                popupMenu = getPopupMenu(getNicknamePopupType(), argument);
    //#TextFrame.java:980: Warning: method not available - call not analyzed
    //#    call on PopupType getNicknamePopupType()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: PopupType getNicknamePopupType()
                if (popupMenu.getComponentCount() > 0) {
                    popupMenu.addSeparator();
                }

                popupMenu.add(new NicknameCopyAction(argument));
    //#TextFrame.java:985: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.NicknameCopyAction(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.NicknameCopyAction(String)
                break;
            default:
                popupMenu = getPopupMenu(null, argument);
                break;
        }

        popupMenu.add(new TextPaneCopyAction(getTextPane()));
    //#TextFrame.java:992: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction(TextPane)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.TextPaneCopyAction(TextPane)

        addCustomPopupItems(popupMenu);
    //#TextFrame.java:994: Warning: method not available - call not analyzed
    //#    call on void addCustomPopupItems(JPopupMenu)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenuInternal(ClickType, Point, String)
    //#    unanalyzed callee: void addCustomPopupItems(JPopupMenu)

        popupMenu.show(this, (int) point.getX(), (int) point.getY());
    }
    //#TextFrame.java:997: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.showPopupMenuInternal(ClickType, Point, String)

    /**
     * Shows a popup menu at the specified point for the specified click type
     * 
     * @param type ClickType Click type
     * @param point Point Point of the click
     * @param argument Word under the click
     */
    public void showPopupMenu(final ClickType type,
            final Point point,
            final String argument) {
        final JPopupMenu popupMenu;

        switch (type) {
    //#TextFrame.java:1011: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.showPopupMenu(ClickType, Point, String)
    //#TextFrame.java:1011: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal()
    //#input(void showPopupMenu(ClickType, Point, String)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void showPopupMenu(ClickType, Point, String)): __Descendant_Table[others]
    //#input(void showPopupMenu(ClickType, Point, String)): __Dispatch_Table.getChannelPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void showPopupMenu(ClickType, Point, String)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void showPopupMenu(ClickType, Point, String)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void showPopupMenu(ClickType, Point, String)): __Dispatch_Table.getHyperlinkPopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void showPopupMenu(ClickType, Point, String)): __Dispatch_Table.getNicknamePopupType()Lcom/dmdirc/commandparser/PopupType;
    //#input(void showPopupMenu(ClickType, Point, String)): __Dispatch_Table.getPopupMenu(Lcom/dmdirc/commandparser/PopupType;[Ljava/lang/Object;)Ljavax/swing/JPopupMenu;
    //#input(void showPopupMenu(ClickType, Point, String)): argument
    //#input(void showPopupMenu(ClickType, Point, String)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1).length
    //#input(void showPopupMenu(ClickType, Point, String)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]
    //#input(void showPopupMenu(ClickType, Point, String)): com/dmdirc/addons/ui_swing/components/frames/TextFrame$21.$SwitchMap$com$dmdirc$addons$ui_swing$textpane$ClickType
    //#input(void showPopupMenu(ClickType, Point, String)): point
    //#input(void showPopupMenu(ClickType, Point, String)): this
    //#input(void showPopupMenu(ClickType, Point, String)): this.__Tag
    //#input(void showPopupMenu(ClickType, Point, String)): this.frameParent
    //#input(void showPopupMenu(ClickType, Point, String)): this.inputWindow
    //#input(void showPopupMenu(ClickType, Point, String)): type
    //#pre[3] (void showPopupMenu(ClickType, Point, String)): point != null
    //#pre[5] (void showPopupMenu(ClickType, Point, String)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[8] (void showPopupMenu(ClickType, Point, String)): type != null
    //#pre[2] (void showPopupMenu(ClickType, Point, String)): (soft) init'ed(com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295])
    //#pre[6] (void showPopupMenu(ClickType, Point, String)): (soft) this.frameParent != null
    //#pre[7] (void showPopupMenu(ClickType, Point, String)): (soft) init'ed(this.inputWindow)
    //#presumption(void showPopupMenu(ClickType, Point, String)): (int) (java.awt.Point:getX(...)@1041) in {-2_147_483_648..4_294_967_295}
    //#presumption(void showPopupMenu(ClickType, Point, String)): (int) (java.awt.Point:getY(...)@1041) in {-2_147_483_648..4_294_967_295}
    //#presumption(void showPopupMenu(ClickType, Point, String)): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@1011 >= 0
    //#presumption(void showPopupMenu(ClickType, Point, String)): com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length >= 1
    //#presumption(void showPopupMenu(ClickType, Point, String)): com.dmdirc.addons.ui_swing.textpane.ClickType:ordinal(...)@1011 < com.dmdirc.addons.ui_swing.textpane.ClickType:values(...).length
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:populatePopupMenu
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:javax.swing.JPopupMenu
    //#unanalyzed(void showPopupMenu(ClickType, Point, String)): Effects-of-calling:com.dmdirc.commandparser.PopupManager:getMenu
    //#test_vector(void showPopupMenu(ClickType, Point, String)): com.dmdirc.addons.ui_swing.components.frames.TextFrame$21__static_init.new int[](TextFrame$21__static_init#1)[0..4_294_967_295]: {1}, {2}, {3}, {-2_147_483_648..0, 4..4_294_967_295}
    //#test_vector(void showPopupMenu(ClickType, Point, String)): javax.swing.JPopupMenu:getComponentCount(...)@1015: {-2_147_483_648..1}, {2..4_294_967_295}
    //#test_vector(void showPopupMenu(ClickType, Point, String)): javax.swing.JPopupMenu:getComponentCount(...)@1023: {-2_147_483_648..1}, {2..4_294_967_295}
    //#test_vector(void showPopupMenu(ClickType, Point, String)): javax.swing.JPopupMenu:getComponentCount(...)@1030: {-2_147_483_648..0}, {1..4_294_967_295}
            case CHANNEL:
                popupMenu = getPopupMenu(getChannelPopupType(), argument);
    //#TextFrame.java:1013: Warning: method not available - call not analyzed
    //#    call on PopupType getChannelPopupType()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: PopupType getChannelPopupType()
                popupMenu.add(new ChannelCopyAction(argument));
    //#TextFrame.java:1014: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.ChannelCopyAction(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.ChannelCopyAction(String)
                if (popupMenu.getComponentCount() > 1) {
                    popupMenu.addSeparator();
                }

                break;
            case HYPERLINK:
                popupMenu = getPopupMenu(getHyperlinkPopupType(), argument);
    //#TextFrame.java:1021: Warning: method not available - call not analyzed
    //#    call on PopupType getHyperlinkPopupType()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: PopupType getHyperlinkPopupType()
                popupMenu.add(new HyperlinkCopyAction(argument));
    //#TextFrame.java:1022: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.HyperlinkCopyAction(String)
                if (popupMenu.getComponentCount() > 1) {
                    popupMenu.addSeparator();
                }

                break;
            case NICKNAME:
                popupMenu = getPopupMenu(getNicknamePopupType(), argument);
    //#TextFrame.java:1029: Warning: method not available - call not analyzed
    //#    call on PopupType getNicknamePopupType()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: PopupType getNicknamePopupType()
                if (popupMenu.getComponentCount() > 0) {
                    popupMenu.addSeparator();
                }

                popupMenu.add(new NicknameCopyAction(argument));
    //#TextFrame.java:1034: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.NicknameCopyAction(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void showPopupMenu(ClickType, Point, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.NicknameCopyAction(String)
                break;
            default:
                popupMenu = getPopupMenu(null, argument);
                break;
        }

        popupMenu.show(this, (int) point.getX(), (int) point.getY());
    }
    //#TextFrame.java:1042: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.showPopupMenu(ClickType, Point, String)

    /**
     * Builds a popup menu of a specified type
     * 
     * @param type type of menu to build
     * @param arguments Arguments for the command
     * 
     * @return PopupMenu
     */
    public JPopupMenu getPopupMenu(
            final PopupType type,
            final Object... arguments) {
        JPopupMenu popupMenu = new JPopupMenu();
    //#TextFrame.java:1055: method: JPopupMenu com.dmdirc.addons.ui_swing.components.frames.TextFrame.getPopupMenu(PopupType, Object[])
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): __Descendant_Table[others]
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): arguments
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): this
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): this.__Tag
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): this.frameParent
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): this.inputWindow
    //#input(JPopupMenu getPopupMenu(PopupType, Object[])): type
    //#output(JPopupMenu getPopupMenu(PopupType, Object[])): new JPopupMenu(getPopupMenu#1) num objects
    //#output(JPopupMenu getPopupMenu(PopupType, Object[])): return_value
    //#new obj(JPopupMenu getPopupMenu(PopupType, Object[])): new JPopupMenu(getPopupMenu#1)
    //#pre[3] (JPopupMenu getPopupMenu(PopupType, Object[])): (soft) this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[4] (JPopupMenu getPopupMenu(PopupType, Object[])): (soft) this.frameParent != null
    //#pre[5] (JPopupMenu getPopupMenu(PopupType, Object[])): (soft) init'ed(this.inputWindow)
    //#presumption(JPopupMenu getPopupMenu(PopupType, Object[])): com.dmdirc.commandparser.PopupManager:getMenu(...)@1058 != null
    //#post(JPopupMenu getPopupMenu(PopupType, Object[])): return_value == &new JPopupMenu(getPopupMenu#1)
    //#post(JPopupMenu getPopupMenu(PopupType, Object[])): new JPopupMenu(getPopupMenu#1) num objects == 1
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:populatePopupMenu
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:javax.swing.JMenuItem
    //#unanalyzed(JPopupMenu getPopupMenu(PopupType, Object[])): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#test_vector(JPopupMenu getPopupMenu(PopupType, Object[])): type: Addr_Set{null}, Inverse{null}

        if (type != null) {
            popupMenu = (JPopupMenu) populatePopupMenu(popupMenu,
    //#TextFrame.java:1058: Warning: method not available - call not analyzed
    //#    call on PopupMenu com.dmdirc.commandparser.PopupManager:getMenu(PopupType, ConfigManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JPopupMenu getPopupMenu(PopupType, Object[])
    //#    unanalyzed callee: PopupMenu com.dmdirc.commandparser.PopupManager:getMenu(PopupType, ConfigManager)
                    PopupManager.getMenu(type, getConfigManager()),
                    arguments);
        }

        return popupMenu;
    //#TextFrame.java:1063: end of method: JPopupMenu com.dmdirc.addons.ui_swing.components.frames.TextFrame.getPopupMenu(PopupType, Object[])
    }

    /**
     * Populates the specified popupmenu
     * 
     * @param menu Menu component
     * @param popup Popup to get info from
     * @param arguments Arguments for the command
     * 
     * @return Populated popup
     */
    private JComponent populatePopupMenu(final JComponent menu,
            final PopupMenu popup,
            final Object... arguments) {
        for (PopupMenuItem menuItem : popup.getItems()) {
    //#TextFrame.java:1078: method: JComponent com.dmdirc.addons.ui_swing.components.frames.TextFrame.populatePopupMenu(JComponent, PopupMenu, Object[])
    //#TextFrame.java:1078: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.commandparser.PopupMenu:getItems()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: List com.dmdirc.commandparser.PopupMenu:getItems()
    //#input(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): arguments
    //#input(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): menu
    //#input(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): popup
    //#input(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): this
    //#input(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): this.inputWindow
    //#output(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): return_value
    //#pre[3] (JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): popup != null
    //#pre[2] (JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): (soft) menu != null
    //#pre[5] (JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): (soft) init'ed(this.inputWindow)
    //#presumption(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): com.dmdirc.commandparser.PopupMenu:getItems(...)@1078 != null
    //#presumption(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): com.dmdirc.commandparser.PopupMenuItem:getSubMenu(...)@1082 != null
    //#presumption(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): java.util.Iterator:next(...)@1078 != null
    //#post(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): return_value == menu
    //#post(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): return_value != null
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenu:getItems
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isDivider
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:javax.swing.JSeparator
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:javax.swing.JComponent:add
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:isSubMenu
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getName
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:javax.swing.JMenu
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getSubMenu
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:populatePopupMenu
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.commandparser.PopupMenuItem:getCommand
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:com.dmdirc.addons.ui_swing.actions.CommandAction
    //#unanalyzed(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): Effects-of-calling:javax.swing.JMenuItem
    //#test_vector(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): this.inputWindow: Inverse{null}, Addr_Set{null}
    //#test_vector(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): com.dmdirc.commandparser.PopupMenuItem:isDivider(...)@1079: {0}, {1}
    //#test_vector(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): com.dmdirc.commandparser.PopupMenuItem:isSubMenu(...)@1081: {0}, {1}
    //#test_vector(JComponent populatePopupMenu(JComponent, PopupMenu, Object[])): java.util.Iterator:hasNext(...)@1078: {0}, {1}
            if (menuItem.isDivider()) {
    //#TextFrame.java:1079: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.commandparser.PopupMenuItem:isDivider()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: bool com.dmdirc.commandparser.PopupMenuItem:isDivider()
                menu.add(new JSeparator());
            } else if (menuItem.isSubMenu()) {
    //#TextFrame.java:1081: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.commandparser.PopupMenuItem:isSubMenu()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: bool com.dmdirc.commandparser.PopupMenuItem:isSubMenu()
                menu.add(populatePopupMenu(new JMenu(menuItem.getName()),
    //#TextFrame.java:1082: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.commandparser.PopupMenuItem:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: String com.dmdirc.commandparser.PopupMenuItem:getName()
    //#TextFrame.java:1082: Warning: method not available - call not analyzed
    //#    call on PopupMenu com.dmdirc.commandparser.PopupMenuItem:getSubMenu()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: PopupMenu com.dmdirc.commandparser.PopupMenuItem:getSubMenu()
                        menuItem.getSubMenu(), arguments));
            } else {
                menu.add(new JMenuItem(new CommandAction(inputWindow == null ? GlobalCommandParser.
    //#TextFrame.java:1085: Warning: method not available - call not analyzed
    //#    call on CommandParser com.dmdirc.ui.interfaces.InputWindow:getCommandParser()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: CommandParser com.dmdirc.ui.interfaces.InputWindow:getCommandParser()
    //#TextFrame.java:1085: Warning: method not available - call not analyzed
    //#    call on GlobalCommandParser com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: GlobalCommandParser com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser()
    //#TextFrame.java:1085: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.commandparser.PopupMenuItem:getName()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: String com.dmdirc.commandparser.PopupMenuItem:getName()
    //#TextFrame.java:1085: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.commandparser.PopupMenuItem:getCommand(Object[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: String com.dmdirc.commandparser.PopupMenuItem:getCommand(Object[])
    //#TextFrame.java:1085: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.actions.CommandAction(CommandParser, InputWindow, String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: JComponent populatePopupMenu(JComponent, PopupMenu, Object[])
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.actions.CommandAction(CommandParser, InputWindow, String, String)
                        getGlobalCommandParser()
                        : ((InputWindow) inputWindow).getCommandParser(),
                        (InputWindow) inputWindow, menuItem.getName(),
                        menuItem.getCommand(arguments))));
            }

        }
        return menu;
    //#TextFrame.java:1093: end of method: JComponent com.dmdirc.addons.ui_swing.components.frames.TextFrame.populatePopupMenu(JComponent, PopupMenu, Object[])
    }

    /** 
     * {@inheritDoc}
     * 
     * @param event Key event
     */
    @Override
    public void keyTyped(final KeyEvent event) {
        //Ignore.
        }
    //#TextFrame.java:1104: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.keyTyped(KeyEvent)
    //#TextFrame.java:1104: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.keyTyped(KeyEvent)

    /** 
     * {@inheritDoc}
     * 
     * @param event Key event
     */
    @Override
    public void keyPressed(final KeyEvent event) {
        if (!quickCopy && (event.getModifiers() & UIUtilities.getCtrlMask()) !=
    //#TextFrame.java:1113: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.keyPressed(KeyEvent)
    //#TextFrame.java:1113: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.UIUtilities:getCtrlMask()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void keyPressed(KeyEvent)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.UIUtilities:getCtrlMask()
    //#input(void keyPressed(KeyEvent)): event
    //#input(void keyPressed(KeyEvent)): this
    //#input(void keyPressed(KeyEvent)): this.quickCopy
    //#input(void keyPressed(KeyEvent)): this.textPane
    //#pre[3] (void keyPressed(KeyEvent)): init'ed(this.quickCopy)
    //#pre[1] (void keyPressed(KeyEvent)): (soft) event != null
    //#pre[4] (void keyPressed(KeyEvent)): (soft) this.textPane != null
    //#test_vector(void keyPressed(KeyEvent)): this.quickCopy: {1}, {0}
    //#test_vector(void keyPressed(KeyEvent)): java.awt.event.KeyEvent:getKeyCode(...)@1113: {-2_147_483_648..66, 68..4_294_967_295}, {67}
                0 &&
                event.getKeyCode() == KeyEvent.VK_C) {
            getTextPane().copy();
    //#TextFrame.java:1116: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:copy()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void keyPressed(KeyEvent)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:copy()
        }

    }
    //#TextFrame.java:1119: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.keyPressed(KeyEvent)

    /** 
     * {@inheritDoc}
     * 
     * @param event Key event
     */
    @Override
    public void keyReleased(final KeyEvent event) {
        //Ignore.
        }
    //#TextFrame.java:1129: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.keyReleased(KeyEvent)
    //#TextFrame.java:1129: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.keyReleased(KeyEvent)

    /**
     * Gets the search bar.
     *
     * @return the frames search bar
     */
    public final SwingSearchBar getSearchBar() {
        return searchBar;
    //#TextFrame.java:1137: method: SwingSearchBar com.dmdirc.addons.ui_swing.components.frames.TextFrame.getSearchBar()
    //#input(SwingSearchBar getSearchBar()): this
    //#input(SwingSearchBar getSearchBar()): this.searchBar
    //#output(SwingSearchBar getSearchBar()): return_value
    //#pre[2] (SwingSearchBar getSearchBar()): init'ed(this.searchBar)
    //#post(SwingSearchBar getSearchBar()): return_value == this.searchBar
    //#post(SwingSearchBar getSearchBar()): init'ed(return_value)
    //#TextFrame.java:1137: end of method: SwingSearchBar com.dmdirc.addons.ui_swing.components.frames.TextFrame.getSearchBar()
    }

    /** {@inheritDoc} */
    @Override
    public void configChanged(final String domain,
            final String key) {
        if (getConfigManager() == null) {
    //#TextFrame.java:1144: method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.configChanged(String, String)
    //#input(void configChanged(String, String)): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame]
    //#input(void configChanged(String, String)): __Descendant_Table[others]
    //#input(void configChanged(String, String)): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#input(void configChanged(String, String)): __Dispatch_Table.getContainer()Lcom/dmdirc/FrameContainer;
    //#input(void configChanged(String, String)): domain
    //#input(void configChanged(String, String)): key
    //#input(void configChanged(String, String)): this
    //#input(void configChanged(String, String)): this.__Tag
    //#input(void configChanged(String, String)): this.frameParent
    //#input(void configChanged(String, String)): this.textPane
    //#output(void configChanged(String, String)): this.frameBufferSize
    //#output(void configChanged(String, String)): this.quickCopy
    //#pre[6] (void configChanged(String, String)): this.__Tag == com/dmdirc/addons/ui_swing/components/frames/TextFrame
    //#pre[7] (void configChanged(String, String)): (soft) this.frameParent != null
    //#pre[8] (void configChanged(String, String)): (soft) init'ed(this.textPane)
    //#presumption(void configChanged(String, String)): com.dmdirc.FrameContainer:getConfigManager(...)@1156 != null
    //#presumption(void configChanged(String, String)): com.dmdirc.FrameContainer:getConfigManager(...)@1159 != null
    //#presumption(void configChanged(String, String)): com.dmdirc.FrameContainer:getConfigManager(...)@770 != null
    //#presumption(void configChanged(String, String)): com.dmdirc.FrameContainer:getConfigManager(...)@770 != null
    //#post(void configChanged(String, String)): possibly_updated(this.frameBufferSize)
    //#post(void configChanged(String, String)): possibly_updated(this.quickCopy)
    //#unanalyzed(void configChanged(String, String)): Effects-of-calling:com.dmdirc.FrameContainer:getConfigManager
    //#test_vector(void configChanged(String, String)): this.textPane: Addr_Set{null}, Inverse{null}
    //#test_vector(void configChanged(String, String)): com.dmdirc.FrameContainer:getConfigManager(...)@770: Inverse{null}, Addr_Set{null}
    //#test_vector(void configChanged(String, String)): java.lang.String:equals(...)@1148: {0}, {1}
    //#test_vector(void configChanged(String, String)): java.lang.String:equals(...)@1149: {0}, {1}
    //#test_vector(void configChanged(String, String)): java.lang.String:equals(...)@1152: {0}, {1}
    //#test_vector(void configChanged(String, String)): java.lang.String:equals(...)@1155: {0}, {1}
    //#test_vector(void configChanged(String, String)): java.lang.String:equals(...)@1158: {0}, {1}
            return;
        }

        if ("ui".equals(domain)) {
            if ("foregroundcolour".equals(key) && getTextPane() != null) {
                getTextPane().setForeground(getConfigManager().
    //#TextFrame.java:1150: Warning: method not available - call not analyzed
    //#    call on Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#TextFrame.java:1150: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:setForeground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:setForeground(Color)
                        getOptionColour("ui", "foregroundcolour"));
            } else if ("backgroundcolour".equals(key) && getTextPane() != null) {
                getTextPane().setBackground(getConfigManager().
    //#TextFrame.java:1153: Warning: method not available - call not analyzed
    //#    call on Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: Color com.dmdirc.config.ConfigManager:getOptionColour(String, String, String[])
    //#TextFrame.java:1153: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.textpane.TextPane:setBackground(Color)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.textpane.TextPane:setBackground(Color)
                        getOptionColour("ui", "backgroundcolour"));
            } else if ("frameBufferSize".equals(key)) {
                frameBufferSize = getContainer().getConfigManager().
    //#TextFrame.java:1156: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#TextFrame.java:1156: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.config.ConfigManager:getOptionInt(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: int com.dmdirc.config.ConfigManager:getOptionInt(String, String)
                        getOptionInt("ui", "frameBufferSize");
            } else if ("quickCopy".equals(key)) {
                quickCopy = getContainer().getConfigManager().
    //#TextFrame.java:1159: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: ConfigManager com.dmdirc.FrameContainer:getConfigManager()
    //#TextFrame.java:1159: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
                        getOptionBool("ui", "quickCopy");
            }
        }
    }
    //#TextFrame.java:1163: end of method: void com.dmdirc.addons.ui_swing.components.frames.TextFrame.configChanged(String, String)
}
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$MouseClickType
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$21
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$20__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$20]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$20__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$20__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$20] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$20__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$20.com.dmdirc.addons.ui_swing.components.frames.TextFrame$20__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$20
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$19__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$19]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$19__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$19__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$19] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$19__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$19.com.dmdirc.addons.ui_swing.components.frames.TextFrame$19__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$19
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$18__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$18]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$18__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$18__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$18] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$18__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$18.com.dmdirc.addons.ui_swing.components.frames.TextFrame$18__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$18
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$17__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$17]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$17__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$17__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$17] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$17__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$17.com.dmdirc.addons.ui_swing.components.frames.TextFrame$17__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$17
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$16__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$16]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$16__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$16__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$16] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$16__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$16.com.dmdirc.addons.ui_swing.components.frames.TextFrame$16__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$16
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$15__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$15]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$15__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$15__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$15] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$15__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$15.com.dmdirc.addons.ui_swing.components.frames.TextFrame$15__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$15
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$14__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$14]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$14__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$14__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$14] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$14__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14.com.dmdirc.addons.ui_swing.components.frames.TextFrame$14__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$14
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$13__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$13]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$13__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$13__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$13] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$13__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$13.com.dmdirc.addons.ui_swing.components.frames.TextFrame$13__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$13
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$12__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$12]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$12__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$12__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$12] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$12__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$12.com.dmdirc.addons.ui_swing.components.frames.TextFrame$12__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$12
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$11$1]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object;
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$11$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1__static_init): __Dispatch_Table.doInBackground()Ljava/lang/Object; == &doInBackground
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1.com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11$1
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$11]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$11] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$11__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11.com.dmdirc.addons.ui_swing.components.frames.TextFrame$11__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$11
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$10__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$10]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$10__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$10__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$10] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$10__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$10.com.dmdirc.addons.ui_swing.components.frames.TextFrame$10__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$10
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$9__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$9]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$9__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$9__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$9] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$9__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9.com.dmdirc.addons.ui_swing.components.frames.TextFrame$9__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$9
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$8__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$8]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$8__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$8__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$8] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$8__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8.com.dmdirc.addons.ui_swing.components.frames.TextFrame$8__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$8
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$7__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$7]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$7__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$7__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$7] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$7__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$7.com.dmdirc.addons.ui_swing.components.frames.TextFrame$7__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$7
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$6__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$6]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$6__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$6__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$6] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$6__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$6.com.dmdirc.addons.ui_swing.components.frames.TextFrame$6__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$6
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$5__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$5]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$5__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$5__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$5] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$5__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5.com.dmdirc.addons.ui_swing.components.frames.TextFrame$5__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$5
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$4__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$4]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$4__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$4__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$4] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$4__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4.com.dmdirc.addons.ui_swing.components.frames.TextFrame$4__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$4
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$3__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$3]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$3__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$3__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$3] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$3__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$3.com.dmdirc.addons.ui_swing.components.frames.TextFrame$3__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$3
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$2]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$2__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$2] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$2__static_init): __Dispatch_Table.run()V == &run
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$2.com.dmdirc.addons.ui_swing.components.frames.TextFrame$2__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$2
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$1]
    //#output(com.dmdirc.addons.ui_swing.components.frames.TextFrame$1__static_init): __Dispatch_Table.iconChanged(Lcom/dmdirc/ui/interfaces/Window;Ljavax/swing/Icon;)V
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/frames/TextFrame$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.frames.TextFrame$1__static_init): __Dispatch_Table.iconChanged(Lcom/dmdirc/ui/interfaces/Window;Ljavax/swing/Icon;)V == &iconChanged
    //#TextFrame.java:: end of method: com.dmdirc.addons.ui_swing.components.frames.TextFrame$1.com.dmdirc.addons.ui_swing.components.frames.TextFrame$1__static_init
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame$1
    //#TextFrame.java:: end of class: com.dmdirc.addons.ui_swing.components.frames.TextFrame
