//# 0 errors, 496 messages
//#
/*
    //#SnappingJSplitPane.java:1:1: class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation
    //#SnappingJSplitPane.java:1:1: class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1
    //#SnappingJSplitPane.java:1:1: method: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1__static_init
    //#SnappingJSplitPane.java:1:1: class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#SnappingJSplitPane.java:1:1: method: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__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;

import com.dmdirc.config.ConfigManager;
import com.dmdirc.config.IdentityManager;
import com.dmdirc.interfaces.ConfigChangeListener;
import com.dmdirc.addons.ui_swing.UIUtilities;

import java.awt.Component;

import javax.swing.JSplitPane;


/**
 * JSplit pane that snaps around its components preferred size.
 */
public class SnappingJSplitPane extends JSplitPane implements ConfigChangeListener {
    //#SnappingJSplitPane.java:38: method: bool com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.access$000(SnappingJSplitPane)
    //#input(bool access$000(SnappingJSplitPane)): x0
    //#input(bool access$000(SnappingJSplitPane)): x0.useOneTouchExpandable
    //#output(bool access$000(SnappingJSplitPane)): return_value
    //#pre[1] (bool access$000(SnappingJSplitPane)): x0 != null
    //#pre[2] (bool access$000(SnappingJSplitPane)): init'ed(x0.useOneTouchExpandable)
    //#post(bool access$000(SnappingJSplitPane)): return_value == x0.useOneTouchExpandable
    //#post(bool access$000(SnappingJSplitPane)): init'ed(return_value)
    //#SnappingJSplitPane.java:38: end of method: bool com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.access$000(SnappingJSplitPane)

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 2;
    /** Snap distance. */
    private final int snapDistance;
    /** Component to snap to? */
    private boolean leftComponentSnap = true;
    /** use one touch expandable? */
    private boolean useOneTouchExpandable;
    /** Global config manager. */
    private ConfigManager config;

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

        /** Horizontal orientation. */
        HORIZONTAL,
    //#SnappingJSplitPane.java:59: method: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): HORIZONTAL
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): VERTICAL
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation]
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#1) num objects
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): HORIZONTAL.__Tag
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#2) num objects
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): VERTICAL.__Tag
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation[](SnappingJSplitPane$Orientation__static_init#3) num objects
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES.length
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES[0]
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES[1]
    //#new obj(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#1)
    //#new obj(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#2)
    //#new obj(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation[](SnappingJSplitPane$Orientation__static_init#3)
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES == &new SnappingJSplitPane$Orientation[](SnappingJSplitPane$Orientation__static_init#3)
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): HORIZONTAL == &new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#1)
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES[0] == &new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#1)
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): VERTICAL == &new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#2)
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES[1] == &new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#2)
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#1) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation(SnappingJSplitPane$Orientation__static_init#2) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): new SnappingJSplitPane$Orientation[](SnappingJSplitPane$Orientation__static_init#3) num objects == 1
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): HORIZONTAL.__Tag == com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): VERTICAL.__Tag == com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): $VALUES.length == 2
    //#unanalyzed(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init): Effects-of-calling:java.lang.Enum
        /** Vertical orientation. */
        VERTICAL
    //#SnappingJSplitPane.java:61: end of method: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation__static_init
    }

    /**
     * Instantiates a new snapping split pane. Defaults to using a horizontal 
     * split, two null components and snapping to the left component.
     */
    public SnappingJSplitPane() {
        this(Orientation.HORIZONTAL);
    //#SnappingJSplitPane.java:69: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.useOneTouchExpandable
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.leftComponentSnap == 1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): this.snapDistance == 10
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:70: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane()

    /**
     * Instantiates a new snapping split pane. Defaults to using a horizontal 
     * split, two null components and snapping to the left component.
     * 
     * @param snapDistance Distance to around the preferred size
     */
    public SnappingJSplitPane(final int snapDistance) {
        this(Orientation.HORIZONTAL, snapDistance);
    //#SnappingJSplitPane.java:79: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): snapDistance
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.useOneTouchExpandable
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.leftComponentSnap == 1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): this.snapDistance == snapDistance
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): init'ed(this.snapDistance)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:80: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(int)

    /**
     * Instantiates a new snapping split pane. Defaults to using a horizontal 
     * split and two null components.
     * 
     * @param leftComponentSnap Snap to the preferred size of the left component?
     */
    public SnappingJSplitPane(final boolean leftComponentSnap) {
        this(Orientation.HORIZONTAL, leftComponentSnap, 10);
    //#SnappingJSplitPane.java:89: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): leftComponentSnap
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.useOneTouchExpandable
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.leftComponentSnap == leftComponentSnap
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): init'ed(this.leftComponentSnap)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): this.snapDistance == 10
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:90: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool)

    /**
     * Instantiates a new snapping split pane. Defaults to using a horizontal 
     * split and two null components.
     * 
     * @param leftComponentSnap Snap to the preferred size of the left component?
     * @param snapDistance Distance to around the preferred size
     */
    public SnappingJSplitPane(final boolean leftComponentSnap,
            final int snapDistance) {
        this(Orientation.HORIZONTAL, leftComponentSnap, snapDistance);
    //#SnappingJSplitPane.java:101: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): leftComponentSnap
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): snapDistance
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.useOneTouchExpandable
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.leftComponentSnap == leftComponentSnap
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): init'ed(this.leftComponentSnap)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): this.snapDistance == snapDistance
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): init'ed(this.snapDistance)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:102: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(bool, int)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components and snapping to the left component.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     */
    public SnappingJSplitPane(final Orientation orientation) {
        this(orientation, null, null, 10);
    //#SnappingJSplitPane.java:113: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.useOneTouchExpandable
    //#pre[1] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.leftComponentSnap == 1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): this.snapDistance == 10
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:114: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components and snapping to the left component.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param snapDistance Distance to around the preferred size
     */
    public SnappingJSplitPane(final Orientation orientation,
            final int snapDistance) {
        this(orientation, null, null, snapDistance);
    //#SnappingJSplitPane.java:127: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): snapDistance
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.useOneTouchExpandable
    //#pre[1] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.leftComponentSnap == 1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): this.snapDistance == snapDistance
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): init'ed(this.snapDistance)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:128: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, int)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param leftComponentSnap Snap to the preferred size of the left component?
     */
    public SnappingJSplitPane(final Orientation orientation,
            final boolean leftComponentSnap) {
        this(orientation, null, null, leftComponentSnap, 10);
    //#SnappingJSplitPane.java:141: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): leftComponentSnap
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.useOneTouchExpandable
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.leftComponentSnap == leftComponentSnap
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): init'ed(this.leftComponentSnap)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): this.snapDistance == 10
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:142: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param leftComponentSnap Snap to the preferred size of the left component?
     * @param snapDistance Distance to around the preferred size
     */
    public SnappingJSplitPane(final Orientation orientation,
            final boolean leftComponentSnap, final int snapDistance) {
        this(orientation, null, null, leftComponentSnap, snapDistance);
    //#SnappingJSplitPane.java:156: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): leftComponentSnap
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): snapDistance
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.useOneTouchExpandable
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.leftComponentSnap == leftComponentSnap
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): init'ed(this.leftComponentSnap)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): this.snapDistance == snapDistance
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): init'ed(this.snapDistance)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:157: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, bool, int)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components and snapping to the left component.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param leftComponent left component
     * @param rightComponent right component
     */
    public SnappingJSplitPane(final Orientation orientation,
            final Component leftComponent, final Component rightComponent) {
        this(orientation, leftComponent, rightComponent, true, 10);
    //#SnappingJSplitPane.java:171: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): leftComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): rightComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.useOneTouchExpandable
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.leftComponentSnap == 1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): this.snapDistance == 10
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:172: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components and snapping to the left component.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param leftComponent left component
     * @param rightComponent right component
     * @param snapDistance Distance to around the preferred size
     */
    public SnappingJSplitPane(final Orientation orientation,
            final Component leftComponent, final Component rightComponent,
            final int snapDistance) {
        this(orientation, leftComponent, rightComponent, true, snapDistance);
    //#SnappingJSplitPane.java:188: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): leftComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): rightComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): snapDistance
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.useOneTouchExpandable
    //#pre[2] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.leftComponentSnap == 1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): this.snapDistance == snapDistance
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): init'ed(this.snapDistance)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:189: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, int)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param leftComponent left component
     * @param rightComponent right component
     * @param leftComponentSnap Snap to the preferred size of the left component?
     */
    public SnappingJSplitPane(final Orientation orientation,
            final Component leftComponent, final Component rightComponent,
            final boolean leftComponentSnap) {
        this(orientation, leftComponent, rightComponent, leftComponentSnap, 10);
    //#SnappingJSplitPane.java:205: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): leftComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): leftComponentSnap
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): rightComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.useOneTouchExpandable
    //#pre[3] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.leftComponentSnap == leftComponentSnap
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): init'ed(this.leftComponentSnap)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): this.snapDistance == 10
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:javax.swing.JSplitPane
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptionBool
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:javax.swing.ActionMap:setParent
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:javax.swing.ActionMap:clear
    //#unanalyzed(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    }
    //#SnappingJSplitPane.java:206: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool)

    /**
     * Instantiates a new snapping split pane. Defaults to using two null 
     * components.
     * 
     * @param orientation Split pane orientation 
     * <code>JSplitPane.HORIZONTAL_SPLIT</code> or 
     * <code>JSplitPane.VERTICAL_SPLIT</code>
     * @param leftComponent left component
     * @param rightComponent right component
     * @param leftComponentSnap Snap to the preferred size of the left component?
     * @param snapDistance Distance to around the preferred size
     */
    public SnappingJSplitPane(final Orientation orientation,
            final Component leftComponent, final Component rightComponent,
            final boolean leftComponentSnap, final int snapDistance) {
        super((orientation.equals(Orientation.HORIZONTAL)) ? HORIZONTAL_SPLIT : VERTICAL_SPLIT,
    //#SnappingJSplitPane.java:223: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#SnappingJSplitPane.java:223: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals(Object)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: bool com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation:equals(Object)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$Orientation.HORIZONTAL
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): leftComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): leftComponentSnap
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): orientation
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): rightComponent
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): snapDistance
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.config
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.leftComponentSnap
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.snapDistance
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.useOneTouchExpandable
    //#pre[3] (void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): orientation != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap(...)@235 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap(...)@236 != null
    //#presumption(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): com.dmdirc.config.IdentityManager:getGlobalConfig(...)@229 != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.config != null
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.leftComponentSnap == leftComponentSnap
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): init'ed(this.leftComponentSnap)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): this.snapDistance == snapDistance
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): init'ed(this.snapDistance)
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)): init'ed(this.useOneTouchExpandable)
                true, leftComponent, rightComponent);

        this.leftComponentSnap = leftComponentSnap;
        this.snapDistance = snapDistance;

        config = IdentityManager.getGlobalConfig();
    //#SnappingJSplitPane.java:229: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: ConfigManager com.dmdirc.config.IdentityManager:getGlobalConfig()
        useOneTouchExpandable = config.getOptionBool("ui", "useOneTouchExpandable");
    //#SnappingJSplitPane.java:230: 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.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)

        setOneTouchExpandable(useOneTouchExpandable);
    //#SnappingJSplitPane.java:232: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable(bool)
        setContinuousLayout(true);
    //#SnappingJSplitPane.java:233: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setContinuousLayout(bool)
        
        getActionMap().setParent(null);
    //#SnappingJSplitPane.java:235: Warning: method not available - call not analyzed
    //#    call on ActionMap com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: ActionMap com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap()
        getActionMap().clear();
    //#SnappingJSplitPane.java:236: Warning: method not available - call not analyzed
    //#    call on ActionMap com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: ActionMap com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getActionMap()

        config.addChangeListener("ui", "useOneTouchExpandable", this);
    //#SnappingJSplitPane.java:238: 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.SnappingJSplitPane
    //#    method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)
    //#    unanalyzed callee: void com.dmdirc.config.ConfigManager:addChangeListener(String, String, ConfigChangeListener)
    }
    //#SnappingJSplitPane.java:239: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane(SnappingJSplitPane$Orientation, Component, Component, bool, int)

    /** {@inheritDoc} */
    @Override
    public void setDividerLocation(final int location) {
        if (getOrientation() == HORIZONTAL_SPLIT) {
    //#SnappingJSplitPane.java:244: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.setDividerLocation(int)
    //#SnappingJSplitPane.java:244: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getOrientation()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocation(int)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getOrientation()
    //#input(void setDividerLocation(int)): location
    //#input(void setDividerLocation(int)): this
    //#input(void setDividerLocation(int)): this.leftComponentSnap
    //#input(void setDividerLocation(int)): this.snapDistance
    //#pre[3] (void setDividerLocation(int)): init'ed(this.leftComponentSnap)
    //#unanalyzed(void setDividerLocation(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent
    //#unanalyzed(void setDividerLocation(int)): Effects-of-calling:java.awt.Component:getPreferredSize
    //#unanalyzed(void setDividerLocation(int)): Effects-of-calling:java.lang.Math:abs
    //#unanalyzed(void setDividerLocation(int)): Effects-of-calling:javax.swing.JSplitPane:setDividerLocation
    //#unanalyzed(void setDividerLocation(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent
    //#unanalyzed(void setDividerLocation(int)): Effects-of-calling:com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth
    //#test_vector(void setDividerLocation(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getOrientation(...)@244: {-2_147_483_648..0, 2..4_294_967_295}, {1}
            setDividerLocationHorizontal(location);
        } else {
            setDividerLocationVertical(location);
        }
    }
    //#SnappingJSplitPane.java:249: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.setDividerLocation(int)

    /**
     * Sets the divider location snapping to the preferred component size.
     * 
     * @param location new location
     */
    private void setDividerLocationHorizontal(final int location) {
        if (leftComponentSnap) {
    //#SnappingJSplitPane.java:257: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.setDividerLocationHorizontal(int)
    //#input(void setDividerLocationHorizontal(int)): location
    //#input(void setDividerLocationHorizontal(int)): this
    //#input(void setDividerLocationHorizontal(int)): this.leftComponentSnap
    //#input(void setDividerLocationHorizontal(int)): this.snapDistance
    //#pre[3] (void setDividerLocationHorizontal(int)): init'ed(this.leftComponentSnap)
    //#presumption(void setDividerLocationHorizontal(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent(...)@258 != null
    //#presumption(void setDividerLocationHorizontal(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent(...)@262 != null
    //#presumption(void setDividerLocationHorizontal(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth(...)@263 - location in {-4_294_967_296..6_442_450_943}
    //#presumption(void setDividerLocationHorizontal(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth(...)@265 - java.awt.Component:getPreferredSize(...).width@262 in {-2_147_483_648..4_294_967_295}
    //#presumption(void setDividerLocationHorizontal(int)): java.awt.Component:getPreferredSize(...).width@258 - location in {-2_147_483_648..4_294_967_295}
    //#presumption(void setDividerLocationHorizontal(int)): java.awt.Component:getPreferredSize(...).width@262 - (com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth(...)@263 - location) in {-4_294_967_295..2_147_483_648}
    //#presumption(void setDividerLocationHorizontal(int)): java.awt.Component:getPreferredSize(...)@258 != null
    //#presumption(void setDividerLocationHorizontal(int)): java.awt.Component:getPreferredSize(...)@262 != null
    //#test_vector(void setDividerLocationHorizontal(int)): this.leftComponentSnap: {0}, {1}
            final int pref = getLeftComponent().getPreferredSize().width;
    //#SnappingJSplitPane.java:258: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationHorizontal(int)
    //#    unanalyzed callee: Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent()
            super.setDividerLocation(Math.abs(pref - location) <= snapDistance ? pref
                    : location);
        } else {
            final int pref = getRightComponent().getPreferredSize().width;
    //#SnappingJSplitPane.java:262: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationHorizontal(int)
    //#    unanalyzed callee: Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent()
            final int result = Math.abs(getWidth() - location - pref);
    //#SnappingJSplitPane.java:263: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationHorizontal(int)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
            if (result >= -snapDistance && result <= snapDistance) {
                super.setDividerLocation(Math.abs(getWidth() - pref));
    //#SnappingJSplitPane.java:265: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationHorizontal(int)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
            } else {
                super.setDividerLocation(location);
            }
        }
    }
    //#SnappingJSplitPane.java:270: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.setDividerLocationHorizontal(int)

    /**
     * Sets the divider location snapping to the preferred component size.
     * 
     * @param location new location
     */
    private void setDividerLocationVertical(final int location) {
        if (leftComponentSnap) {
    //#SnappingJSplitPane.java:278: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.setDividerLocationVertical(int)
    //#input(void setDividerLocationVertical(int)): location
    //#input(void setDividerLocationVertical(int)): this
    //#input(void setDividerLocationVertical(int)): this.leftComponentSnap
    //#input(void setDividerLocationVertical(int)): this.snapDistance
    //#pre[3] (void setDividerLocationVertical(int)): init'ed(this.leftComponentSnap)
    //#presumption(void setDividerLocationVertical(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent(...)@279 != null
    //#presumption(void setDividerLocationVertical(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent(...)@283 != null
    //#presumption(void setDividerLocationVertical(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth(...)@284 - location in {-4_294_967_296..6_442_450_943}
    //#presumption(void setDividerLocationVertical(int)): com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth(...)@286 - java.awt.Component:getPreferredSize(...).height@283 in {-2_147_483_648..4_294_967_295}
    //#presumption(void setDividerLocationVertical(int)): java.awt.Component:getPreferredSize(...).height@279 - location in {-2_147_483_648..4_294_967_295}
    //#presumption(void setDividerLocationVertical(int)): java.awt.Component:getPreferredSize(...).height@283 - (com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth(...)@284 - location) in {-4_294_967_295..2_147_483_648}
    //#presumption(void setDividerLocationVertical(int)): java.awt.Component:getPreferredSize(...)@279 != null
    //#presumption(void setDividerLocationVertical(int)): java.awt.Component:getPreferredSize(...)@283 != null
    //#test_vector(void setDividerLocationVertical(int)): this.leftComponentSnap: {0}, {1}
            final int pref = getLeftComponent().getPreferredSize().height;
    //#SnappingJSplitPane.java:279: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationVertical(int)
    //#    unanalyzed callee: Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getLeftComponent()
            super.setDividerLocation(Math.abs(pref - location) <= snapDistance ? pref
                    : location);
        } else {
            final int pref = getRightComponent().getPreferredSize().height;
    //#SnappingJSplitPane.java:283: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationVertical(int)
    //#    unanalyzed callee: Component com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getRightComponent()
            final int result = Math.abs(getWidth() - location - pref);
    //#SnappingJSplitPane.java:284: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationVertical(int)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
            if (result >= -snapDistance && result <= snapDistance) {
                super.setDividerLocation(Math.abs(getWidth() - pref));
    //#SnappingJSplitPane.java:286: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
    //#    method: void setDividerLocationVertical(int)
    //#    unanalyzed callee: int com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:getWidth()
            } else {
                super.setDividerLocation(location);
            }
        }
    }
    //#SnappingJSplitPane.java:291: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.setDividerLocationVertical(int)

    /** {@inheritDoc} */
    @Override
    public void configChanged(final String domain, final String key) {
        useOneTouchExpandable = config.getOptionBool("ui", "useOneTouchExpandable");
    //#SnappingJSplitPane.java:296: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.configChanged(String, String)
    //#SnappingJSplitPane.java:296: 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.SnappingJSplitPane
    //#    method: void configChanged(String, String)
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#input(void configChanged(String, String)): this
    //#input(void configChanged(String, String)): this.config
    //#output(void configChanged(String, String)): this.useOneTouchExpandable
    //#pre[2] (void configChanged(String, String)): this.config != null
    //#post(void configChanged(String, String)): init'ed(this.useOneTouchExpandable)
    //#unanalyzed(void configChanged(String, String)): Effects-of-calling:javax.swing.SwingUtilities:isEventDispatchThread
    //#unanalyzed(void configChanged(String, String)): Effects-of-calling:java.lang.Runnable:run
    //#unanalyzed(void configChanged(String, String)): Effects-of-calling:javax.swing.SwingUtilities:invokeLater

        UIUtilities.invokeLater(new Runnable() {
    //#SnappingJSplitPane.java:298: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)): Param_1
    //#input(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)): this
    //#output(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)): this.this$0
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)): this.this$0 == Param_1
    //#post(void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)): init'ed(this.this$0)
    //#SnappingJSplitPane.java:298: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1(SnappingJSplitPane)

            /** {@inheritDoc} */
            @Override
            public void run() {
                setOneTouchExpandable(useOneTouchExpandable);
    //#SnappingJSplitPane.java:303: method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1.run()
    //#SnappingJSplitPane.java:303: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1
    //#    method: void run()
    //#    unanalyzed callee: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane:setOneTouchExpandable(bool)
    //#input(void run()): this
    //#input(void run()): this.this$0
    //#input(void run()): this.this$0.useOneTouchExpandable
    //#pre[2] (void run()): this.this$0 != null
    //#pre[3] (void run()): init'ed(this.useOneTouchExpandable)
            }
    //#SnappingJSplitPane.java:304: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1.run()
        });
    }
    //#SnappingJSplitPane.java:306: end of method: void com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.configChanged(String, String)
}
    
    //#SnappingJSplitPane.java:: end of class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$Orientation
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$1]
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1__static_init): __Dispatch_Table.run()V
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/SnappingJSplitPane$1] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1__static_init): __Dispatch_Table.run()V == &run
    //#SnappingJSplitPane.java:: end of method: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1__static_init
    //#SnappingJSplitPane.java:: end of class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane$1
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/SnappingJSplitPane]
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.configChanged(Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.setDividerLocation(I)V
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.setDividerLocationHorizontal(I)V
    //#output(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.setDividerLocationVertical(I)V
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Descendant_Table[com/dmdirc/addons/ui_swing/components/SnappingJSplitPane] == &__Dispatch_Table
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.configChanged(Ljava/lang/String;Ljava/lang/String;)V == &configChanged
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.setDividerLocation(I)V == &setDividerLocation
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.setDividerLocationHorizontal(I)V == &setDividerLocationHorizontal
    //#post(com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init): __Dispatch_Table.setDividerLocationVertical(I)V == &setDividerLocationVertical
    //#SnappingJSplitPane.java:: end of method: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane.com.dmdirc.addons.ui_swing.components.SnappingJSplitPane__static_init
    //#SnappingJSplitPane.java:: end of class: com.dmdirc.addons.ui_swing.components.SnappingJSplitPane
