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

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

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JDesktopPane;
import javax.swing.KeyStroke;
import javax.swing.plaf.DesktopPaneUI;

/**
 * Proxy desktop pane ui, proxies and adds custom key bindings.
 */
public class ProxyDesktopPaneUI extends DesktopPaneUI {
    //#ProxyDesktopPaneUI.java:39: method: DMDircDesktopPane com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.access$000(ProxyDesktopPaneUI)
    //#input(DMDircDesktopPane access$000(ProxyDesktopPaneUI)): x0
    //#input(DMDircDesktopPane access$000(ProxyDesktopPaneUI)): x0.desktopPane
    //#output(DMDircDesktopPane access$000(ProxyDesktopPaneUI)): return_value
    //#pre[1] (DMDircDesktopPane access$000(ProxyDesktopPaneUI)): x0 != null
    //#pre[2] (DMDircDesktopPane access$000(ProxyDesktopPaneUI)): init'ed(x0.desktopPane)
    //#post(DMDircDesktopPane access$000(ProxyDesktopPaneUI)): return_value == x0.desktopPane
    //#post(DMDircDesktopPane access$000(ProxyDesktopPaneUI)): init'ed(return_value)
    //#ProxyDesktopPaneUI.java:39: end of method: DMDircDesktopPane com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.access$000(ProxyDesktopPaneUI)

    private DesktopPaneUI ui;
    private DMDircDesktopPane desktopPane;
    private InputMap inputMap;
    private ActionMap actionMap;

    /**
     * Creates a new proxying desktop pane ui.
     *
     * @param ui UI to proxy to
     * @param desktopPane desktop pane to use
     */
    public ProxyDesktopPaneUI(final DesktopPaneUI ui,
                              final DMDircDesktopPane desktopPane) {
    //#ProxyDesktopPaneUI.java:53: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): desktopPane
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): ui
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): new ActionMap(initInputActionMap#2) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): new InputMap(initInputActionMap#1) num objects
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.actionMap
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.desktopPane
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.inputMap
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.ui
    //#new obj(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): new ActionMap(initInputActionMap#2)
    //#new obj(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): new InputMap(initInputActionMap#1)
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.actionMap == &new ActionMap(initInputActionMap#2)
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.desktopPane == desktopPane
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): init'ed(this.desktopPane)
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.inputMap == &new InputMap(initInputActionMap#1)
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): this.ui == ui
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): init'ed(this.ui)
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): new ActionMap(initInputActionMap#2) num objects == 1
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): new InputMap(initInputActionMap#1) num objects == 1
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): Effects-of-calling:javax.swing.InputMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): Effects-of-calling:javax.swing.ActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): Effects-of-calling:javax.swing.KeyStroke:getKeyStroke
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): Effects-of-calling:javax.swing.InputMap:put
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): Effects-of-calling:javax.swing.AbstractAction
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)): Effects-of-calling:javax.swing.ActionMap:put
        this.ui = ui;
        this.desktopPane = desktopPane;
        initInputActionMap();
    }
    //#ProxyDesktopPaneUI.java:57: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI(DesktopPaneUI, DMDircDesktopPane)

    private void initInputActionMap() {
        inputMap = new InputMap();
    //#ProxyDesktopPaneUI.java:60: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.initInputActionMap()
    //#input(void initInputActionMap()): this
    //#output(void initInputActionMap()): new ActionMap(initInputActionMap#2) num objects
    //#output(void initInputActionMap()): new InputMap(initInputActionMap#1) num objects
    //#output(void initInputActionMap()): this.actionMap
    //#output(void initInputActionMap()): this.inputMap
    //#new obj(void initInputActionMap()): new ActionMap(initInputActionMap#2)
    //#new obj(void initInputActionMap()): new InputMap(initInputActionMap#1)
    //#post(void initInputActionMap()): this.actionMap == &new ActionMap(initInputActionMap#2)
    //#post(void initInputActionMap()): this.inputMap == &new InputMap(initInputActionMap#1)
    //#post(void initInputActionMap()): new ActionMap(initInputActionMap#2) num objects == 1
    //#post(void initInputActionMap()): new InputMap(initInputActionMap#1) num objects == 1
    //#unanalyzed(void initInputActionMap()): Effects-of-calling:javax.swing.AbstractAction
        actionMap = new ActionMap();

        inputMap.put(KeyStroke.getKeyStroke("ctrl shift pressed TAB"),
                     "selectPreviousFrame");
        inputMap.put(KeyStroke.getKeyStroke("ctrl pressed TAB"),
                     "selectNextFrame");

        actionMap.put("selectNextFrame", new AbstractAction("selectNextFrame") {
    //#ProxyDesktopPaneUI.java:68: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)): this
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)): x0
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)): init'ed(this.this$0)
    //#ProxyDesktopPaneUI.java:68: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1(ProxyDesktopPaneUI, String)

            private static final long serialVersionUID = 1;

            /** {@inheritDoc} */
            @Override
            public void actionPerformed(final ActionEvent evt) {
                desktopPane.scrollDown();
    //#ProxyDesktopPaneUI.java:75: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1.actionPerformed(ActionEvent)
    //#ProxyDesktopPaneUI.java:75: Warning: suspicious precondition
    //#    The precondition for this.this$0.desktopPane.treeScroller.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1
    //#    method: void actionPerformed(ActionEvent)
    //#    suspicious precondition index: [6]
    //#    Attribs:  Soft
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Descendant_Table[com/dmdirc/addons/ui_swing/components/TreeScroller]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Dispatch_Table.changeFocus(Z)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Dispatch_Table.setPath(Ljavax/swing/tree/TreePath;)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1.__Dispatch_Table.changeFocus(Z)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1.__Dispatch_Table.setPath(Ljavax/swing/tree/TreePath;)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane.__Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane.__Dispatch_Table.scrollDown()V
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.this$0
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.__Tag
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.__Tag
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.model
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.rootNode
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.rootVisible
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.selectionModel
    //#pre[2] (void actionPerformed(ActionEvent)): this.this$0 != null
    //#pre[3] (void actionPerformed(ActionEvent)): this.desktopPane != null
    //#pre[4] (void actionPerformed(ActionEvent)): this.desktopPane.__Tag == com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane
    //#pre[5] (void actionPerformed(ActionEvent)): this.desktopPane.treeScroller != null
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) this.desktopPane.treeScroller.__Tag in {com/dmdirc/addons/ui_swing/components/TreeScroller, com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1}
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) this.desktopPane.treeScroller.model != null
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.desktopPane.treeScroller.selectionModel != null
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultTreeModel:getRoot
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreeSelectionModel:setSelectionPath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getPreviousNode
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getLastLeaf
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getNextNode
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getFirstChild
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getChildCount
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreeSelectionModel:isSelectionEmpty
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getChildAt
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreeSelectionModel:getSelectionPath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreePath:getLastPathComponent
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultTreeModel:getPathToRoot
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreePath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:setPath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.framemanager.tree.TreeViewNode:getFrameContainer
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.FrameContainer:activateFrame
            }
    //#ProxyDesktopPaneUI.java:76: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1.actionPerformed(ActionEvent)
        });
        actionMap.put("selectPreviousFrame", new AbstractAction("selectPreviousFrame") {
    //#ProxyDesktopPaneUI.java:78: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)): this
    //#input(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)): x0
    //#output(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)): init'ed(this.this$0)
    //#ProxyDesktopPaneUI.java:78: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2(ProxyDesktopPaneUI, String)

            private static final long serialVersionUID = 1;

            /** {@inheritDoc} */
            @Override
            public void actionPerformed(final ActionEvent evt) {
                desktopPane.scrollUp();
    //#ProxyDesktopPaneUI.java:85: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2.actionPerformed(ActionEvent)
    //#ProxyDesktopPaneUI.java:85: Warning: suspicious precondition
    //#    The precondition for this.this$0.desktopPane.treeScroller.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2
    //#    method: void actionPerformed(ActionEvent)
    //#    suspicious precondition index: [6]
    //#    Attribs:  Soft
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Descendant_Table[com/dmdirc/addons/ui_swing/components/TreeScroller]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Dispatch_Table.changeFocus(Z)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/TreeScroller.__Dispatch_Table.setPath(Ljavax/swing/tree/TreePath;)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1.__Dispatch_Table.changeFocus(Z)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1.__Dispatch_Table.setPath(Ljavax/swing/tree/TreePath;)V
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane.__Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane.__Descendant_Table[others]
    //#input(void actionPerformed(ActionEvent)): com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane.__Dispatch_Table.scrollUp()V
    //#input(void actionPerformed(ActionEvent)): this
    //#input(void actionPerformed(ActionEvent)): this.this$0
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.__Tag
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.__Tag
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.model
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.rootNode
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.rootVisible
    //#input(void actionPerformed(ActionEvent)): this.this$0.desktopPane.treeScroller.selectionModel
    //#pre[2] (void actionPerformed(ActionEvent)): this.this$0 != null
    //#pre[3] (void actionPerformed(ActionEvent)): this.desktopPane != null
    //#pre[4] (void actionPerformed(ActionEvent)): this.desktopPane.__Tag == com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane
    //#pre[5] (void actionPerformed(ActionEvent)): this.desktopPane.treeScroller != null
    //#pre[6] (void actionPerformed(ActionEvent)): (soft) this.desktopPane.treeScroller.__Tag in {com/dmdirc/addons/ui_swing/components/TreeScroller, com/dmdirc/addons/ui_swing/components/desktopPane/DMDircDesktopPane$1}
    //#pre[7] (void actionPerformed(ActionEvent)): (soft) this.desktopPane.treeScroller.model != null
    //#pre[10] (void actionPerformed(ActionEvent)): (soft) this.desktopPane.treeScroller.selectionModel != null
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultTreeModel:getRoot
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreeSelectionModel:setSelectionPath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getPreviousNode
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getLastLeaf
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getNextNode
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getFirstChild
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getChildCount
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreeSelectionModel:isSelectionEmpty
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultMutableTreeNode:getChildAt
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreeSelectionModel:getSelectionPath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreePath:getLastPathComponent
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.DefaultTreeModel:getPathToRoot
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:javax.swing.tree.TreePath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:setPath
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.addons.ui_swing.framemanager.tree.TreeViewNode:getFrameContainer
    //#unanalyzed(void actionPerformed(ActionEvent)): Effects-of-calling:com.dmdirc.FrameContainer:activateFrame
            }
    //#ProxyDesktopPaneUI.java:86: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2.actionPerformed(ActionEvent)
        });
    }
    //#ProxyDesktopPaneUI.java:88: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.initInputActionMap()

    /** @inheritDoc} */
    @Override
    public void installUI(final JComponent c) {
        ui.installUI(c);
    //#ProxyDesktopPaneUI.java:93: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.installUI(JComponent)
    //#input(void installUI(JComponent)): c
    //#input(void installUI(JComponent)): this
    //#input(void installUI(JComponent)): this.actionMap
    //#input(void installUI(JComponent)): this.inputMap
    //#input(void installUI(JComponent)): this.ui
    //#pre[1] (void installUI(JComponent)): c != null
    //#pre[3] (void installUI(JComponent)): init'ed(this.actionMap)
    //#pre[4] (void installUI(JComponent)): init'ed(this.inputMap)
    //#pre[5] (void installUI(JComponent)): this.ui != null
        c.setInputMap(JDesktopPane.WHEN_IN_FOCUSED_WINDOW, null);
        c.setInputMap(JDesktopPane.WHEN_FOCUSED, null);
        c.setInputMap(JDesktopPane.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, inputMap);
        c.setActionMap(actionMap);
    }
    //#ProxyDesktopPaneUI.java:98: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.installUI(JComponent)

    /** @inheritDoc} */
    @Override
    public void uninstallUI(final JComponent c) {
        ui.uninstallUI(c);
    //#ProxyDesktopPaneUI.java:103: method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.uninstallUI(JComponent)
    //#input(void uninstallUI(JComponent)): c
    //#input(void uninstallUI(JComponent)): this
    //#input(void uninstallUI(JComponent)): this.ui
    //#pre[3] (void uninstallUI(JComponent)): this.ui != null
    }
    //#ProxyDesktopPaneUI.java:104: end of method: void com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.uninstallUI(JComponent)
}
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/ProxyDesktopPaneUI$2]
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/ProxyDesktopPaneUI$2] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#ProxyDesktopPaneUI.java:: end of method: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2__static_init
    //#ProxyDesktopPaneUI.java:: end of class: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$2
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/ProxyDesktopPaneUI$1]
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/ProxyDesktopPaneUI$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1__static_init): __Dispatch_Table.actionPerformed(Ljava/awt/event/ActionEvent;)V == &actionPerformed
    //#ProxyDesktopPaneUI.java:: end of method: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1__static_init
    //#ProxyDesktopPaneUI.java:: end of class: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI$1
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/ProxyDesktopPaneUI]
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Dispatch_Table.initInputActionMap()V
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Dispatch_Table.installUI(Ljavax/swing/JComponent;)V
    //#output(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Dispatch_Table.uninstallUI(Ljavax/swing/JComponent;)V
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/desktopPane/ProxyDesktopPaneUI] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Dispatch_Table.initInputActionMap()V == &initInputActionMap
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Dispatch_Table.installUI(Ljavax/swing/JComponent;)V == &installUI
    //#post(com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init): __Dispatch_Table.uninstallUI(Ljavax/swing/JComponent;)V == &uninstallUI
    //#ProxyDesktopPaneUI.java:: end of method: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI.com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI__static_init
    //#ProxyDesktopPaneUI.java:: end of class: com.dmdirc.addons.ui_swing.components.desktopPane.ProxyDesktopPaneUI
