Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / javax / swing / JTree.js
index 78265ba..2633389 100644 (file)
-Clazz.declarePackage ("javax.swing");\r
-Clazz.load (["javax.swing.JComponent", "$.Scrollable", "javax.swing.event.TreeModelListener", "$.TreeSelectionListener", "javax.swing.tree.DefaultMutableTreeNode", "$.DefaultTreeSelectionModel"], "javax.swing.JTree", ["java.lang.Boolean", "$.IllegalArgumentException", "java.util.Collections", "$.Hashtable", "$.Stack", "$.Vector", "java.awt.Dimension", "java.awt.event.MouseEvent", "javax.swing.JViewport", "$.SwingUtilities", "$.UIManager", "javax.swing.event.TreeExpansionEvent", "$.TreeExpansionListener", "$.TreeWillExpandListener", "javax.swing.text.Position", "javax.swing.tree.DefaultTreeModel", "$.TreePath"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.treeModel = null;\r
-this.selectionModel = null;\r
-this.rootVisible = false;\r
-this.cellRenderer = null;\r
-this.rowHeight = 0;\r
-this.rowHeightSet = false;\r
-this.expandedState = null;\r
-this.showsRootHandles = false;\r
-this.showsRootHandlesSet = false;\r
-this.selectionRedirector = null;\r
-this.cellEditor = null;\r
-this.editable = false;\r
-this.largeModel = false;\r
-this.visibleRowCount = 0;\r
-this.invokesStopCellEditing = false;\r
-this.scrollsOnExpand = false;\r
-this.scrollsOnExpandSet = false;\r
-this.toggleClickCount = 0;\r
-this.treeModelListener = null;\r
-this.expandedStack = null;\r
-this.leadPath = null;\r
-this.anchorPath = null;\r
-this.expandsSelectedPaths = false;\r
-this.settingUI = false;\r
-this.dragEnabled = false;\r
-this.$expandRow = -1;\r
-this.uiTreeExpansionListener = null;\r
-if (!Clazz.isClassDefined ("javax.swing.JTree.TreeSelectionRedirector")) {\r
-javax.swing.JTree.$JTree$TreeSelectionRedirector$ ();\r
-}\r
-if (!Clazz.isClassDefined ("javax.swing.JTree.TreeModelHandler")) {\r
-javax.swing.JTree.$JTree$TreeModelHandler$ ();\r
-}\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing, "JTree", javax.swing.JComponent, javax.swing.Scrollable);\r
-c$.getDefaultTreeModel = Clazz.defineMethod (c$, "getDefaultTreeModel", \r
-function () {\r
-var root =  new javax.swing.tree.DefaultMutableTreeNode ("JTree");\r
-var parent;\r
-parent =  new javax.swing.tree.DefaultMutableTreeNode ("colors");\r
-root.add (parent);\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("blue"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("violet"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("red"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("yellow"));\r
-parent =  new javax.swing.tree.DefaultMutableTreeNode ("sports");\r
-root.add (parent);\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("basketball"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("soccer"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("football"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("hockey"));\r
-parent =  new javax.swing.tree.DefaultMutableTreeNode ("food");\r
-root.add (parent);\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("hot dogs"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("pizza"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("ravioli"));\r
-parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("bananas"));\r
-return  new javax.swing.tree.DefaultTreeModel (root);\r
-});\r
-c$.createTreeModel = Clazz.defineMethod (c$, "createTreeModel", \r
-function (value) {\r
-var root;\r
-if ((Clazz.instanceOf (value, Array)) || (Clazz.instanceOf (value, java.util.Hashtable)) || (Clazz.instanceOf (value, java.util.Vector))) {\r
-root =  new javax.swing.tree.DefaultMutableTreeNode ("root");\r
-javax.swing.JTree.DynamicUtilTreeNode.createChildren (root, value);\r
-} else {\r
-root =  new javax.swing.JTree.DynamicUtilTreeNode ("root", value);\r
-}return  new javax.swing.tree.DefaultTreeModel (root, false);\r
-}, "~O");\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-this.construct (javax.swing.JTree.getDefaultTreeModel ());\r
-});\r
-Clazz.makeConstructor (c$, \r
-function (value) {\r
-this.construct (javax.swing.JTree.createTreeModel (value));\r
-this.setRootVisible (false);\r
-this.setShowsRootHandles (true);\r
-this.expandRoot ();\r
-}, "~A");\r
-Clazz.makeConstructor (c$, \r
-function (value) {\r
-this.construct (javax.swing.JTree.createTreeModel (value));\r
-this.setRootVisible (false);\r
-this.setShowsRootHandles (true);\r
-this.expandRoot ();\r
-}, "java.util.Vector");\r
-Clazz.makeConstructor (c$, \r
-function (value) {\r
-this.construct (javax.swing.JTree.createTreeModel (value));\r
-this.setRootVisible (false);\r
-this.setShowsRootHandles (true);\r
-this.expandRoot ();\r
-}, "java.util.Hashtable");\r
-Clazz.makeConstructor (c$, \r
-function (root) {\r
-this.construct (root, false);\r
-}, "javax.swing.tree.TreeNode");\r
-Clazz.makeConstructor (c$, \r
-function (root, asksAllowsChildren) {\r
-this.construct ( new javax.swing.tree.DefaultTreeModel (root, asksAllowsChildren));\r
-}, "javax.swing.tree.TreeNode,~B");\r
-Clazz.makeConstructor (c$, \r
-function (newModel) {\r
-Clazz.superConstructor (this, javax.swing.JTree);\r
-this.expandedStack =  new java.util.Stack ();\r
-this.toggleClickCount = 2;\r
-this.expandedState =  new java.util.Hashtable ();\r
-this.setLayout (null);\r
-this.rowHeight = 16;\r
-this.visibleRowCount = 20;\r
-this.rootVisible = true;\r
-this.selectionModel =  new javax.swing.tree.DefaultTreeSelectionModel ();\r
-this.cellRenderer = null;\r
-this.scrollsOnExpand = true;\r
-this.setOpaque (true);\r
-this.expandsSelectedPaths = true;\r
-this.updateUI ();\r
-this.setModel (newModel);\r
-}, "javax.swing.tree.TreeModel");\r
-Clazz.overrideMethod (c$, "getUI", \r
-function () {\r
-return this.ui;\r
-});\r
-Clazz.defineMethod (c$, "setUI", \r
-function (ui) {\r
-if (this.ui !== ui) {\r
-this.settingUI = true;\r
-this.uiTreeExpansionListener = null;\r
-try {\r
-Clazz.superCall (this, javax.swing.JTree, "setUI", [ui]);\r
-} finally {\r
-this.settingUI = false;\r
-}\r
-}}, "javax.swing.plaf.TreeUI");\r
-Clazz.overrideMethod (c$, "updateUI", \r
-function () {\r
-this.setUI (javax.swing.UIManager.getUI (this));\r
-javax.swing.SwingUtilities.updateRendererOrEditorUI (this.getCellRenderer ());\r
-javax.swing.SwingUtilities.updateRendererOrEditorUI (this.getCellEditor ());\r
-});\r
-Clazz.overrideMethod (c$, "getUIClassID", \r
-function () {\r
-return "TreeUI";\r
-});\r
-Clazz.defineMethod (c$, "getCellRenderer", \r
-function () {\r
-return this.cellRenderer;\r
-});\r
-Clazz.defineMethod (c$, "setCellRenderer", \r
-function (x) {\r
-var oldValue = this.cellRenderer;\r
-this.cellRenderer = x;\r
-this.firePropertyChangeObject ("cellRenderer", oldValue, this.cellRenderer);\r
-this.invalidate ();\r
-}, "javax.swing.tree.TreeCellRenderer");\r
-Clazz.defineMethod (c$, "setEditable", \r
-function (flag) {\r
-var oldValue = this.editable;\r
-this.editable = flag;\r
-this.firePropertyChangeBool ("editable", oldValue, flag);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "isEditable", \r
-function () {\r
-return this.editable;\r
-});\r
-Clazz.defineMethod (c$, "setCellEditor", \r
-function (cellEditor) {\r
-var oldEditor = this.cellEditor;\r
-this.cellEditor = cellEditor;\r
-this.firePropertyChangeObject ("cellEditor", oldEditor, cellEditor);\r
-this.invalidate ();\r
-}, "javax.swing.tree.TreeCellEditor");\r
-Clazz.defineMethod (c$, "getCellEditor", \r
-function () {\r
-return this.cellEditor;\r
-});\r
-Clazz.defineMethod (c$, "getModel", \r
-function () {\r
-return this.treeModel;\r
-});\r
-Clazz.defineMethod (c$, "setModel", \r
-function (newModel) {\r
-this.clearSelection ();\r
-var oldModel = this.treeModel;\r
-if (this.treeModel != null && this.treeModelListener != null) this.treeModel.removeTreeModelListener (this.treeModelListener);\r
-this.treeModel = newModel;\r
-this.clearToggledPaths ();\r
-if (this.treeModel != null) {\r
-if (this.treeModelListener == null) this.treeModelListener = this.createTreeModelListener ();\r
-if (this.treeModelListener != null) this.treeModel.addTreeModelListener (this.treeModelListener);\r
-if (this.treeModel.getRoot () != null && !this.treeModel.isLeaf (this.treeModel.getRoot ())) {\r
-this.expandedState.put ( new javax.swing.tree.TreePath (this.treeModel.getRoot ()), Boolean.TRUE);\r
-}}this.firePropertyChangeObject ("model", oldModel, this.treeModel);\r
-this.invalidate ();\r
-}, "javax.swing.tree.TreeModel");\r
-Clazz.defineMethod (c$, "isRootVisible", \r
-function () {\r
-return this.rootVisible;\r
-});\r
-Clazz.defineMethod (c$, "setRootVisible", \r
-function (rootVisible) {\r
-var oldValue = this.rootVisible;\r
-this.rootVisible = rootVisible;\r
-this.firePropertyChangeBool ("rootVisible", oldValue, this.rootVisible);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "setShowsRootHandles", \r
-function (newValue) {\r
-var oldValue = this.showsRootHandles;\r
-var model = this.getModel ();\r
-this.showsRootHandles = newValue;\r
-this.showsRootHandlesSet = true;\r
-this.firePropertyChangeBool ("showsRootHandles", oldValue, this.showsRootHandles);\r
-this.invalidate ();\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getShowsRootHandles", \r
-function () {\r
-return this.showsRootHandles;\r
-});\r
-Clazz.defineMethod (c$, "setRowHeight", \r
-function (rowHeight) {\r
-var oldValue = this.rowHeight;\r
-this.rowHeight = rowHeight;\r
-this.rowHeightSet = true;\r
-this.firePropertyChangeInt ("rowHeight", oldValue, this.rowHeight);\r
-this.invalidate ();\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getRowHeight", \r
-function () {\r
-return this.rowHeight;\r
-});\r
-Clazz.defineMethod (c$, "isFixedRowHeight", \r
-function () {\r
-return (this.rowHeight > 0);\r
-});\r
-Clazz.defineMethod (c$, "setLargeModel", \r
-function (newValue) {\r
-var oldValue = this.largeModel;\r
-this.largeModel = newValue;\r
-this.firePropertyChangeBool ("largeModel", oldValue, newValue);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "isLargeModel", \r
-function () {\r
-return this.largeModel;\r
-});\r
-Clazz.defineMethod (c$, "setInvokesStopCellEditing", \r
-function (newValue) {\r
-var oldValue = this.invokesStopCellEditing;\r
-this.invokesStopCellEditing = newValue;\r
-this.firePropertyChangeBool ("invokesStopCellEditing", oldValue, newValue);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getInvokesStopCellEditing", \r
-function () {\r
-return this.invokesStopCellEditing;\r
-});\r
-Clazz.defineMethod (c$, "setScrollsOnExpand", \r
-function (newValue) {\r
-var oldValue = this.scrollsOnExpand;\r
-this.scrollsOnExpand = newValue;\r
-this.scrollsOnExpandSet = true;\r
-this.firePropertyChangeBool ("scrollsOnExpand", oldValue, newValue);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getScrollsOnExpand", \r
-function () {\r
-return this.scrollsOnExpand;\r
-});\r
-Clazz.defineMethod (c$, "setToggleClickCount", \r
-function (clickCount) {\r
-var oldCount = this.toggleClickCount;\r
-this.toggleClickCount = clickCount;\r
-this.firePropertyChangeInt ("toggleClickCount", oldCount, clickCount);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getToggleClickCount", \r
-function () {\r
-return this.toggleClickCount;\r
-});\r
-Clazz.defineMethod (c$, "setExpandsSelectedPaths", \r
-function (newValue) {\r
-var oldValue = this.expandsSelectedPaths;\r
-this.expandsSelectedPaths = newValue;\r
-this.firePropertyChangeBool ("expandsSelectedPaths", oldValue, newValue);\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getExpandsSelectedPaths", \r
-function () {\r
-return this.expandsSelectedPaths;\r
-});\r
-Clazz.defineMethod (c$, "setDragEnabled", \r
-function (b) {\r
-this.dragEnabled = b;\r
-}, "~B");\r
-Clazz.defineMethod (c$, "getDragEnabled", \r
-function () {\r
-return this.dragEnabled;\r
-});\r
-Clazz.defineMethod (c$, "isPathEditable", \r
-function (path) {\r
-return this.isEditable ();\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "getToolTipText", \r
-function (event) {\r
-var tip = null;\r
-if (event != null) {\r
-var p = event.getPoint ();\r
-var selRow = this.getRowForLocation (p.x, p.y);\r
-var r = this.getCellRenderer ();\r
-if (selRow != -1 && r != null) {\r
-var path = this.getPathForRow (selRow);\r
-var lastPath = path.getLastPathComponent ();\r
-var rComponent = r.getTreeCellRendererComponent (this, lastPath, this.isRowSelected (selRow), this.isExpanded (selRow), this.getModel ().isLeaf (lastPath), selRow, true);\r
-if (Clazz.instanceOf (rComponent, javax.swing.JComponent)) {\r
-var newEvent;\r
-var pathBounds = this.getPathBounds (path);\r
-p.translate (-pathBounds.x, -pathBounds.y);\r
-newEvent =  new java.awt.event.MouseEvent (rComponent, event.getID (), event.getWhen (), event.getModifiers (), p.x, p.y, event.getXOnScreen (), event.getYOnScreen (), event.getClickCount (), event.isPopupTrigger (), 0);\r
-tip = (rComponent).getToolTipText (newEvent);\r
-}}}if (tip == null) {\r
-tip = this.getToolTipText ();\r
-}return tip;\r
-}, "java.awt.event.MouseEvent");\r
-Clazz.defineMethod (c$, "convertValueToText", \r
-function (value, selected, expanded, leaf, row, hasFocus) {\r
-if (value != null) {\r
-var sValue = value.toString ();\r
-if (sValue != null) {\r
-return sValue;\r
-}}return "";\r
-}, "~O,~B,~B,~B,~N,~B");\r
-Clazz.defineMethod (c$, "getRowCount", \r
-function () {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.getRowCount (this);\r
-return 0;\r
-});\r
-Clazz.defineMethod (c$, "setSelectionPath", \r
-function (path) {\r
-this.getSelectionModel ().setSelectionPath (path);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "setSelectionPaths", \r
-function (paths) {\r
-this.getSelectionModel ().setSelectionPaths (paths);\r
-}, "~A");\r
-Clazz.defineMethod (c$, "setLeadSelectionPath", \r
-function (newPath) {\r
-var oldValue = this.leadPath;\r
-this.leadPath = newPath;\r
-this.firePropertyChangeObject ("leadSelectionPath", oldValue, newPath);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "setAnchorSelectionPath", \r
-function (newPath) {\r
-var oldValue = this.anchorPath;\r
-this.anchorPath = newPath;\r
-this.firePropertyChangeObject ("anchorSelectionPath", oldValue, newPath);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "setSelectionRow", \r
-function (row) {\r
-var rows =  Clazz.newIntArray (-1, [row]);\r
-this.setSelectionRows (rows);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "setSelectionRows", \r
-function (rows) {\r
-var ui = this.getUI ();\r
-if (ui != null && rows != null) {\r
-var numRows = rows.length;\r
-var paths =  new Array (numRows);\r
-for (var counter = 0; counter < numRows; counter++) {\r
-paths[counter] = ui.getPathForRow (this, rows[counter]);\r
-}\r
-this.setSelectionPaths (paths);\r
-}}, "~A");\r
-Clazz.defineMethod (c$, "addSelectionPath", \r
-function (path) {\r
-this.getSelectionModel ().addSelectionPath (path);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "addSelectionPaths", \r
-function (paths) {\r
-this.getSelectionModel ().addSelectionPaths (paths);\r
-}, "~A");\r
-Clazz.defineMethod (c$, "addSelectionRow", \r
-function (row) {\r
-var rows =  Clazz.newIntArray (-1, [row]);\r
-this.addSelectionRows (rows);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "addSelectionRows", \r
-function (rows) {\r
-var ui = this.getUI ();\r
-if (ui != null && rows != null) {\r
-var numRows = rows.length;\r
-var paths =  new Array (numRows);\r
-for (var counter = 0; counter < numRows; counter++) paths[counter] = ui.getPathForRow (this, rows[counter]);\r
-\r
-this.addSelectionPaths (paths);\r
-}}, "~A");\r
-Clazz.defineMethod (c$, "getLastSelectedPathComponent", \r
-function () {\r
-var selPath = this.getSelectionModel ().getSelectionPath ();\r
-if (selPath != null) return selPath.getLastPathComponent ();\r
-return null;\r
-});\r
-Clazz.defineMethod (c$, "getLeadSelectionPath", \r
-function () {\r
-return this.leadPath;\r
-});\r
-Clazz.defineMethod (c$, "getAnchorSelectionPath", \r
-function () {\r
-return this.anchorPath;\r
-});\r
-Clazz.defineMethod (c$, "getSelectionPath", \r
-function () {\r
-return this.getSelectionModel ().getSelectionPath ();\r
-});\r
-Clazz.defineMethod (c$, "getSelectionPaths", \r
-function () {\r
-return this.getSelectionModel ().getSelectionPaths ();\r
-});\r
-Clazz.defineMethod (c$, "getSelectionRows", \r
-function () {\r
-return this.getSelectionModel ().getSelectionRows ();\r
-});\r
-Clazz.defineMethod (c$, "getSelectionCount", \r
-function () {\r
-return this.selectionModel.getSelectionCount ();\r
-});\r
-Clazz.defineMethod (c$, "getMinSelectionRow", \r
-function () {\r
-return this.getSelectionModel ().getMinSelectionRow ();\r
-});\r
-Clazz.defineMethod (c$, "getMaxSelectionRow", \r
-function () {\r
-return this.getSelectionModel ().getMaxSelectionRow ();\r
-});\r
-Clazz.defineMethod (c$, "getLeadSelectionRow", \r
-function () {\r
-var leadPath = this.getLeadSelectionPath ();\r
-if (leadPath != null) {\r
-return this.getRowForPath (leadPath);\r
-}return -1;\r
-});\r
-Clazz.defineMethod (c$, "isPathSelected", \r
-function (path) {\r
-return this.getSelectionModel ().isPathSelected (path);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "isRowSelected", \r
-function (row) {\r
-return this.getSelectionModel ().isRowSelected (row);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getExpandedDescendants", \r
-function (parent) {\r
-if (!this.isExpanded (parent)) return null;\r
-var toggledPaths = this.expandedState.keys ();\r
-var elements = null;\r
-var path;\r
-var value;\r
-if (toggledPaths != null) {\r
-while (toggledPaths.hasMoreElements ()) {\r
-path = toggledPaths.nextElement ();\r
-value = this.expandedState.get (path);\r
-if (path !== parent && value != null && (value).booleanValue () && parent.isDescendant (path) && this.isVisible (path)) {\r
-if (elements == null) {\r
-elements =  new java.util.Vector ();\r
-}elements.addElement (path);\r
-}}\r
-}if (elements == null) {\r
-var empty = java.util.Collections.emptySet ();\r
-return java.util.Collections.enumeration (empty);\r
-}return elements.elements ();\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "hasBeenExpanded", \r
-function (path) {\r
-return (path != null && this.expandedState.get (path) != null);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "isExpanded", \r
-function (path) {\r
-if (path == null) return false;\r
-var value = this.expandedState.get (path);\r
-if (value == null || !(value).booleanValue ()) return false;\r
-var parentPath = path.getParentPath ();\r
-if (parentPath != null) return this.isExpanded (parentPath);\r
-return true;\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "isExpanded", \r
-function (row) {\r
-var tree = this.getUI ();\r
-if (tree != null) {\r
-var path = tree.getPathForRow (this, row);\r
-if (path != null) {\r
-var value = this.expandedState.get (path);\r
-return (value != null && value.booleanValue ());\r
-}}return false;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "isCollapsed", \r
-function (path) {\r
-return !this.isExpanded (path);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "isCollapsed", \r
-function (row) {\r
-return !this.isExpanded (row);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "makeVisible", \r
-function (path) {\r
-if (path != null) {\r
-var parentPath = path.getParentPath ();\r
-if (parentPath != null) {\r
-this.expandPath (parentPath);\r
-}}}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "isVisible", \r
-function (path) {\r
-if (path != null) {\r
-var parentPath = path.getParentPath ();\r
-if (parentPath != null) return this.isExpanded (parentPath);\r
-return true;\r
-}return false;\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "getPathBounds", \r
-function (path) {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.getPathBounds (this, path);\r
-return null;\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "getRowBounds", \r
-function (row) {\r
-return this.getPathBounds (this.getPathForRow (row));\r
-}, "~N");\r
-Clazz.defineMethod (c$, "scrollPathToVisible", \r
-function (path) {\r
-if (path != null) {\r
-this.makeVisible (path);\r
-var bounds = this.getPathBounds (path);\r
-if (bounds != null) {\r
-this.scrollRectToVisible (bounds);\r
-}}}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "scrollRowToVisible", \r
-function (row) {\r
-this.scrollPathToVisible (this.getPathForRow (row));\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getPathForRow", \r
-function (row) {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.getPathForRow (this, row);\r
-return null;\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getRowForPath", \r
-function (path) {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.getRowForPath (this, path);\r
-return -1;\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "expandPath", \r
-function (path) {\r
-var model = this.getModel ();\r
-if (path != null && model != null && !model.isLeaf (path.getLastPathComponent ())) {\r
-this.setExpandedState (path, true);\r
-}}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "expandRow", \r
-function (row) {\r
-this.expandPath (this.getPathForRow (row));\r
-}, "~N");\r
-Clazz.defineMethod (c$, "collapsePath", \r
-function (path) {\r
-this.setExpandedState (path, false);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "collapseRow", \r
-function (row) {\r
-this.collapsePath (this.getPathForRow (row));\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getPathForLocation", \r
-function (x, y) {\r
-var closestPath = this.getClosestPathForLocation (x, y);\r
-if (closestPath != null) {\r
-var pathBounds = this.getPathBounds (closestPath);\r
-if (pathBounds != null && x >= pathBounds.x && x < (pathBounds.x + pathBounds.width) && y >= pathBounds.y && y < (pathBounds.y + pathBounds.height)) return closestPath;\r
-}return null;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "getRowForLocation", \r
-function (x, y) {\r
-return this.getRowForPath (this.getPathForLocation (x, y));\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "getClosestPathForLocation", \r
-function (x, y) {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.getClosestPathForLocation (this, x, y);\r
-return null;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "getClosestRowForLocation", \r
-function (x, y) {\r
-return this.getRowForPath (this.getClosestPathForLocation (x, y));\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "isEditing", \r
-function () {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.isEditing (this);\r
-return false;\r
-});\r
-Clazz.defineMethod (c$, "stopEditing", \r
-function () {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.stopEditing (this);\r
-return false;\r
-});\r
-Clazz.defineMethod (c$, "cancelEditing", \r
-function () {\r
-var tree = this.getUI ();\r
-if (tree != null) tree.cancelEditing (this);\r
-});\r
-Clazz.defineMethod (c$, "startEditingAtPath", \r
-function (path) {\r
-var tree = this.getUI ();\r
-if (tree != null) tree.startEditingAtPath (this, path);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "getEditingPath", \r
-function () {\r
-var tree = this.getUI ();\r
-if (tree != null) return tree.getEditingPath (this);\r
-return null;\r
-});\r
-Clazz.defineMethod (c$, "setSelectionModel", \r
-function (selectionModel) {\r
-if (selectionModel == null) selectionModel = javax.swing.JTree.EmptySelectionModel.sharedInstance ();\r
-var oldValue = this.selectionModel;\r
-if (this.selectionModel != null && this.selectionRedirector != null) {\r
-this.selectionModel.removeTreeSelectionListener (this.selectionRedirector);\r
-}this.selectionModel = selectionModel;\r
-if (this.selectionRedirector != null) {\r
-this.selectionModel.addTreeSelectionListener (this.selectionRedirector);\r
-}this.firePropertyChangeObject ("selectionModel", oldValue, this.selectionModel);\r
-}, "javax.swing.tree.TreeSelectionModel");\r
-Clazz.defineMethod (c$, "getSelectionModel", \r
-function () {\r
-return this.selectionModel;\r
-});\r
-Clazz.defineMethod (c$, "getPathBetweenRows", \r
-function (index0, index1) {\r
-var newMinIndex;\r
-var newMaxIndex;\r
-var tree = this.getUI ();\r
-newMinIndex = Math.min (index0, index1);\r
-newMaxIndex = Math.max (index0, index1);\r
-if (tree != null) {\r
-var selection =  new Array (newMaxIndex - newMinIndex + 1);\r
-for (var counter = newMinIndex; counter <= newMaxIndex; counter++) {\r
-selection[counter - newMinIndex] = tree.getPathForRow (this, counter);\r
-}\r
-return selection;\r
-}return null;\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "setSelectionInterval", \r
-function (index0, index1) {\r
-var paths = this.getPathBetweenRows (index0, index1);\r
-this.getSelectionModel ().setSelectionPaths (paths);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "addSelectionInterval", \r
-function (index0, index1) {\r
-var paths = this.getPathBetweenRows (index0, index1);\r
-this.getSelectionModel ().addSelectionPaths (paths);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "removeSelectionInterval", \r
-function (index0, index1) {\r
-var paths = this.getPathBetweenRows (index0, index1);\r
-this.getSelectionModel ().removeSelectionPaths (paths);\r
-}, "~N,~N");\r
-Clazz.defineMethod (c$, "removeSelectionPath", \r
-function (path) {\r
-this.getSelectionModel ().removeSelectionPath (path);\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "removeSelectionPaths", \r
-function (paths) {\r
-this.getSelectionModel ().removeSelectionPaths (paths);\r
-}, "~A");\r
-Clazz.defineMethod (c$, "removeSelectionRow", \r
-function (row) {\r
-var rows =  Clazz.newIntArray (-1, [row]);\r
-this.removeSelectionRows (rows);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "removeSelectionRows", \r
-function (rows) {\r
-var ui = this.getUI ();\r
-if (ui != null && rows != null) {\r
-var numRows = rows.length;\r
-var paths =  new Array (numRows);\r
-for (var counter = 0; counter < numRows; counter++) paths[counter] = ui.getPathForRow (this, rows[counter]);\r
-\r
-this.removeSelectionPaths (paths);\r
-}}, "~A");\r
-Clazz.defineMethod (c$, "clearSelection", \r
-function () {\r
-this.getSelectionModel ().clearSelection ();\r
-});\r
-Clazz.defineMethod (c$, "isSelectionEmpty", \r
-function () {\r
-return this.getSelectionModel ().isSelectionEmpty ();\r
-});\r
-Clazz.defineMethod (c$, "addTreeExpansionListener", \r
-function (tel) {\r
-if (this.settingUI) {\r
-this.uiTreeExpansionListener = tel;\r
-}this.listenerList.add (javax.swing.event.TreeExpansionListener, tel);\r
-}, "javax.swing.event.TreeExpansionListener");\r
-Clazz.defineMethod (c$, "removeTreeExpansionListener", \r
-function (tel) {\r
-this.listenerList.remove (javax.swing.event.TreeExpansionListener, tel);\r
-if (this.uiTreeExpansionListener === tel) {\r
-this.uiTreeExpansionListener = null;\r
-}}, "javax.swing.event.TreeExpansionListener");\r
-Clazz.defineMethod (c$, "getTreeExpansionListeners", \r
-function () {\r
-return this.listenerList.getListeners (javax.swing.event.TreeExpansionListener);\r
-});\r
-Clazz.defineMethod (c$, "addTreeWillExpandListener", \r
-function (tel) {\r
-this.listenerList.add (javax.swing.event.TreeWillExpandListener, tel);\r
-}, "javax.swing.event.TreeWillExpandListener");\r
-Clazz.defineMethod (c$, "removeTreeWillExpandListener", \r
-function (tel) {\r
-this.listenerList.remove (javax.swing.event.TreeWillExpandListener, tel);\r
-}, "javax.swing.event.TreeWillExpandListener");\r
-Clazz.defineMethod (c$, "getTreeWillExpandListeners", \r
-function () {\r
-return this.listenerList.getListeners (javax.swing.event.TreeWillExpandListener);\r
-});\r
-Clazz.defineMethod (c$, "fireTreeExpanded", \r
-function (path) {\r
-var listeners = this.listenerList.getListenerList ();\r
-var e = null;\r
-if (this.uiTreeExpansionListener != null) {\r
-e =  new javax.swing.event.TreeExpansionEvent (this, path);\r
-this.uiTreeExpansionListener.treeExpanded (e);\r
-}for (var i = listeners.length - 2; i >= 0; i -= 2) {\r
-if (listeners[i] === javax.swing.event.TreeExpansionListener && listeners[i + 1] !== this.uiTreeExpansionListener) {\r
-if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);\r
-(listeners[i + 1]).treeExpanded (e);\r
-}}\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "fireTreeCollapsed", \r
-function (path) {\r
-var listeners = this.listenerList.getListenerList ();\r
-var e = null;\r
-if (this.uiTreeExpansionListener != null) {\r
-e =  new javax.swing.event.TreeExpansionEvent (this, path);\r
-this.uiTreeExpansionListener.treeCollapsed (e);\r
-}for (var i = listeners.length - 2; i >= 0; i -= 2) {\r
-if (listeners[i] === javax.swing.event.TreeExpansionListener && listeners[i + 1] !== this.uiTreeExpansionListener) {\r
-if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);\r
-(listeners[i + 1]).treeCollapsed (e);\r
-}}\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "fireTreeWillExpand", \r
-function (path) {\r
-var listeners = this.listenerList.getListenerList ();\r
-var e = null;\r
-for (var i = listeners.length - 2; i >= 0; i -= 2) {\r
-if (listeners[i] === javax.swing.event.TreeWillExpandListener) {\r
-if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);\r
-(listeners[i + 1]).treeWillExpand (e);\r
-}}\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "fireTreeWillCollapse", \r
-function (path) {\r
-var listeners = this.listenerList.getListenerList ();\r
-var e = null;\r
-for (var i = listeners.length - 2; i >= 0; i -= 2) {\r
-if (listeners[i] === javax.swing.event.TreeWillExpandListener) {\r
-if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);\r
-(listeners[i + 1]).treeWillCollapse (e);\r
-}}\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "addTreeSelectionListener", \r
-function (tsl) {\r
-this.listenerList.add (javax.swing.event.TreeSelectionListener, tsl);\r
-if (this.listenerList.getListenerCount (javax.swing.event.TreeSelectionListener) != 0 && this.selectionRedirector == null) {\r
-this.selectionRedirector = Clazz.innerTypeInstance (javax.swing.JTree.TreeSelectionRedirector, this, null);\r
-this.selectionModel.addTreeSelectionListener (this.selectionRedirector);\r
-}}, "javax.swing.event.TreeSelectionListener");\r
-Clazz.defineMethod (c$, "removeTreeSelectionListener", \r
-function (tsl) {\r
-this.listenerList.remove (javax.swing.event.TreeSelectionListener, tsl);\r
-if (this.listenerList.getListenerCount (javax.swing.event.TreeSelectionListener) == 0 && this.selectionRedirector != null) {\r
-this.selectionModel.removeTreeSelectionListener (this.selectionRedirector);\r
-this.selectionRedirector = null;\r
-}}, "javax.swing.event.TreeSelectionListener");\r
-Clazz.defineMethod (c$, "getTreeSelectionListeners", \r
-function () {\r
-return this.listenerList.getListeners (javax.swing.event.TreeSelectionListener);\r
-});\r
-Clazz.defineMethod (c$, "fireValueChanged", \r
-function (e) {\r
-var listeners = this.listenerList.getListenerList ();\r
-for (var i = listeners.length - 2; i >= 0; i -= 2) {\r
-if (listeners[i] === javax.swing.event.TreeSelectionListener) {\r
-(listeners[i + 1]).valueChanged (e);\r
-}}\r
-}, "javax.swing.event.TreeSelectionEvent");\r
-Clazz.defineMethod (c$, "treeDidChange", \r
-function () {\r
-this.revalidate ();\r
-this.repaint ();\r
-});\r
-Clazz.defineMethod (c$, "setVisibleRowCount", \r
-function (newCount) {\r
-var oldCount = this.visibleRowCount;\r
-this.visibleRowCount = newCount;\r
-this.firePropertyChangeInt ("visibleRowCount", oldCount, this.visibleRowCount);\r
-this.invalidate ();\r
-}, "~N");\r
-Clazz.defineMethod (c$, "getVisibleRowCount", \r
-function () {\r
-return this.visibleRowCount;\r
-});\r
-Clazz.defineMethod (c$, "expandRoot", \r
- function () {\r
-var model = this.getModel ();\r
-if (model != null && model.getRoot () != null) {\r
-this.expandPath ( new javax.swing.tree.TreePath (model.getRoot ()));\r
-}});\r
-Clazz.defineMethod (c$, "getNextMatch", \r
-function (prefix, startingRow, bias) {\r
-var max = this.getRowCount ();\r
-if (prefix == null) {\r
-throw  new IllegalArgumentException ();\r
-}if (startingRow < 0 || startingRow >= max) {\r
-throw  new IllegalArgumentException ();\r
-}prefix = prefix.toUpperCase ();\r
-var increment = (bias === javax.swing.text.Position.Bias.Forward) ? 1 : -1;\r
-var row = startingRow;\r
-do {\r
-var path = this.getPathForRow (row);\r
-var text = this.convertValueToText (path.getLastPathComponent (), this.isRowSelected (row), this.isExpanded (row), true, row, false);\r
-if (text.toUpperCase ().startsWith (prefix)) {\r
-return path;\r
-}row = (row + increment + max) % max;\r
-} while (row != startingRow);\r
-return null;\r
-}, "~S,~N,javax.swing.text.Position.Bias");\r
-Clazz.overrideMethod (c$, "getPreferredScrollableViewportSize", \r
-function () {\r
-var width = this.getPreferredSize ().width;\r
-var visRows = this.getVisibleRowCount ();\r
-var height = -1;\r
-if (this.isFixedRowHeight ()) height = visRows * this.getRowHeight ();\r
- else {\r
-var ui = this.getUI ();\r
-if (ui != null && visRows > 0) {\r
-var rc = ui.getRowCount (this);\r
-if (rc >= visRows) {\r
-var bounds = this.getRowBounds (visRows - 1);\r
-if (bounds != null) {\r
-height = bounds.y + bounds.height;\r
-}} else if (rc > 0) {\r
-var bounds = this.getRowBounds (0);\r
-if (bounds != null) {\r
-height = bounds.height * visRows;\r
-}}}if (height == -1) {\r
-height = 16 * visRows;\r
-}}return  new java.awt.Dimension (width, height);\r
-});\r
-Clazz.overrideMethod (c$, "getScrollableUnitIncrement", \r
-function (visibleRect, orientation, direction) {\r
-if (orientation == 1) {\r
-var rowBounds;\r
-var firstIndex = this.getClosestRowForLocation (0, visibleRect.y);\r
-if (firstIndex != -1) {\r
-rowBounds = this.getRowBounds (firstIndex);\r
-if (rowBounds.y != visibleRect.y) {\r
-if (direction < 0) {\r
-return Math.max (0, (visibleRect.y - rowBounds.y));\r
-}return (rowBounds.y + rowBounds.height - visibleRect.y);\r
-}if (direction < 0) {\r
-if (firstIndex != 0) {\r
-rowBounds = this.getRowBounds (firstIndex - 1);\r
-return rowBounds.height;\r
-}} else {\r
-return rowBounds.height;\r
-}}return 0;\r
-}return 4;\r
-}, "java.awt.Rectangle,~N,~N");\r
-Clazz.overrideMethod (c$, "getScrollableBlockIncrement", \r
-function (visibleRect, orientation, direction) {\r
-return (orientation == 1) ? visibleRect.height : visibleRect.width;\r
-}, "java.awt.Rectangle,~N,~N");\r
-Clazz.overrideMethod (c$, "getScrollableTracksViewportWidth", \r
-function () {\r
-if (Clazz.instanceOf (this.getParent (), javax.swing.JViewport)) {\r
-return ((this.getParent ()).getWidth () > this.getPreferredSize ().width);\r
-}return false;\r
-});\r
-Clazz.overrideMethod (c$, "getScrollableTracksViewportHeight", \r
-function () {\r
-if (Clazz.instanceOf (this.getParent (), javax.swing.JViewport)) {\r
-return ((this.getParent ()).getHeight () > this.getPreferredSize ().height);\r
-}return false;\r
-});\r
-Clazz.defineMethod (c$, "setExpandedState", \r
-function (path, state) {\r
-if (path != null) {\r
-var stack;\r
-var parentPath = path.getParentPath ();\r
-if (this.expandedStack.size () == 0) {\r
-stack =  new java.util.Stack ();\r
-} else {\r
-stack = this.expandedStack.pop ();\r
-}try {\r
-while (parentPath != null) {\r
-if (this.isExpanded (parentPath)) {\r
-parentPath = null;\r
-} else {\r
-stack.push (parentPath);\r
-parentPath = parentPath.getParentPath ();\r
-}}\r
-for (var counter = stack.size () - 1; counter >= 0; counter--) {\r
-parentPath = stack.pop ();\r
-if (!this.isExpanded (parentPath)) {\r
-try {\r
-this.fireTreeWillExpand (parentPath);\r
-} catch (eve) {\r
-if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {\r
-return;\r
-} else {\r
-throw eve;\r
-}\r
-}\r
-this.expandedState.put (parentPath, Boolean.TRUE);\r
-this.fireTreeExpanded (parentPath);\r
-}}\r
-} finally {\r
-if (this.expandedStack.size () < javax.swing.JTree.TEMP_STACK_SIZE) {\r
-stack.removeAllElements ();\r
-this.expandedStack.push (stack);\r
-}}\r
-if (!state) {\r
-var cValue = this.expandedState.get (path);\r
-if (cValue != null && (cValue).booleanValue ()) {\r
-try {\r
-this.fireTreeWillCollapse (path);\r
-} catch (eve) {\r
-if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {\r
-return;\r
-} else {\r
-throw eve;\r
-}\r
-}\r
-this.expandedState.put (path, Boolean.FALSE);\r
-this.fireTreeCollapsed (path);\r
-if (this.removeDescendantSelectedPaths (path, false) && !this.isPathSelected (path)) {\r
-this.addSelectionPath (path);\r
-}}} else {\r
-var cValue = this.expandedState.get (path);\r
-if (cValue == null || !(cValue).booleanValue ()) {\r
-try {\r
-this.fireTreeWillExpand (path);\r
-} catch (eve) {\r
-if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {\r
-return;\r
-} else {\r
-throw eve;\r
-}\r
-}\r
-this.expandedState.put (path, Boolean.TRUE);\r
-this.fireTreeExpanded (path);\r
-}}}}, "javax.swing.tree.TreePath,~B");\r
-Clazz.defineMethod (c$, "getDescendantToggledPaths", \r
-function (parent) {\r
-if (parent == null) return null;\r
-var descendants =  new java.util.Vector ();\r
-var nodes = this.expandedState.keys ();\r
-var path;\r
-while (nodes.hasMoreElements ()) {\r
-path = nodes.nextElement ();\r
-if (parent.isDescendant (path)) descendants.addElement (path);\r
-}\r
-return descendants.elements ();\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "removeDescendantToggledPaths", \r
-function (toRemove) {\r
-if (toRemove != null) {\r
-while (toRemove.hasMoreElements ()) {\r
-var descendants = this.getDescendantToggledPaths (toRemove.nextElement ());\r
-if (descendants != null) {\r
-while (descendants.hasMoreElements ()) {\r
-this.expandedState.remove (descendants.nextElement ());\r
-}\r
-}}\r
-}}, "java.util.Enumeration");\r
-Clazz.defineMethod (c$, "clearToggledPaths", \r
-function () {\r
-this.expandedState.clear ();\r
-});\r
-Clazz.defineMethod (c$, "createTreeModelListener", \r
-function () {\r
-return Clazz.innerTypeInstance (javax.swing.JTree.TreeModelHandler, this, null);\r
-});\r
-Clazz.defineMethod (c$, "removeDescendantSelectedPaths", \r
-function (path, includePath) {\r
-var toRemove = this.getDescendantSelectedPaths (path, includePath);\r
-if (toRemove != null) {\r
-this.getSelectionModel ().removeSelectionPaths (toRemove);\r
-return true;\r
-}return false;\r
-}, "javax.swing.tree.TreePath,~B");\r
-Clazz.defineMethod (c$, "getDescendantSelectedPaths", \r
- function (path, includePath) {\r
-var sm = this.getSelectionModel ();\r
-var selPaths = (sm != null) ? sm.getSelectionPaths () : null;\r
-if (selPaths != null) {\r
-var shouldRemove = false;\r
-for (var counter = selPaths.length - 1; counter >= 0; counter--) {\r
-if (selPaths[counter] != null && path.isDescendant (selPaths[counter]) && (!path.equals (selPaths[counter]) || includePath)) shouldRemove = true;\r
- else selPaths[counter] = null;\r
-}\r
-if (!shouldRemove) {\r
-selPaths = null;\r
-}return selPaths;\r
-}return null;\r
-}, "javax.swing.tree.TreePath,~B");\r
-Clazz.defineMethod (c$, "removeDescendantSelectedPaths", \r
-function (e) {\r
-var pPath = e.getTreePath ();\r
-var oldChildren = e.getChildren ();\r
-var sm = this.getSelectionModel ();\r
-if (sm != null && pPath != null && oldChildren != null && oldChildren.length > 0) {\r
-for (var counter = oldChildren.length - 1; counter >= 0; counter--) {\r
-this.removeDescendantSelectedPaths (pPath.pathByAddingChild (oldChildren[counter]), true);\r
-}\r
-}}, "javax.swing.event.TreeModelEvent");\r
-Clazz.defineMethod (c$, "setUIProperty", \r
-function (propertyName, value) {\r
-if (propertyName === "rowHeight") {\r
-if (!this.rowHeightSet) {\r
-this.setRowHeight ((value).intValue ());\r
-this.rowHeightSet = false;\r
-}} else if (propertyName === "scrollsOnExpand") {\r
-if (!this.scrollsOnExpandSet) {\r
-this.setScrollsOnExpand ((value).booleanValue ());\r
-this.scrollsOnExpandSet = false;\r
-}} else if (propertyName === "showsRootHandles") {\r
-if (!this.showsRootHandlesSet) {\r
-this.setShowsRootHandles ((value).booleanValue ());\r
-this.showsRootHandlesSet = false;\r
-}} else {\r
-Clazz.superCall (this, javax.swing.JTree, "setUIProperty", [propertyName, value]);\r
-}}, "~S,~O");\r
-Clazz.defineMethod (c$, "paramString", \r
-function () {\r
-var rootVisibleString = (this.rootVisible ? "true" : "false");\r
-var showsRootHandlesString = (this.showsRootHandles ? "true" : "false");\r
-var editableString = (this.editable ? "true" : "false");\r
-var largeModelString = (this.largeModel ? "true" : "false");\r
-var invokesStopCellEditingString = (this.invokesStopCellEditing ? "true" : "false");\r
-var scrollsOnExpandString = (this.scrollsOnExpand ? "true" : "false");\r
-return Clazz.superCall (this, javax.swing.JTree, "paramString", []) + ",editable=" + editableString + ",invokesStopCellEditing=" + invokesStopCellEditingString + ",largeModel=" + largeModelString + ",rootVisible=" + rootVisibleString + ",rowHeight=" + this.rowHeight + ",scrollsOnExpand=" + scrollsOnExpandString + ",showsRootHandles=" + showsRootHandlesString + ",toggleClickCount=" + this.toggleClickCount + ",visibleRowCount=" + this.visibleRowCount;\r
-});\r
-c$.$JTree$TreeSelectionRedirector$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.JTree, "TreeSelectionRedirector", null, javax.swing.event.TreeSelectionListener);\r
-Clazz.overrideMethod (c$, "valueChanged", \r
-function (a) {\r
-var b;\r
-b = a.cloneWithSource (this.b$["javax.swing.JTree"]);\r
-this.b$["javax.swing.JTree"].fireValueChanged (b);\r
-}, "javax.swing.event.TreeSelectionEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JTree$TreeModelHandler$ = function () {\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.JTree, "TreeModelHandler", null, javax.swing.event.TreeModelListener);\r
-Clazz.overrideMethod (c$, "treeNodesChanged", \r
-function (a) {\r
-}, "javax.swing.event.TreeModelEvent");\r
-Clazz.overrideMethod (c$, "treeNodesInserted", \r
-function (a) {\r
-}, "javax.swing.event.TreeModelEvent");\r
-Clazz.overrideMethod (c$, "treeStructureChanged", \r
-function (a) {\r
-if (a == null) return;\r
-var b = a.getTreePath ();\r
-if (b == null) return;\r
-if (b.getPathCount () == 1) {\r
-this.b$["javax.swing.JTree"].clearToggledPaths ();\r
-if (this.b$["javax.swing.JTree"].treeModel.getRoot () != null && !this.b$["javax.swing.JTree"].treeModel.isLeaf (this.b$["javax.swing.JTree"].treeModel.getRoot ())) {\r
-this.b$["javax.swing.JTree"].expandedState.put (b, Boolean.TRUE);\r
-}} else if (this.b$["javax.swing.JTree"].expandedState.get (b) != null) {\r
-var c =  new java.util.Vector (1);\r
-var d = this.b$["javax.swing.JTree"].isExpanded (b);\r
-c.addElement (b);\r
-this.b$["javax.swing.JTree"].removeDescendantToggledPaths (c.elements ());\r
-if (d) {\r
-var e = this.b$["javax.swing.JTree"].getModel ();\r
-if (e == null || e.isLeaf (b.getLastPathComponent ())) this.b$["javax.swing.JTree"].collapsePath (b);\r
- else this.b$["javax.swing.JTree"].expandedState.put (b, Boolean.TRUE);\r
-}}this.b$["javax.swing.JTree"].removeDescendantSelectedPaths (b, false);\r
-}, "javax.swing.event.TreeModelEvent");\r
-Clazz.overrideMethod (c$, "treeNodesRemoved", \r
-function (a) {\r
-if (a == null) return;\r
-var b = a.getTreePath ();\r
-var c = a.getChildren ();\r
-if (c == null) return;\r
-var d;\r
-var e =  new java.util.Vector (Math.max (1, c.length));\r
-for (var f = c.length - 1; f >= 0; f--) {\r
-d = b.pathByAddingChild (c[f]);\r
-if (this.b$["javax.swing.JTree"].expandedState.get (d) != null) e.addElement (d);\r
-}\r
-if (e.size () > 0) this.b$["javax.swing.JTree"].removeDescendantToggledPaths (e.elements ());\r
-var g = this.b$["javax.swing.JTree"].getModel ();\r
-if (g == null || g.isLeaf (b.getLastPathComponent ())) this.b$["javax.swing.JTree"].expandedState.remove (b);\r
-this.b$["javax.swing.JTree"].removeDescendantSelectedPaths (a);\r
-}, "javax.swing.event.TreeModelEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.declareType (javax.swing.JTree, "EmptySelectionModel", javax.swing.tree.DefaultTreeSelectionModel);\r
-c$.sharedInstance = Clazz.defineMethod (c$, "sharedInstance", \r
-function () {\r
-return javax.swing.JTree.EmptySelectionModel.$sharedInstance;\r
-});\r
-Clazz.overrideMethod (c$, "setSelectionPaths", \r
-function (a) {\r
-}, "~A");\r
-Clazz.overrideMethod (c$, "addSelectionPaths", \r
-function (a) {\r
-}, "~A");\r
-Clazz.overrideMethod (c$, "removeSelectionPaths", \r
-function (a) {\r
-}, "~A");\r
-c$.$sharedInstance = c$.prototype.$sharedInstance =  new javax.swing.JTree.EmptySelectionModel ();\r
-c$ = Clazz.p0p ();\r
-Clazz.pu$h(self.c$);\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.hasChildren = false;\r
-this.childValue = null;\r
-this.loadedChildren = false;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.JTree, "DynamicUtilTreeNode", javax.swing.tree.DefaultMutableTreeNode);\r
-c$.createChildren = Clazz.defineMethod (c$, "createChildren", \r
-function (a, b) {\r
-if (Clazz.instanceOf (b, java.util.Vector)) {\r
-var c = b;\r
-for (var d = 0, e = c.size (); d < e; d++) a.add ( new javax.swing.JTree.DynamicUtilTreeNode (c.elementAt (d), c.elementAt (d)));\r
-\r
-} else if (Clazz.instanceOf (b, java.util.Hashtable)) {\r
-var c = b;\r
-var d = c.keys ();\r
-var e;\r
-while (d.hasMoreElements ()) {\r
-e = d.nextElement ();\r
-a.add ( new javax.swing.JTree.DynamicUtilTreeNode (e, c.get (e)));\r
-}\r
-} else if (Clazz.instanceOf (b, Array)) {\r
-var c = b;\r
-for (var d = 0, e = c.length; d < e; d++) a.add ( new javax.swing.JTree.DynamicUtilTreeNode (c[d], c[d]));\r
-\r
-}}, "javax.swing.tree.DefaultMutableTreeNode,~O");\r
-Clazz.makeConstructor (c$, \r
-function (a, b) {\r
-Clazz.superConstructor (this, javax.swing.JTree.DynamicUtilTreeNode, [a]);\r
-this.loadedChildren = false;\r
-this.childValue = b;\r
-if (b != null) {\r
-if (Clazz.instanceOf (b, java.util.Vector)) this.setAllowsChildren (true);\r
- else if (Clazz.instanceOf (b, java.util.Hashtable)) this.setAllowsChildren (true);\r
- else if (Clazz.instanceOf (b, Array)) this.setAllowsChildren (true);\r
- else this.setAllowsChildren (false);\r
-} else this.setAllowsChildren (false);\r
-}, "~O,~O");\r
-Clazz.overrideMethod (c$, "isLeaf", \r
-function () {\r
-return !this.getAllowsChildren ();\r
-});\r
-Clazz.defineMethod (c$, "getChildCount", \r
-function () {\r
-if (!this.loadedChildren) this.loadChildren ();\r
-return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "getChildCount", []);\r
-});\r
-Clazz.defineMethod (c$, "loadChildren", \r
-function () {\r
-this.loadedChildren = true;\r
-javax.swing.JTree.DynamicUtilTreeNode.createChildren (this, this.childValue);\r
-});\r
-Clazz.defineMethod (c$, "getChildAt", \r
-function (a) {\r
-if (!this.loadedChildren) this.loadChildren ();\r
-return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "getChildAt", [a]);\r
-}, "~N");\r
-Clazz.defineMethod (c$, "children", \r
-function () {\r
-if (!this.loadedChildren) this.loadChildren ();\r
-return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "children", []);\r
-});\r
-c$ = Clazz.p0p ();\r
-Clazz.defineStatics (c$,\r
-"$uiClassID", "TreeUI",\r
-"TEMP_STACK_SIZE", 11,\r
-"CELL_RENDERER_PROPERTY", "cellRenderer",\r
-"TREE_MODEL_PROPERTY", "model",\r
-"ROOT_VISIBLE_PROPERTY", "rootVisible",\r
-"SHOWS_ROOT_HANDLES_PROPERTY", "showsRootHandles",\r
-"ROW_HEIGHT_PROPERTY", "rowHeight",\r
-"CELL_EDITOR_PROPERTY", "cellEditor",\r
-"EDITABLE_PROPERTY", "editable",\r
-"LARGE_MODEL_PROPERTY", "largeModel",\r
-"SELECTION_MODEL_PROPERTY", "selectionModel",\r
-"VISIBLE_ROW_COUNT_PROPERTY", "visibleRowCount",\r
-"INVOKES_STOP_CELL_EDITING_PROPERTY", "invokesStopCellEditing",\r
-"SCROLLS_ON_EXPAND_PROPERTY", "scrollsOnExpand",\r
-"TOGGLE_CLICK_COUNT_PROPERTY", "toggleClickCount",\r
-"LEAD_SELECTION_PATH_PROPERTY", "leadSelectionPath",\r
-"ANCHOR_SELECTION_PATH_PROPERTY", "anchorSelectionPath",\r
-"EXPANDS_SELECTED_PATHS_PROPERTY", "expandsSelectedPaths");\r
-});\r
+Clazz.declarePackage ("javax.swing");
+Clazz.load (["javax.swing.JComponent", "$.Scrollable", "javax.swing.event.TreeModelListener", "$.TreeSelectionListener", "javax.swing.tree.DefaultMutableTreeNode", "$.DefaultTreeSelectionModel"], "javax.swing.JTree", ["java.lang.Boolean", "$.IllegalArgumentException", "java.util.Collections", "$.Hashtable", "$.Stack", "$.Vector", "java.awt.Dimension", "java.awt.event.MouseEvent", "javax.swing.JViewport", "$.SwingUtilities", "$.UIManager", "javax.swing.event.TreeExpansionEvent", "$.TreeExpansionListener", "$.TreeWillExpandListener", "javax.swing.text.Position", "javax.swing.tree.DefaultTreeModel", "$.TreePath"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.treeModel = null;
+this.selectionModel = null;
+this.rootVisible = false;
+this.cellRenderer = null;
+this.rowHeight = 0;
+this.rowHeightSet = false;
+this.expandedState = null;
+this.showsRootHandles = false;
+this.showsRootHandlesSet = false;
+this.selectionRedirector = null;
+this.cellEditor = null;
+this.editable = false;
+this.largeModel = false;
+this.visibleRowCount = 0;
+this.invokesStopCellEditing = false;
+this.scrollsOnExpand = false;
+this.scrollsOnExpandSet = false;
+this.toggleClickCount = 0;
+this.treeModelListener = null;
+this.expandedStack = null;
+this.leadPath = null;
+this.anchorPath = null;
+this.expandsSelectedPaths = false;
+this.settingUI = false;
+this.dragEnabled = false;
+this.$expandRow = -1;
+this.uiTreeExpansionListener = null;
+if (!Clazz.isClassDefined ("javax.swing.JTree.TreeSelectionRedirector")) {
+javax.swing.JTree.$JTree$TreeSelectionRedirector$ ();
+}
+if (!Clazz.isClassDefined ("javax.swing.JTree.TreeModelHandler")) {
+javax.swing.JTree.$JTree$TreeModelHandler$ ();
+}
+Clazz.instantialize (this, arguments);
+}, javax.swing, "JTree", javax.swing.JComponent, javax.swing.Scrollable);
+c$.getDefaultTreeModel = Clazz.defineMethod (c$, "getDefaultTreeModel", 
+function () {
+var root =  new javax.swing.tree.DefaultMutableTreeNode ("JTree");
+var parent;
+parent =  new javax.swing.tree.DefaultMutableTreeNode ("colors");
+root.add (parent);
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("blue"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("violet"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("red"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("yellow"));
+parent =  new javax.swing.tree.DefaultMutableTreeNode ("sports");
+root.add (parent);
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("basketball"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("soccer"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("football"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("hockey"));
+parent =  new javax.swing.tree.DefaultMutableTreeNode ("food");
+root.add (parent);
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("hot dogs"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("pizza"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("ravioli"));
+parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("bananas"));
+return  new javax.swing.tree.DefaultTreeModel (root);
+});
+c$.createTreeModel = Clazz.defineMethod (c$, "createTreeModel", 
+function (value) {
+var root;
+if ((Clazz.instanceOf (value, Array)) || (Clazz.instanceOf (value, java.util.Hashtable)) || (Clazz.instanceOf (value, java.util.Vector))) {
+root =  new javax.swing.tree.DefaultMutableTreeNode ("root");
+javax.swing.JTree.DynamicUtilTreeNode.createChildren (root, value);
+} else {
+root =  new javax.swing.JTree.DynamicUtilTreeNode ("root", value);
+}return  new javax.swing.tree.DefaultTreeModel (root, false);
+}, "~O");
+Clazz.makeConstructor (c$, 
+function () {
+this.construct (javax.swing.JTree.getDefaultTreeModel ());
+});
+Clazz.makeConstructor (c$, 
+function (value) {
+this.construct (javax.swing.JTree.createTreeModel (value));
+this.setRootVisible (false);
+this.setShowsRootHandles (true);
+this.expandRoot ();
+}, "~A");
+Clazz.makeConstructor (c$, 
+function (value) {
+this.construct (javax.swing.JTree.createTreeModel (value));
+this.setRootVisible (false);
+this.setShowsRootHandles (true);
+this.expandRoot ();
+}, "java.util.Vector");
+Clazz.makeConstructor (c$, 
+function (value) {
+this.construct (javax.swing.JTree.createTreeModel (value));
+this.setRootVisible (false);
+this.setShowsRootHandles (true);
+this.expandRoot ();
+}, "java.util.Hashtable");
+Clazz.makeConstructor (c$, 
+function (root) {
+this.construct (root, false);
+}, "javax.swing.tree.TreeNode");
+Clazz.makeConstructor (c$, 
+function (root, asksAllowsChildren) {
+this.construct ( new javax.swing.tree.DefaultTreeModel (root, asksAllowsChildren));
+}, "javax.swing.tree.TreeNode,~B");
+Clazz.makeConstructor (c$, 
+function (newModel) {
+Clazz.superConstructor (this, javax.swing.JTree);
+this.expandedStack =  new java.util.Stack ();
+this.toggleClickCount = 2;
+this.expandedState =  new java.util.Hashtable ();
+this.setLayout (null);
+this.rowHeight = 16;
+this.visibleRowCount = 20;
+this.rootVisible = true;
+this.selectionModel =  new javax.swing.tree.DefaultTreeSelectionModel ();
+this.cellRenderer = null;
+this.scrollsOnExpand = true;
+this.setOpaque (true);
+this.expandsSelectedPaths = true;
+this.updateUI ();
+this.setModel (newModel);
+}, "javax.swing.tree.TreeModel");
+Clazz.overrideMethod (c$, "getUI", 
+function () {
+return this.ui;
+});
+Clazz.defineMethod (c$, "setUI", 
+function (ui) {
+if (this.ui !== ui) {
+this.settingUI = true;
+this.uiTreeExpansionListener = null;
+try {
+Clazz.superCall (this, javax.swing.JTree, "setUI", [ui]);
+} finally {
+this.settingUI = false;
+}
+}}, "javax.swing.plaf.TreeUI");
+Clazz.overrideMethod (c$, "updateUI", 
+function () {
+this.setUI (javax.swing.UIManager.getUI (this));
+javax.swing.SwingUtilities.updateRendererOrEditorUI (this.getCellRenderer ());
+javax.swing.SwingUtilities.updateRendererOrEditorUI (this.getCellEditor ());
+});
+Clazz.overrideMethod (c$, "getUIClassID", 
+function () {
+return "TreeUI";
+});
+Clazz.defineMethod (c$, "getCellRenderer", 
+function () {
+return this.cellRenderer;
+});
+Clazz.defineMethod (c$, "setCellRenderer", 
+function (x) {
+var oldValue = this.cellRenderer;
+this.cellRenderer = x;
+this.firePropertyChangeObject ("cellRenderer", oldValue, this.cellRenderer);
+this.invalidate ();
+}, "javax.swing.tree.TreeCellRenderer");
+Clazz.defineMethod (c$, "setEditable", 
+function (flag) {
+var oldValue = this.editable;
+this.editable = flag;
+this.firePropertyChangeBool ("editable", oldValue, flag);
+}, "~B");
+Clazz.defineMethod (c$, "isEditable", 
+function () {
+return this.editable;
+});
+Clazz.defineMethod (c$, "setCellEditor", 
+function (cellEditor) {
+var oldEditor = this.cellEditor;
+this.cellEditor = cellEditor;
+this.firePropertyChangeObject ("cellEditor", oldEditor, cellEditor);
+this.invalidate ();
+}, "javax.swing.tree.TreeCellEditor");
+Clazz.defineMethod (c$, "getCellEditor", 
+function () {
+return this.cellEditor;
+});
+Clazz.defineMethod (c$, "getModel", 
+function () {
+return this.treeModel;
+});
+Clazz.defineMethod (c$, "setModel", 
+function (newModel) {
+this.clearSelection ();
+var oldModel = this.treeModel;
+if (this.treeModel != null && this.treeModelListener != null) this.treeModel.removeTreeModelListener (this.treeModelListener);
+this.treeModel = newModel;
+this.clearToggledPaths ();
+if (this.treeModel != null) {
+if (this.treeModelListener == null) this.treeModelListener = this.createTreeModelListener ();
+if (this.treeModelListener != null) this.treeModel.addTreeModelListener (this.treeModelListener);
+if (this.treeModel.getRoot () != null && !this.treeModel.isLeaf (this.treeModel.getRoot ())) {
+this.expandedState.put ( new javax.swing.tree.TreePath (this.treeModel.getRoot ()), Boolean.TRUE);
+}}this.firePropertyChangeObject ("model", oldModel, this.treeModel);
+this.invalidate ();
+}, "javax.swing.tree.TreeModel");
+Clazz.defineMethod (c$, "isRootVisible", 
+function () {
+return this.rootVisible;
+});
+Clazz.defineMethod (c$, "setRootVisible", 
+function (rootVisible) {
+var oldValue = this.rootVisible;
+this.rootVisible = rootVisible;
+this.firePropertyChangeBool ("rootVisible", oldValue, this.rootVisible);
+}, "~B");
+Clazz.defineMethod (c$, "setShowsRootHandles", 
+function (newValue) {
+var oldValue = this.showsRootHandles;
+var model = this.getModel ();
+this.showsRootHandles = newValue;
+this.showsRootHandlesSet = true;
+this.firePropertyChangeBool ("showsRootHandles", oldValue, this.showsRootHandles);
+this.invalidate ();
+}, "~B");
+Clazz.defineMethod (c$, "getShowsRootHandles", 
+function () {
+return this.showsRootHandles;
+});
+Clazz.defineMethod (c$, "setRowHeight", 
+function (rowHeight) {
+var oldValue = this.rowHeight;
+this.rowHeight = rowHeight;
+this.rowHeightSet = true;
+this.firePropertyChangeInt ("rowHeight", oldValue, this.rowHeight);
+this.invalidate ();
+}, "~N");
+Clazz.defineMethod (c$, "getRowHeight", 
+function () {
+return this.rowHeight;
+});
+Clazz.defineMethod (c$, "isFixedRowHeight", 
+function () {
+return (this.rowHeight > 0);
+});
+Clazz.defineMethod (c$, "setLargeModel", 
+function (newValue) {
+var oldValue = this.largeModel;
+this.largeModel = newValue;
+this.firePropertyChangeBool ("largeModel", oldValue, newValue);
+}, "~B");
+Clazz.defineMethod (c$, "isLargeModel", 
+function () {
+return this.largeModel;
+});
+Clazz.defineMethod (c$, "setInvokesStopCellEditing", 
+function (newValue) {
+var oldValue = this.invokesStopCellEditing;
+this.invokesStopCellEditing = newValue;
+this.firePropertyChangeBool ("invokesStopCellEditing", oldValue, newValue);
+}, "~B");
+Clazz.defineMethod (c$, "getInvokesStopCellEditing", 
+function () {
+return this.invokesStopCellEditing;
+});
+Clazz.defineMethod (c$, "setScrollsOnExpand", 
+function (newValue) {
+var oldValue = this.scrollsOnExpand;
+this.scrollsOnExpand = newValue;
+this.scrollsOnExpandSet = true;
+this.firePropertyChangeBool ("scrollsOnExpand", oldValue, newValue);
+}, "~B");
+Clazz.defineMethod (c$, "getScrollsOnExpand", 
+function () {
+return this.scrollsOnExpand;
+});
+Clazz.defineMethod (c$, "setToggleClickCount", 
+function (clickCount) {
+var oldCount = this.toggleClickCount;
+this.toggleClickCount = clickCount;
+this.firePropertyChangeInt ("toggleClickCount", oldCount, clickCount);
+}, "~N");
+Clazz.defineMethod (c$, "getToggleClickCount", 
+function () {
+return this.toggleClickCount;
+});
+Clazz.defineMethod (c$, "setExpandsSelectedPaths", 
+function (newValue) {
+var oldValue = this.expandsSelectedPaths;
+this.expandsSelectedPaths = newValue;
+this.firePropertyChangeBool ("expandsSelectedPaths", oldValue, newValue);
+}, "~B");
+Clazz.defineMethod (c$, "getExpandsSelectedPaths", 
+function () {
+return this.expandsSelectedPaths;
+});
+Clazz.defineMethod (c$, "setDragEnabled", 
+function (b) {
+this.dragEnabled = b;
+}, "~B");
+Clazz.defineMethod (c$, "getDragEnabled", 
+function () {
+return this.dragEnabled;
+});
+Clazz.defineMethod (c$, "isPathEditable", 
+function (path) {
+return this.isEditable ();
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "getToolTipText", 
+function (event) {
+var tip = null;
+if (event != null) {
+var p = event.getPoint ();
+var selRow = this.getRowForLocation (p.x, p.y);
+var r = this.getCellRenderer ();
+if (selRow != -1 && r != null) {
+var path = this.getPathForRow (selRow);
+var lastPath = path.getLastPathComponent ();
+var rComponent = r.getTreeCellRendererComponent (this, lastPath, this.isRowSelected (selRow), this.isExpanded (selRow), this.getModel ().isLeaf (lastPath), selRow, true);
+if (Clazz.instanceOf (rComponent, javax.swing.JComponent)) {
+var newEvent;
+var pathBounds = this.getPathBounds (path);
+p.translate (-pathBounds.x, -pathBounds.y);
+newEvent =  new java.awt.event.MouseEvent (rComponent, event.getID (), event.getWhen (), event.getModifiers (), p.x, p.y, event.getXOnScreen (), event.getYOnScreen (), event.getClickCount (), event.isPopupTrigger (), 0);
+tip = (rComponent).getToolTipText (newEvent);
+}}}if (tip == null) {
+tip = this.getToolTipText ();
+}return tip;
+}, "java.awt.event.MouseEvent");
+Clazz.defineMethod (c$, "convertValueToText", 
+function (value, selected, expanded, leaf, row, hasFocus) {
+if (value != null) {
+var sValue = value.toString ();
+if (sValue != null) {
+return sValue;
+}}return "";
+}, "~O,~B,~B,~B,~N,~B");
+Clazz.defineMethod (c$, "getRowCount", 
+function () {
+var tree = this.getUI ();
+if (tree != null) return tree.getRowCount (this);
+return 0;
+});
+Clazz.defineMethod (c$, "setSelectionPath", 
+function (path) {
+this.getSelectionModel ().setSelectionPath (path);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "setSelectionPaths", 
+function (paths) {
+this.getSelectionModel ().setSelectionPaths (paths);
+}, "~A");
+Clazz.defineMethod (c$, "setLeadSelectionPath", 
+function (newPath) {
+var oldValue = this.leadPath;
+this.leadPath = newPath;
+this.firePropertyChangeObject ("leadSelectionPath", oldValue, newPath);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "setAnchorSelectionPath", 
+function (newPath) {
+var oldValue = this.anchorPath;
+this.anchorPath = newPath;
+this.firePropertyChangeObject ("anchorSelectionPath", oldValue, newPath);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "setSelectionRow", 
+function (row) {
+var rows =  Clazz.newIntArray (-1, [row]);
+this.setSelectionRows (rows);
+}, "~N");
+Clazz.defineMethod (c$, "setSelectionRows", 
+function (rows) {
+var ui = this.getUI ();
+if (ui != null && rows != null) {
+var numRows = rows.length;
+var paths =  new Array (numRows);
+for (var counter = 0; counter < numRows; counter++) {
+paths[counter] = ui.getPathForRow (this, rows[counter]);
+}
+this.setSelectionPaths (paths);
+}}, "~A");
+Clazz.defineMethod (c$, "addSelectionPath", 
+function (path) {
+this.getSelectionModel ().addSelectionPath (path);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "addSelectionPaths", 
+function (paths) {
+this.getSelectionModel ().addSelectionPaths (paths);
+}, "~A");
+Clazz.defineMethod (c$, "addSelectionRow", 
+function (row) {
+var rows =  Clazz.newIntArray (-1, [row]);
+this.addSelectionRows (rows);
+}, "~N");
+Clazz.defineMethod (c$, "addSelectionRows", 
+function (rows) {
+var ui = this.getUI ();
+if (ui != null && rows != null) {
+var numRows = rows.length;
+var paths =  new Array (numRows);
+for (var counter = 0; counter < numRows; counter++) paths[counter] = ui.getPathForRow (this, rows[counter]);
+
+this.addSelectionPaths (paths);
+}}, "~A");
+Clazz.defineMethod (c$, "getLastSelectedPathComponent", 
+function () {
+var selPath = this.getSelectionModel ().getSelectionPath ();
+if (selPath != null) return selPath.getLastPathComponent ();
+return null;
+});
+Clazz.defineMethod (c$, "getLeadSelectionPath", 
+function () {
+return this.leadPath;
+});
+Clazz.defineMethod (c$, "getAnchorSelectionPath", 
+function () {
+return this.anchorPath;
+});
+Clazz.defineMethod (c$, "getSelectionPath", 
+function () {
+return this.getSelectionModel ().getSelectionPath ();
+});
+Clazz.defineMethod (c$, "getSelectionPaths", 
+function () {
+return this.getSelectionModel ().getSelectionPaths ();
+});
+Clazz.defineMethod (c$, "getSelectionRows", 
+function () {
+return this.getSelectionModel ().getSelectionRows ();
+});
+Clazz.defineMethod (c$, "getSelectionCount", 
+function () {
+return this.selectionModel.getSelectionCount ();
+});
+Clazz.defineMethod (c$, "getMinSelectionRow", 
+function () {
+return this.getSelectionModel ().getMinSelectionRow ();
+});
+Clazz.defineMethod (c$, "getMaxSelectionRow", 
+function () {
+return this.getSelectionModel ().getMaxSelectionRow ();
+});
+Clazz.defineMethod (c$, "getLeadSelectionRow", 
+function () {
+var leadPath = this.getLeadSelectionPath ();
+if (leadPath != null) {
+return this.getRowForPath (leadPath);
+}return -1;
+});
+Clazz.defineMethod (c$, "isPathSelected", 
+function (path) {
+return this.getSelectionModel ().isPathSelected (path);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "isRowSelected", 
+function (row) {
+return this.getSelectionModel ().isRowSelected (row);
+}, "~N");
+Clazz.defineMethod (c$, "getExpandedDescendants", 
+function (parent) {
+if (!this.isExpanded (parent)) return null;
+var toggledPaths = this.expandedState.keys ();
+var elements = null;
+var path;
+var value;
+if (toggledPaths != null) {
+while (toggledPaths.hasMoreElements ()) {
+path = toggledPaths.nextElement ();
+value = this.expandedState.get (path);
+if (path !== parent && value != null && (value).booleanValue () && parent.isDescendant (path) && this.isVisible (path)) {
+if (elements == null) {
+elements =  new java.util.Vector ();
+}elements.addElement (path);
+}}
+}if (elements == null) {
+var empty = java.util.Collections.emptySet ();
+return java.util.Collections.enumeration (empty);
+}return elements.elements ();
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "hasBeenExpanded", 
+function (path) {
+return (path != null && this.expandedState.get (path) != null);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "isExpanded", 
+function (path) {
+if (path == null) return false;
+var value = this.expandedState.get (path);
+if (value == null || !(value).booleanValue ()) return false;
+var parentPath = path.getParentPath ();
+if (parentPath != null) return this.isExpanded (parentPath);
+return true;
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "isExpanded", 
+function (row) {
+var tree = this.getUI ();
+if (tree != null) {
+var path = tree.getPathForRow (this, row);
+if (path != null) {
+var value = this.expandedState.get (path);
+return (value != null && value.booleanValue ());
+}}return false;
+}, "~N");
+Clazz.defineMethod (c$, "isCollapsed", 
+function (path) {
+return !this.isExpanded (path);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "isCollapsed", 
+function (row) {
+return !this.isExpanded (row);
+}, "~N");
+Clazz.defineMethod (c$, "makeVisible", 
+function (path) {
+if (path != null) {
+var parentPath = path.getParentPath ();
+if (parentPath != null) {
+this.expandPath (parentPath);
+}}}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "isVisible", 
+function (path) {
+if (path != null) {
+var parentPath = path.getParentPath ();
+if (parentPath != null) return this.isExpanded (parentPath);
+return true;
+}return false;
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "getPathBounds", 
+function (path) {
+var tree = this.getUI ();
+if (tree != null) return tree.getPathBounds (this, path);
+return null;
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "getRowBounds", 
+function (row) {
+return this.getPathBounds (this.getPathForRow (row));
+}, "~N");
+Clazz.defineMethod (c$, "scrollPathToVisible", 
+function (path) {
+if (path != null) {
+this.makeVisible (path);
+var bounds = this.getPathBounds (path);
+if (bounds != null) {
+this.scrollRectToVisible (bounds);
+}}}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "scrollRowToVisible", 
+function (row) {
+this.scrollPathToVisible (this.getPathForRow (row));
+}, "~N");
+Clazz.defineMethod (c$, "getPathForRow", 
+function (row) {
+var tree = this.getUI ();
+if (tree != null) return tree.getPathForRow (this, row);
+return null;
+}, "~N");
+Clazz.defineMethod (c$, "getRowForPath", 
+function (path) {
+var tree = this.getUI ();
+if (tree != null) return tree.getRowForPath (this, path);
+return -1;
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "expandPath", 
+function (path) {
+var model = this.getModel ();
+if (path != null && model != null && !model.isLeaf (path.getLastPathComponent ())) {
+this.setExpandedState (path, true);
+}}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "expandRow", 
+function (row) {
+this.expandPath (this.getPathForRow (row));
+}, "~N");
+Clazz.defineMethod (c$, "collapsePath", 
+function (path) {
+this.setExpandedState (path, false);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "collapseRow", 
+function (row) {
+this.collapsePath (this.getPathForRow (row));
+}, "~N");
+Clazz.defineMethod (c$, "getPathForLocation", 
+function (x, y) {
+var closestPath = this.getClosestPathForLocation (x, y);
+if (closestPath != null) {
+var pathBounds = this.getPathBounds (closestPath);
+if (pathBounds != null && x >= pathBounds.x && x < (pathBounds.x + pathBounds.width) && y >= pathBounds.y && y < (pathBounds.y + pathBounds.height)) return closestPath;
+}return null;
+}, "~N,~N");
+Clazz.defineMethod (c$, "getRowForLocation", 
+function (x, y) {
+return this.getRowForPath (this.getPathForLocation (x, y));
+}, "~N,~N");
+Clazz.defineMethod (c$, "getClosestPathForLocation", 
+function (x, y) {
+var tree = this.getUI ();
+if (tree != null) return tree.getClosestPathForLocation (this, x, y);
+return null;
+}, "~N,~N");
+Clazz.defineMethod (c$, "getClosestRowForLocation", 
+function (x, y) {
+return this.getRowForPath (this.getClosestPathForLocation (x, y));
+}, "~N,~N");
+Clazz.defineMethod (c$, "isEditing", 
+function () {
+var tree = this.getUI ();
+if (tree != null) return tree.isEditing (this);
+return false;
+});
+Clazz.defineMethod (c$, "stopEditing", 
+function () {
+var tree = this.getUI ();
+if (tree != null) return tree.stopEditing (this);
+return false;
+});
+Clazz.defineMethod (c$, "cancelEditing", 
+function () {
+var tree = this.getUI ();
+if (tree != null) tree.cancelEditing (this);
+});
+Clazz.defineMethod (c$, "startEditingAtPath", 
+function (path) {
+var tree = this.getUI ();
+if (tree != null) tree.startEditingAtPath (this, path);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "getEditingPath", 
+function () {
+var tree = this.getUI ();
+if (tree != null) return tree.getEditingPath (this);
+return null;
+});
+Clazz.defineMethod (c$, "setSelectionModel", 
+function (selectionModel) {
+if (selectionModel == null) selectionModel = javax.swing.JTree.EmptySelectionModel.sharedInstance ();
+var oldValue = this.selectionModel;
+if (this.selectionModel != null && this.selectionRedirector != null) {
+this.selectionModel.removeTreeSelectionListener (this.selectionRedirector);
+}this.selectionModel = selectionModel;
+if (this.selectionRedirector != null) {
+this.selectionModel.addTreeSelectionListener (this.selectionRedirector);
+}this.firePropertyChangeObject ("selectionModel", oldValue, this.selectionModel);
+}, "javax.swing.tree.TreeSelectionModel");
+Clazz.defineMethod (c$, "getSelectionModel", 
+function () {
+return this.selectionModel;
+});
+Clazz.defineMethod (c$, "getPathBetweenRows", 
+function (index0, index1) {
+var newMinIndex;
+var newMaxIndex;
+var tree = this.getUI ();
+newMinIndex = Math.min (index0, index1);
+newMaxIndex = Math.max (index0, index1);
+if (tree != null) {
+var selection =  new Array (newMaxIndex - newMinIndex + 1);
+for (var counter = newMinIndex; counter <= newMaxIndex; counter++) {
+selection[counter - newMinIndex] = tree.getPathForRow (this, counter);
+}
+return selection;
+}return null;
+}, "~N,~N");
+Clazz.defineMethod (c$, "setSelectionInterval", 
+function (index0, index1) {
+var paths = this.getPathBetweenRows (index0, index1);
+this.getSelectionModel ().setSelectionPaths (paths);
+}, "~N,~N");
+Clazz.defineMethod (c$, "addSelectionInterval", 
+function (index0, index1) {
+var paths = this.getPathBetweenRows (index0, index1);
+this.getSelectionModel ().addSelectionPaths (paths);
+}, "~N,~N");
+Clazz.defineMethod (c$, "removeSelectionInterval", 
+function (index0, index1) {
+var paths = this.getPathBetweenRows (index0, index1);
+this.getSelectionModel ().removeSelectionPaths (paths);
+}, "~N,~N");
+Clazz.defineMethod (c$, "removeSelectionPath", 
+function (path) {
+this.getSelectionModel ().removeSelectionPath (path);
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "removeSelectionPaths", 
+function (paths) {
+this.getSelectionModel ().removeSelectionPaths (paths);
+}, "~A");
+Clazz.defineMethod (c$, "removeSelectionRow", 
+function (row) {
+var rows =  Clazz.newIntArray (-1, [row]);
+this.removeSelectionRows (rows);
+}, "~N");
+Clazz.defineMethod (c$, "removeSelectionRows", 
+function (rows) {
+var ui = this.getUI ();
+if (ui != null && rows != null) {
+var numRows = rows.length;
+var paths =  new Array (numRows);
+for (var counter = 0; counter < numRows; counter++) paths[counter] = ui.getPathForRow (this, rows[counter]);
+
+this.removeSelectionPaths (paths);
+}}, "~A");
+Clazz.defineMethod (c$, "clearSelection", 
+function () {
+this.getSelectionModel ().clearSelection ();
+});
+Clazz.defineMethod (c$, "isSelectionEmpty", 
+function () {
+return this.getSelectionModel ().isSelectionEmpty ();
+});
+Clazz.defineMethod (c$, "addTreeExpansionListener", 
+function (tel) {
+if (this.settingUI) {
+this.uiTreeExpansionListener = tel;
+}this.listenerList.add (javax.swing.event.TreeExpansionListener, tel);
+}, "javax.swing.event.TreeExpansionListener");
+Clazz.defineMethod (c$, "removeTreeExpansionListener", 
+function (tel) {
+this.listenerList.remove (javax.swing.event.TreeExpansionListener, tel);
+if (this.uiTreeExpansionListener === tel) {
+this.uiTreeExpansionListener = null;
+}}, "javax.swing.event.TreeExpansionListener");
+Clazz.defineMethod (c$, "getTreeExpansionListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.TreeExpansionListener);
+});
+Clazz.defineMethod (c$, "addTreeWillExpandListener", 
+function (tel) {
+this.listenerList.add (javax.swing.event.TreeWillExpandListener, tel);
+}, "javax.swing.event.TreeWillExpandListener");
+Clazz.defineMethod (c$, "removeTreeWillExpandListener", 
+function (tel) {
+this.listenerList.remove (javax.swing.event.TreeWillExpandListener, tel);
+}, "javax.swing.event.TreeWillExpandListener");
+Clazz.defineMethod (c$, "getTreeWillExpandListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.TreeWillExpandListener);
+});
+Clazz.defineMethod (c$, "fireTreeExpanded", 
+function (path) {
+var listeners = this.listenerList.getListenerList ();
+var e = null;
+if (this.uiTreeExpansionListener != null) {
+e =  new javax.swing.event.TreeExpansionEvent (this, path);
+this.uiTreeExpansionListener.treeExpanded (e);
+}for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.TreeExpansionListener && listeners[i + 1] !== this.uiTreeExpansionListener) {
+if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);
+(listeners[i + 1]).treeExpanded (e);
+}}
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "fireTreeCollapsed", 
+function (path) {
+var listeners = this.listenerList.getListenerList ();
+var e = null;
+if (this.uiTreeExpansionListener != null) {
+e =  new javax.swing.event.TreeExpansionEvent (this, path);
+this.uiTreeExpansionListener.treeCollapsed (e);
+}for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.TreeExpansionListener && listeners[i + 1] !== this.uiTreeExpansionListener) {
+if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);
+(listeners[i + 1]).treeCollapsed (e);
+}}
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "fireTreeWillExpand", 
+function (path) {
+var listeners = this.listenerList.getListenerList ();
+var e = null;
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.TreeWillExpandListener) {
+if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);
+(listeners[i + 1]).treeWillExpand (e);
+}}
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "fireTreeWillCollapse", 
+function (path) {
+var listeners = this.listenerList.getListenerList ();
+var e = null;
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.TreeWillExpandListener) {
+if (e == null) e =  new javax.swing.event.TreeExpansionEvent (this, path);
+(listeners[i + 1]).treeWillCollapse (e);
+}}
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "addTreeSelectionListener", 
+function (tsl) {
+this.listenerList.add (javax.swing.event.TreeSelectionListener, tsl);
+if (this.listenerList.getListenerCount (javax.swing.event.TreeSelectionListener) != 0 && this.selectionRedirector == null) {
+this.selectionRedirector = Clazz.innerTypeInstance (javax.swing.JTree.TreeSelectionRedirector, this, null);
+this.selectionModel.addTreeSelectionListener (this.selectionRedirector);
+}}, "javax.swing.event.TreeSelectionListener");
+Clazz.defineMethod (c$, "removeTreeSelectionListener", 
+function (tsl) {
+this.listenerList.remove (javax.swing.event.TreeSelectionListener, tsl);
+if (this.listenerList.getListenerCount (javax.swing.event.TreeSelectionListener) == 0 && this.selectionRedirector != null) {
+this.selectionModel.removeTreeSelectionListener (this.selectionRedirector);
+this.selectionRedirector = null;
+}}, "javax.swing.event.TreeSelectionListener");
+Clazz.defineMethod (c$, "getTreeSelectionListeners", 
+function () {
+return this.listenerList.getListeners (javax.swing.event.TreeSelectionListener);
+});
+Clazz.defineMethod (c$, "fireValueChanged", 
+function (e) {
+var listeners = this.listenerList.getListenerList ();
+for (var i = listeners.length - 2; i >= 0; i -= 2) {
+if (listeners[i] === javax.swing.event.TreeSelectionListener) {
+(listeners[i + 1]).valueChanged (e);
+}}
+}, "javax.swing.event.TreeSelectionEvent");
+Clazz.defineMethod (c$, "treeDidChange", 
+function () {
+this.revalidate ();
+this.repaint ();
+});
+Clazz.defineMethod (c$, "setVisibleRowCount", 
+function (newCount) {
+var oldCount = this.visibleRowCount;
+this.visibleRowCount = newCount;
+this.firePropertyChangeInt ("visibleRowCount", oldCount, this.visibleRowCount);
+this.invalidate ();
+}, "~N");
+Clazz.defineMethod (c$, "getVisibleRowCount", 
+function () {
+return this.visibleRowCount;
+});
+Clazz.defineMethod (c$, "expandRoot", 
+ function () {
+var model = this.getModel ();
+if (model != null && model.getRoot () != null) {
+this.expandPath ( new javax.swing.tree.TreePath (model.getRoot ()));
+}});
+Clazz.defineMethod (c$, "getNextMatch", 
+function (prefix, startingRow, bias) {
+var max = this.getRowCount ();
+if (prefix == null) {
+throw  new IllegalArgumentException ();
+}if (startingRow < 0 || startingRow >= max) {
+throw  new IllegalArgumentException ();
+}prefix = prefix.toUpperCase ();
+var increment = (bias === javax.swing.text.Position.Bias.Forward) ? 1 : -1;
+var row = startingRow;
+do {
+var path = this.getPathForRow (row);
+var text = this.convertValueToText (path.getLastPathComponent (), this.isRowSelected (row), this.isExpanded (row), true, row, false);
+if (text.toUpperCase ().startsWith (prefix)) {
+return path;
+}row = (row + increment + max) % max;
+} while (row != startingRow);
+return null;
+}, "~S,~N,javax.swing.text.Position.Bias");
+Clazz.overrideMethod (c$, "getPreferredScrollableViewportSize", 
+function () {
+var width = this.getPreferredSize ().width;
+var visRows = this.getVisibleRowCount ();
+var height = -1;
+if (this.isFixedRowHeight ()) height = visRows * this.getRowHeight ();
+ else {
+var ui = this.getUI ();
+if (ui != null && visRows > 0) {
+var rc = ui.getRowCount (this);
+if (rc >= visRows) {
+var bounds = this.getRowBounds (visRows - 1);
+if (bounds != null) {
+height = bounds.y + bounds.height;
+}} else if (rc > 0) {
+var bounds = this.getRowBounds (0);
+if (bounds != null) {
+height = bounds.height * visRows;
+}}}if (height == -1) {
+height = 16 * visRows;
+}}return  new java.awt.Dimension (width, height);
+});
+Clazz.overrideMethod (c$, "getScrollableUnitIncrement", 
+function (visibleRect, orientation, direction) {
+if (orientation == 1) {
+var rowBounds;
+var firstIndex = this.getClosestRowForLocation (0, visibleRect.y);
+if (firstIndex != -1) {
+rowBounds = this.getRowBounds (firstIndex);
+if (rowBounds.y != visibleRect.y) {
+if (direction < 0) {
+return Math.max (0, (visibleRect.y - rowBounds.y));
+}return (rowBounds.y + rowBounds.height - visibleRect.y);
+}if (direction < 0) {
+if (firstIndex != 0) {
+rowBounds = this.getRowBounds (firstIndex - 1);
+return rowBounds.height;
+}} else {
+return rowBounds.height;
+}}return 0;
+}return 4;
+}, "java.awt.Rectangle,~N,~N");
+Clazz.overrideMethod (c$, "getScrollableBlockIncrement", 
+function (visibleRect, orientation, direction) {
+return (orientation == 1) ? visibleRect.height : visibleRect.width;
+}, "java.awt.Rectangle,~N,~N");
+Clazz.overrideMethod (c$, "getScrollableTracksViewportWidth", 
+function () {
+if (Clazz.instanceOf (this.getParent (), javax.swing.JViewport)) {
+return ((this.getParent ()).getWidth () > this.getPreferredSize ().width);
+}return false;
+});
+Clazz.overrideMethod (c$, "getScrollableTracksViewportHeight", 
+function () {
+if (Clazz.instanceOf (this.getParent (), javax.swing.JViewport)) {
+return ((this.getParent ()).getHeight () > this.getPreferredSize ().height);
+}return false;
+});
+Clazz.defineMethod (c$, "setExpandedState", 
+function (path, state) {
+if (path != null) {
+var stack;
+var parentPath = path.getParentPath ();
+if (this.expandedStack.size () == 0) {
+stack =  new java.util.Stack ();
+} else {
+stack = this.expandedStack.pop ();
+}try {
+while (parentPath != null) {
+if (this.isExpanded (parentPath)) {
+parentPath = null;
+} else {
+stack.push (parentPath);
+parentPath = parentPath.getParentPath ();
+}}
+for (var counter = stack.size () - 1; counter >= 0; counter--) {
+parentPath = stack.pop ();
+if (!this.isExpanded (parentPath)) {
+try {
+this.fireTreeWillExpand (parentPath);
+} catch (eve) {
+if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {
+return;
+} else {
+throw eve;
+}
+}
+this.expandedState.put (parentPath, Boolean.TRUE);
+this.fireTreeExpanded (parentPath);
+}}
+} finally {
+if (this.expandedStack.size () < javax.swing.JTree.TEMP_STACK_SIZE) {
+stack.removeAllElements ();
+this.expandedStack.push (stack);
+}}
+if (!state) {
+var cValue = this.expandedState.get (path);
+if (cValue != null && (cValue).booleanValue ()) {
+try {
+this.fireTreeWillCollapse (path);
+} catch (eve) {
+if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {
+return;
+} else {
+throw eve;
+}
+}
+this.expandedState.put (path, Boolean.FALSE);
+this.fireTreeCollapsed (path);
+if (this.removeDescendantSelectedPaths (path, false) && !this.isPathSelected (path)) {
+this.addSelectionPath (path);
+}}} else {
+var cValue = this.expandedState.get (path);
+if (cValue == null || !(cValue).booleanValue ()) {
+try {
+this.fireTreeWillExpand (path);
+} catch (eve) {
+if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {
+return;
+} else {
+throw eve;
+}
+}
+this.expandedState.put (path, Boolean.TRUE);
+this.fireTreeExpanded (path);
+}}}}, "javax.swing.tree.TreePath,~B");
+Clazz.defineMethod (c$, "getDescendantToggledPaths", 
+function (parent) {
+if (parent == null) return null;
+var descendants =  new java.util.Vector ();
+var nodes = this.expandedState.keys ();
+var path;
+while (nodes.hasMoreElements ()) {
+path = nodes.nextElement ();
+if (parent.isDescendant (path)) descendants.addElement (path);
+}
+return descendants.elements ();
+}, "javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "removeDescendantToggledPaths", 
+function (toRemove) {
+if (toRemove != null) {
+while (toRemove.hasMoreElements ()) {
+var descendants = this.getDescendantToggledPaths (toRemove.nextElement ());
+if (descendants != null) {
+while (descendants.hasMoreElements ()) {
+this.expandedState.remove (descendants.nextElement ());
+}
+}}
+}}, "java.util.Enumeration");
+Clazz.defineMethod (c$, "clearToggledPaths", 
+function () {
+this.expandedState.clear ();
+});
+Clazz.defineMethod (c$, "createTreeModelListener", 
+function () {
+return Clazz.innerTypeInstance (javax.swing.JTree.TreeModelHandler, this, null);
+});
+Clazz.defineMethod (c$, "removeDescendantSelectedPaths", 
+function (path, includePath) {
+var toRemove = this.getDescendantSelectedPaths (path, includePath);
+if (toRemove != null) {
+this.getSelectionModel ().removeSelectionPaths (toRemove);
+return true;
+}return false;
+}, "javax.swing.tree.TreePath,~B");
+Clazz.defineMethod (c$, "getDescendantSelectedPaths", 
+ function (path, includePath) {
+var sm = this.getSelectionModel ();
+var selPaths = (sm != null) ? sm.getSelectionPaths () : null;
+if (selPaths != null) {
+var shouldRemove = false;
+for (var counter = selPaths.length - 1; counter >= 0; counter--) {
+if (selPaths[counter] != null && path.isDescendant (selPaths[counter]) && (!path.equals (selPaths[counter]) || includePath)) shouldRemove = true;
+ else selPaths[counter] = null;
+}
+if (!shouldRemove) {
+selPaths = null;
+}return selPaths;
+}return null;
+}, "javax.swing.tree.TreePath,~B");
+Clazz.defineMethod (c$, "removeDescendantSelectedPaths", 
+function (e) {
+var pPath = e.getTreePath ();
+var oldChildren = e.getChildren ();
+var sm = this.getSelectionModel ();
+if (sm != null && pPath != null && oldChildren != null && oldChildren.length > 0) {
+for (var counter = oldChildren.length - 1; counter >= 0; counter--) {
+this.removeDescendantSelectedPaths (pPath.pathByAddingChild (oldChildren[counter]), true);
+}
+}}, "javax.swing.event.TreeModelEvent");
+Clazz.defineMethod (c$, "setUIProperty", 
+function (propertyName, value) {
+if (propertyName === "rowHeight") {
+if (!this.rowHeightSet) {
+this.setRowHeight ((value).intValue ());
+this.rowHeightSet = false;
+}} else if (propertyName === "scrollsOnExpand") {
+if (!this.scrollsOnExpandSet) {
+this.setScrollsOnExpand ((value).booleanValue ());
+this.scrollsOnExpandSet = false;
+}} else if (propertyName === "showsRootHandles") {
+if (!this.showsRootHandlesSet) {
+this.setShowsRootHandles ((value).booleanValue ());
+this.showsRootHandlesSet = false;
+}} else {
+Clazz.superCall (this, javax.swing.JTree, "setUIProperty", [propertyName, value]);
+}}, "~S,~O");
+Clazz.defineMethod (c$, "paramString", 
+function () {
+var rootVisibleString = (this.rootVisible ? "true" : "false");
+var showsRootHandlesString = (this.showsRootHandles ? "true" : "false");
+var editableString = (this.editable ? "true" : "false");
+var largeModelString = (this.largeModel ? "true" : "false");
+var invokesStopCellEditingString = (this.invokesStopCellEditing ? "true" : "false");
+var scrollsOnExpandString = (this.scrollsOnExpand ? "true" : "false");
+return Clazz.superCall (this, javax.swing.JTree, "paramString", []) + ",editable=" + editableString + ",invokesStopCellEditing=" + invokesStopCellEditingString + ",largeModel=" + largeModelString + ",rootVisible=" + rootVisibleString + ",rowHeight=" + this.rowHeight + ",scrollsOnExpand=" + scrollsOnExpandString + ",showsRootHandles=" + showsRootHandlesString + ",toggleClickCount=" + this.toggleClickCount + ",visibleRowCount=" + this.visibleRowCount;
+});
+c$.$JTree$TreeSelectionRedirector$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+Clazz.instantialize (this, arguments);
+}, javax.swing.JTree, "TreeSelectionRedirector", null, javax.swing.event.TreeSelectionListener);
+Clazz.overrideMethod (c$, "valueChanged", 
+function (a) {
+var b;
+b = a.cloneWithSource (this.b$["javax.swing.JTree"]);
+this.b$["javax.swing.JTree"].fireValueChanged (b);
+}, "javax.swing.event.TreeSelectionEvent");
+c$ = Clazz.p0p ();
+};
+c$.$JTree$TreeModelHandler$ = function () {
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+Clazz.instantialize (this, arguments);
+}, javax.swing.JTree, "TreeModelHandler", null, javax.swing.event.TreeModelListener);
+Clazz.overrideMethod (c$, "treeNodesChanged", 
+function (a) {
+}, "javax.swing.event.TreeModelEvent");
+Clazz.overrideMethod (c$, "treeNodesInserted", 
+function (a) {
+}, "javax.swing.event.TreeModelEvent");
+Clazz.overrideMethod (c$, "treeStructureChanged", 
+function (a) {
+if (a == null) return;
+var b = a.getTreePath ();
+if (b == null) return;
+if (b.getPathCount () == 1) {
+this.b$["javax.swing.JTree"].clearToggledPaths ();
+if (this.b$["javax.swing.JTree"].treeModel.getRoot () != null && !this.b$["javax.swing.JTree"].treeModel.isLeaf (this.b$["javax.swing.JTree"].treeModel.getRoot ())) {
+this.b$["javax.swing.JTree"].expandedState.put (b, Boolean.TRUE);
+}} else if (this.b$["javax.swing.JTree"].expandedState.get (b) != null) {
+var c =  new java.util.Vector (1);
+var d = this.b$["javax.swing.JTree"].isExpanded (b);
+c.addElement (b);
+this.b$["javax.swing.JTree"].removeDescendantToggledPaths (c.elements ());
+if (d) {
+var e = this.b$["javax.swing.JTree"].getModel ();
+if (e == null || e.isLeaf (b.getLastPathComponent ())) this.b$["javax.swing.JTree"].collapsePath (b);
+ else this.b$["javax.swing.JTree"].expandedState.put (b, Boolean.TRUE);
+}}this.b$["javax.swing.JTree"].removeDescendantSelectedPaths (b, false);
+}, "javax.swing.event.TreeModelEvent");
+Clazz.overrideMethod (c$, "treeNodesRemoved", 
+function (a) {
+if (a == null) return;
+var b = a.getTreePath ();
+var c = a.getChildren ();
+if (c == null) return;
+var d;
+var e =  new java.util.Vector (Math.max (1, c.length));
+for (var f = c.length - 1; f >= 0; f--) {
+d = b.pathByAddingChild (c[f]);
+if (this.b$["javax.swing.JTree"].expandedState.get (d) != null) e.addElement (d);
+}
+if (e.size () > 0) this.b$["javax.swing.JTree"].removeDescendantToggledPaths (e.elements ());
+var g = this.b$["javax.swing.JTree"].getModel ();
+if (g == null || g.isLeaf (b.getLastPathComponent ())) this.b$["javax.swing.JTree"].expandedState.remove (b);
+this.b$["javax.swing.JTree"].removeDescendantSelectedPaths (a);
+}, "javax.swing.event.TreeModelEvent");
+c$ = Clazz.p0p ();
+};
+Clazz.pu$h(self.c$);
+c$ = Clazz.declareType (javax.swing.JTree, "EmptySelectionModel", javax.swing.tree.DefaultTreeSelectionModel);
+c$.sharedInstance = Clazz.defineMethod (c$, "sharedInstance", 
+function () {
+return javax.swing.JTree.EmptySelectionModel.$sharedInstance;
+});
+Clazz.overrideMethod (c$, "setSelectionPaths", 
+function (a) {
+}, "~A");
+Clazz.overrideMethod (c$, "addSelectionPaths", 
+function (a) {
+}, "~A");
+Clazz.overrideMethod (c$, "removeSelectionPaths", 
+function (a) {
+}, "~A");
+c$.$sharedInstance = c$.prototype.$sharedInstance =  new javax.swing.JTree.EmptySelectionModel ();
+c$ = Clazz.p0p ();
+Clazz.pu$h(self.c$);
+c$ = Clazz.decorateAsClass (function () {
+this.hasChildren = false;
+this.childValue = null;
+this.loadedChildren = false;
+Clazz.instantialize (this, arguments);
+}, javax.swing.JTree, "DynamicUtilTreeNode", javax.swing.tree.DefaultMutableTreeNode);
+c$.createChildren = Clazz.defineMethod (c$, "createChildren", 
+function (a, b) {
+if (Clazz.instanceOf (b, java.util.Vector)) {
+var c = b;
+for (var d = 0, e = c.size (); d < e; d++) a.add ( new javax.swing.JTree.DynamicUtilTreeNode (c.elementAt (d), c.elementAt (d)));
+
+} else if (Clazz.instanceOf (b, java.util.Hashtable)) {
+var c = b;
+var d = c.keys ();
+var e;
+while (d.hasMoreElements ()) {
+e = d.nextElement ();
+a.add ( new javax.swing.JTree.DynamicUtilTreeNode (e, c.get (e)));
+}
+} else if (Clazz.instanceOf (b, Array)) {
+var c = b;
+for (var d = 0, e = c.length; d < e; d++) a.add ( new javax.swing.JTree.DynamicUtilTreeNode (c[d], c[d]));
+
+}}, "javax.swing.tree.DefaultMutableTreeNode,~O");
+Clazz.makeConstructor (c$, 
+function (a, b) {
+Clazz.superConstructor (this, javax.swing.JTree.DynamicUtilTreeNode, [a]);
+this.loadedChildren = false;
+this.childValue = b;
+if (b != null) {
+if (Clazz.instanceOf (b, java.util.Vector)) this.setAllowsChildren (true);
+ else if (Clazz.instanceOf (b, java.util.Hashtable)) this.setAllowsChildren (true);
+ else if (Clazz.instanceOf (b, Array)) this.setAllowsChildren (true);
+ else this.setAllowsChildren (false);
+} else this.setAllowsChildren (false);
+}, "~O,~O");
+Clazz.overrideMethod (c$, "isLeaf", 
+function () {
+return !this.getAllowsChildren ();
+});
+Clazz.defineMethod (c$, "getChildCount", 
+function () {
+if (!this.loadedChildren) this.loadChildren ();
+return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "getChildCount", []);
+});
+Clazz.defineMethod (c$, "loadChildren", 
+function () {
+this.loadedChildren = true;
+javax.swing.JTree.DynamicUtilTreeNode.createChildren (this, this.childValue);
+});
+Clazz.defineMethod (c$, "getChildAt", 
+function (a) {
+if (!this.loadedChildren) this.loadChildren ();
+return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "getChildAt", [a]);
+}, "~N");
+Clazz.defineMethod (c$, "children", 
+function () {
+if (!this.loadedChildren) this.loadChildren ();
+return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "children", []);
+});
+c$ = Clazz.p0p ();
+Clazz.defineStatics (c$,
+"$uiClassID", "TreeUI",
+"TEMP_STACK_SIZE", 11,
+"CELL_RENDERER_PROPERTY", "cellRenderer",
+"TREE_MODEL_PROPERTY", "model",
+"ROOT_VISIBLE_PROPERTY", "rootVisible",
+"SHOWS_ROOT_HANDLES_PROPERTY", "showsRootHandles",
+"ROW_HEIGHT_PROPERTY", "rowHeight",
+"CELL_EDITOR_PROPERTY", "cellEditor",
+"EDITABLE_PROPERTY", "editable",
+"LARGE_MODEL_PROPERTY", "largeModel",
+"SELECTION_MODEL_PROPERTY", "selectionModel",
+"VISIBLE_ROW_COUNT_PROPERTY", "visibleRowCount",
+"INVOKES_STOP_CELL_EDITING_PROPERTY", "invokesStopCellEditing",
+"SCROLLS_ON_EXPAND_PROPERTY", "scrollsOnExpand",
+"TOGGLE_CLICK_COUNT_PROPERTY", "toggleClickCount",
+"LEAD_SELECTION_PATH_PROPERTY", "leadSelectionPath",
+"ANCHOR_SELECTION_PATH_PROPERTY", "anchorSelectionPath",
+"EXPANDS_SELECTED_PATHS_PROPERTY", "expandsSelectedPaths");
+});