Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / javax / swing / tree / DefaultTreeSelectionModel.js
index 93a0098..c83bf69 100644 (file)
-Clazz.declarePackage ("javax.swing.tree");\r
-Clazz.load (["javax.swing.tree.TreeSelectionModel", "javax.swing.event.EventListenerList"], ["javax.swing.tree.PathPlaceHolder", "$.DefaultTreeSelectionModel"], ["java.lang.Boolean", "$.StringBuffer", "java.util.BitSet", "$.Hashtable", "$.Vector", "javax.swing.DefaultListSelectionModel", "javax.swing.event.SwingPropertyChangeSupport", "$.TreeSelectionEvent", "$.TreeSelectionListener"], function () {\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.changeSupport = null;\r
-this.selection = null;\r
-this.listenerList = null;\r
-this.rowMapper = null;\r
-this.listSelectionModel = null;\r
-this.selectionMode = 0;\r
-this.leadPath = null;\r
-this.leadIndex = 0;\r
-this.leadRow = 0;\r
-this.uniquePaths = null;\r
-this.lastPaths = null;\r
-this.tempPaths = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.tree, "DefaultTreeSelectionModel", null, [Cloneable, javax.swing.tree.TreeSelectionModel]);\r
-Clazz.prepareFields (c$, function () {\r
-this.listenerList =  new javax.swing.event.EventListenerList ();\r
-});\r
-Clazz.makeConstructor (c$, \r
-function () {\r
-this.listSelectionModel =  new javax.swing.DefaultListSelectionModel ();\r
-this.selectionMode = 4;\r
-this.leadIndex = this.leadRow = -1;\r
-this.uniquePaths =  new java.util.Hashtable ();\r
-this.lastPaths =  new java.util.Hashtable ();\r
-this.tempPaths =  new Array (1);\r
-});\r
-Clazz.overrideMethod (c$, "setRowMapper", \r
-function (newMapper) {\r
-this.rowMapper = newMapper;\r
-this.resetRowSelection ();\r
-}, "javax.swing.tree.RowMapper");\r
-Clazz.overrideMethod (c$, "getRowMapper", \r
-function () {\r
-return this.rowMapper;\r
-});\r
-Clazz.overrideMethod (c$, "setSelectionMode", \r
-function (mode) {\r
-var oldMode = this.selectionMode;\r
-this.selectionMode = mode;\r
-if (this.selectionMode != 1 && this.selectionMode != 2 && this.selectionMode != 4) this.selectionMode = 4;\r
-if (oldMode != this.selectionMode && this.changeSupport != null) this.changeSupport.firePropertyChange ("selectionMode",  new Integer (oldMode),  new Integer (this.selectionMode));\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "getSelectionMode", \r
-function () {\r
-return this.selectionMode;\r
-});\r
-Clazz.overrideMethod (c$, "setSelectionPath", \r
-function (path) {\r
-if (path == null) this.setSelectionPaths (null);\r
- else {\r
-var newPaths =  new Array (1);\r
-newPaths[0] = path;\r
-this.setSelectionPaths (newPaths);\r
-}}, "javax.swing.tree.TreePath");\r
-Clazz.overrideMethod (c$, "setSelectionPaths", \r
-function (pPaths) {\r
-var newCount;\r
-var newCounter;\r
-var oldCount;\r
-var oldCounter;\r
-var paths = pPaths;\r
-if (paths == null) newCount = 0;\r
- else newCount = paths.length;\r
-if (this.selection == null) oldCount = 0;\r
- else oldCount = this.selection.length;\r
-if ((newCount + oldCount) != 0) {\r
-if (this.selectionMode == 1) {\r
-if (newCount > 1) {\r
-paths =  new Array (1);\r
-paths[0] = pPaths[0];\r
-newCount = 1;\r
-}} else if (this.selectionMode == 2) {\r
-if (newCount > 0 && !this.arePathsContiguous (paths)) {\r
-paths =  new Array (1);\r
-paths[0] = pPaths[0];\r
-newCount = 1;\r
-}}var validCount = 0;\r
-var beginLeadPath = this.leadPath;\r
-var cPaths =  new java.util.Vector (newCount + oldCount);\r
-this.lastPaths.clear ();\r
-this.leadPath = null;\r
-for (newCounter = 0; newCounter < newCount; newCounter++) {\r
-if (paths[newCounter] != null && this.lastPaths.get (paths[newCounter]) == null) {\r
-validCount++;\r
-this.lastPaths.put (paths[newCounter], Boolean.TRUE);\r
-if (this.uniquePaths.get (paths[newCounter]) == null) {\r
-cPaths.addElement ( new javax.swing.tree.PathPlaceHolder (paths[newCounter], true));\r
-}this.leadPath = paths[newCounter];\r
-}}\r
-var newSelection;\r
-if (validCount == 0) {\r
-newSelection = null;\r
-} else if (validCount != newCount) {\r
-var keys = this.lastPaths.keys ();\r
-newSelection =  new Array (validCount);\r
-validCount = 0;\r
-while (keys.hasMoreElements ()) {\r
-newSelection[validCount++] = keys.nextElement ();\r
-}\r
-} else {\r
-newSelection =  new Array (paths.length);\r
-System.arraycopy (paths, 0, newSelection, 0, paths.length);\r
-}for (oldCounter = 0; oldCounter < oldCount; oldCounter++) if (this.selection[oldCounter] != null && this.lastPaths.get (this.selection[oldCounter]) == null) cPaths.addElement ( new javax.swing.tree.PathPlaceHolder (this.selection[oldCounter], false));\r
-\r
-this.selection = newSelection;\r
-var tempHT = this.uniquePaths;\r
-this.uniquePaths = this.lastPaths;\r
-this.lastPaths = tempHT;\r
-this.lastPaths.clear ();\r
-if (this.selection != null) this.insureUniqueness ();\r
-this.updateLeadIndex ();\r
-this.resetRowSelection ();\r
-if (cPaths.size () > 0) this.notifyPathChange (cPaths, beginLeadPath);\r
-}}, "~A");\r
-Clazz.overrideMethod (c$, "addSelectionPath", \r
-function (path) {\r
-if (path != null) {\r
-var toAdd =  new Array (1);\r
-toAdd[0] = path;\r
-this.addSelectionPaths (toAdd);\r
-}}, "javax.swing.tree.TreePath");\r
-Clazz.overrideMethod (c$, "addSelectionPaths", \r
-function (paths) {\r
-var newPathLength = ((paths == null) ? 0 : paths.length);\r
-if (newPathLength > 0) {\r
-if (this.selectionMode == 1) {\r
-this.setSelectionPaths (paths);\r
-} else if (this.selectionMode == 2 && !this.canPathsBeAdded (paths)) {\r
-if (this.arePathsContiguous (paths)) {\r
-this.setSelectionPaths (paths);\r
-} else {\r
-var newPaths =  new Array (1);\r
-newPaths[0] = paths[0];\r
-this.setSelectionPaths (newPaths);\r
-}} else {\r
-var counter;\r
-var validCount;\r
-var oldCount;\r
-var beginLeadPath = this.leadPath;\r
-var cPaths = null;\r
-if (this.selection == null) oldCount = 0;\r
- else oldCount = this.selection.length;\r
-this.lastPaths.clear ();\r
-for (counter = 0, validCount = 0; counter < newPathLength; counter++) {\r
-if (paths[counter] != null) {\r
-if (this.uniquePaths.get (paths[counter]) == null) {\r
-validCount++;\r
-if (cPaths == null) cPaths =  new java.util.Vector ();\r
-cPaths.addElement ( new javax.swing.tree.PathPlaceHolder (paths[counter], true));\r
-this.uniquePaths.put (paths[counter], Boolean.TRUE);\r
-this.lastPaths.put (paths[counter], Boolean.TRUE);\r
-}this.leadPath = paths[counter];\r
-}}\r
-if (this.leadPath == null) {\r
-this.leadPath = beginLeadPath;\r
-}if (validCount > 0) {\r
-var newSelection =  new Array (oldCount + validCount);\r
-if (oldCount > 0) System.arraycopy (this.selection, 0, newSelection, 0, oldCount);\r
-if (validCount != paths.length) {\r
-var newPaths = this.lastPaths.keys ();\r
-counter = oldCount;\r
-while (newPaths.hasMoreElements ()) {\r
-newSelection[counter++] = newPaths.nextElement ();\r
-}\r
-} else {\r
-System.arraycopy (paths, 0, newSelection, oldCount, validCount);\r
-}this.selection = newSelection;\r
-this.insureUniqueness ();\r
-this.updateLeadIndex ();\r
-this.resetRowSelection ();\r
-this.notifyPathChange (cPaths, beginLeadPath);\r
-} else this.leadPath = beginLeadPath;\r
-this.lastPaths.clear ();\r
-}}}, "~A");\r
-Clazz.overrideMethod (c$, "removeSelectionPath", \r
-function (path) {\r
-if (path != null) {\r
-var rPath =  new Array (1);\r
-rPath[0] = path;\r
-this.removeSelectionPaths (rPath);\r
-}}, "javax.swing.tree.TreePath");\r
-Clazz.overrideMethod (c$, "removeSelectionPaths", \r
-function (paths) {\r
-if (paths != null && this.selection != null && paths.length > 0) {\r
-if (!this.canPathsBeRemoved (paths)) {\r
-this.clearSelection ();\r
-} else {\r
-var pathsToRemove = null;\r
-for (var removeCounter = paths.length - 1; removeCounter >= 0; removeCounter--) {\r
-if (paths[removeCounter] != null) {\r
-if (this.uniquePaths.get (paths[removeCounter]) != null) {\r
-if (pathsToRemove == null) pathsToRemove =  new java.util.Vector (paths.length);\r
-this.uniquePaths.remove (paths[removeCounter]);\r
-pathsToRemove.addElement ( new javax.swing.tree.PathPlaceHolder (paths[removeCounter], false));\r
-}}}\r
-if (pathsToRemove != null) {\r
-var removeCount = pathsToRemove.size ();\r
-var beginLeadPath = this.leadPath;\r
-if (removeCount == this.selection.length) {\r
-this.selection = null;\r
-} else {\r
-var pEnum = this.uniquePaths.keys ();\r
-var validCount = 0;\r
-this.selection =  new Array (this.selection.length - removeCount);\r
-while (pEnum.hasMoreElements ()) {\r
-this.selection[validCount++] = pEnum.nextElement ();\r
-}\r
-}if (this.leadPath != null && this.uniquePaths.get (this.leadPath) == null) {\r
-if (this.selection != null) {\r
-this.leadPath = this.selection[this.selection.length - 1];\r
-} else {\r
-this.leadPath = null;\r
-}} else if (this.selection != null) {\r
-this.leadPath = this.selection[this.selection.length - 1];\r
-} else {\r
-this.leadPath = null;\r
-}this.updateLeadIndex ();\r
-this.resetRowSelection ();\r
-this.notifyPathChange (pathsToRemove, beginLeadPath);\r
-}}}}, "~A");\r
-Clazz.overrideMethod (c$, "getSelectionPath", \r
-function () {\r
-if (this.selection != null) return this.selection[0];\r
-return null;\r
-});\r
-Clazz.overrideMethod (c$, "getSelectionPaths", \r
-function () {\r
-if (this.selection != null) {\r
-var pathSize = this.selection.length;\r
-var result =  new Array (pathSize);\r
-System.arraycopy (this.selection, 0, result, 0, pathSize);\r
-return result;\r
-}return null;\r
-});\r
-Clazz.overrideMethod (c$, "getSelectionCount", \r
-function () {\r
-return (this.selection == null) ? 0 : this.selection.length;\r
-});\r
-Clazz.overrideMethod (c$, "isPathSelected", \r
-function (path) {\r
-return (path != null) ? (this.uniquePaths.get (path) != null) : false;\r
-}, "javax.swing.tree.TreePath");\r
-Clazz.overrideMethod (c$, "isSelectionEmpty", \r
-function () {\r
-return (this.selection == null);\r
-});\r
-Clazz.overrideMethod (c$, "clearSelection", \r
-function () {\r
-if (this.selection != null) {\r
-var selSize = this.selection.length;\r
-var newness =  Clazz.newBooleanArray (selSize, false);\r
-for (var counter = 0; counter < selSize; counter++) newness[counter] = false;\r
-\r
-var event =  new javax.swing.event.TreeSelectionEvent (this, this.selection, newness, this.leadPath, null);\r
-this.leadPath = null;\r
-this.leadIndex = this.leadRow = -1;\r
-this.uniquePaths.clear ();\r
-this.selection = null;\r
-this.resetRowSelection ();\r
-this.fireValueChanged (event);\r
-}});\r
-Clazz.overrideMethod (c$, "addTreeSelectionListener", \r
-function (x) {\r
-this.listenerList.add (javax.swing.event.TreeSelectionListener, x);\r
-}, "javax.swing.event.TreeSelectionListener");\r
-Clazz.overrideMethod (c$, "removeTreeSelectionListener", \r
-function (x) {\r
-this.listenerList.remove (javax.swing.event.TreeSelectionListener, x);\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$, "getListeners", \r
-function (listenerType) {\r
-return this.listenerList.getListeners (listenerType);\r
-}, "Class");\r
-Clazz.overrideMethod (c$, "getSelectionRows", \r
-function () {\r
-if (this.rowMapper != null && this.selection != null) {\r
-var rows = this.rowMapper.getRowsForPaths (this.selection);\r
-if (rows != null) {\r
-var invisCount = 0;\r
-for (var counter = rows.length - 1; counter >= 0; counter--) {\r
-if (rows[counter] == -1) {\r
-invisCount++;\r
-}}\r
-if (invisCount > 0) {\r
-if (invisCount == rows.length) {\r
-rows = null;\r
-} else {\r
-var tempRows =  Clazz.newIntArray (rows.length - invisCount, 0);\r
-for (var counter = rows.length - 1, visCounter = 0; counter >= 0; counter--) {\r
-if (rows[counter] != -1) {\r
-tempRows[visCounter++] = rows[counter];\r
-}}\r
-rows = tempRows;\r
-}}}return rows;\r
-}return null;\r
-});\r
-Clazz.overrideMethod (c$, "getMinSelectionRow", \r
-function () {\r
-return this.listSelectionModel.getMinSelectionIndex ();\r
-});\r
-Clazz.overrideMethod (c$, "getMaxSelectionRow", \r
-function () {\r
-return this.listSelectionModel.getMaxSelectionIndex ();\r
-});\r
-Clazz.overrideMethod (c$, "isRowSelected", \r
-function (row) {\r
-return this.listSelectionModel.isSelectedIndex (row);\r
-}, "~N");\r
-Clazz.overrideMethod (c$, "resetRowSelection", \r
-function () {\r
-this.listSelectionModel.clearSelection ();\r
-if (this.selection != null && this.rowMapper != null) {\r
-var aRow;\r
-var validCount = 0;\r
-var rows = this.rowMapper.getRowsForPaths (this.selection);\r
-for (var counter = 0, maxCounter = this.selection.length; counter < maxCounter; counter++) {\r
-aRow = rows[counter];\r
-if (aRow != -1) {\r
-this.listSelectionModel.addSelectionInterval (aRow, aRow);\r
-}}\r
-if (this.leadIndex != -1 && rows != null) {\r
-this.leadRow = rows[this.leadIndex];\r
-} else if (this.leadPath != null) {\r
-this.tempPaths[0] = this.leadPath;\r
-rows = this.rowMapper.getRowsForPaths (this.tempPaths);\r
-this.leadRow = (rows != null) ? rows[0] : -1;\r
-} else {\r
-this.leadRow = -1;\r
-}this.insureRowContinuity ();\r
-} else this.leadRow = -1;\r
-});\r
-Clazz.overrideMethod (c$, "getLeadSelectionRow", \r
-function () {\r
-return this.leadRow;\r
-});\r
-Clazz.overrideMethod (c$, "getLeadSelectionPath", \r
-function () {\r
-return this.leadPath;\r
-});\r
-Clazz.overrideMethod (c$, "addPropertyChangeListener", \r
-function (listener) {\r
-if (this.changeSupport == null) {\r
-this.changeSupport =  new javax.swing.event.SwingPropertyChangeSupport (this);\r
-}this.changeSupport.addPropertyChangeListener (listener);\r
-}, "java.beans.PropertyChangeListener");\r
-Clazz.overrideMethod (c$, "removePropertyChangeListener", \r
-function (listener) {\r
-if (this.changeSupport == null) {\r
-return;\r
-}this.changeSupport.removePropertyChangeListener (listener);\r
-}, "java.beans.PropertyChangeListener");\r
-Clazz.defineMethod (c$, "getPropertyChangeListeners", \r
-function () {\r
-if (this.changeSupport == null) {\r
-return  new Array (0);\r
-}return this.changeSupport.getPropertyChangeListeners ();\r
-});\r
-Clazz.defineMethod (c$, "insureRowContinuity", \r
-function () {\r
-if (this.selectionMode == 2 && this.selection != null && this.rowMapper != null) {\r
-var lModel = this.listSelectionModel;\r
-var min = lModel.getMinSelectionIndex ();\r
-if (min != -1) {\r
-for (var counter = min, maxCounter = lModel.getMaxSelectionIndex (); counter <= maxCounter; counter++) {\r
-if (!lModel.isSelectedIndex (counter)) {\r
-if (counter == min) {\r
-this.clearSelection ();\r
-} else {\r
-var newSel =  new Array (counter - min);\r
-var selectionIndex = this.rowMapper.getRowsForPaths (this.selection);\r
-for (var i = 0; i < selectionIndex.length; i++) {\r
-if (selectionIndex[i] < counter) {\r
-newSel[selectionIndex[i] - min] = this.selection[i];\r
-}}\r
-this.setSelectionPaths (newSel);\r
-break;\r
-}}}\r
-}} else if (this.selectionMode == 1 && this.selection != null && this.selection.length > 1) {\r
-this.setSelectionPath (this.selection[0]);\r
-}});\r
-Clazz.defineMethod (c$, "arePathsContiguous", \r
-function (paths) {\r
-if (this.rowMapper == null || paths.length < 2) return true;\r
- else {\r
-var bitSet =  new java.util.BitSet (32);\r
-var anIndex;\r
-var counter;\r
-var min;\r
-var pathCount = paths.length;\r
-var validCount = 0;\r
-var tempPath =  new Array (1);\r
-tempPath[0] = paths[0];\r
-min = this.rowMapper.getRowsForPaths (tempPath)[0];\r
-for (counter = 0; counter < pathCount; counter++) {\r
-if (paths[counter] != null) {\r
-tempPath[0] = paths[counter];\r
-var rows = this.rowMapper.getRowsForPaths (tempPath);\r
-if (rows == null) {\r
-return false;\r
-}anIndex = rows[0];\r
-if (anIndex == -1 || anIndex < (min - pathCount) || anIndex > (min + pathCount)) return false;\r
-if (anIndex < min) min = anIndex;\r
-if (!bitSet.get (anIndex)) {\r
-bitSet.set (anIndex);\r
-validCount++;\r
-}}}\r
-var maxCounter = validCount + min;\r
-for (counter = min; counter < maxCounter; counter++) if (!bitSet.get (counter)) return false;\r
-\r
-}return true;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "canPathsBeAdded", \r
-function (paths) {\r
-if (paths == null || paths.length == 0 || this.rowMapper == null || this.selection == null || this.selectionMode == 4) return true;\r
- else {\r
-var bitSet =  new java.util.BitSet ();\r
-var lModel = this.listSelectionModel;\r
-var anIndex;\r
-var counter;\r
-var min = lModel.getMinSelectionIndex ();\r
-var max = lModel.getMaxSelectionIndex ();\r
-var tempPath =  new Array (1);\r
-if (min != -1) {\r
-for (counter = min; counter <= max; counter++) {\r
-if (lModel.isSelectedIndex (counter)) bitSet.set (counter);\r
-}\r
-} else {\r
-tempPath[0] = paths[0];\r
-min = max = this.rowMapper.getRowsForPaths (tempPath)[0];\r
-}for (counter = paths.length - 1; counter >= 0; counter--) {\r
-if (paths[counter] != null) {\r
-tempPath[0] = paths[counter];\r
-var rows = this.rowMapper.getRowsForPaths (tempPath);\r
-if (rows == null) {\r
-return false;\r
-}anIndex = rows[0];\r
-min = Math.min (anIndex, min);\r
-max = Math.max (anIndex, max);\r
-if (anIndex == -1) return false;\r
-bitSet.set (anIndex);\r
-}}\r
-for (counter = min; counter <= max; counter++) if (!bitSet.get (counter)) return false;\r
-\r
-}return true;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "canPathsBeRemoved", \r
-function (paths) {\r
-if (this.rowMapper == null || this.selection == null || this.selectionMode == 4) return true;\r
- else {\r
-var bitSet =  new java.util.BitSet ();\r
-var counter;\r
-var pathCount = paths.length;\r
-var anIndex;\r
-var min = -1;\r
-var validCount = 0;\r
-var tempPath =  new Array (1);\r
-var rows;\r
-this.lastPaths.clear ();\r
-for (counter = 0; counter < pathCount; counter++) {\r
-if (paths[counter] != null) {\r
-this.lastPaths.put (paths[counter], Boolean.TRUE);\r
-}}\r
-for (counter = this.selection.length - 1; counter >= 0; counter--) {\r
-if (this.lastPaths.get (this.selection[counter]) == null) {\r
-tempPath[0] = this.selection[counter];\r
-rows = this.rowMapper.getRowsForPaths (tempPath);\r
-if (rows != null && rows[0] != -1 && !bitSet.get (rows[0])) {\r
-validCount++;\r
-if (min == -1) min = rows[0];\r
- else min = Math.min (min, rows[0]);\r
-bitSet.set (rows[0]);\r
-}}}\r
-this.lastPaths.clear ();\r
-if (validCount > 1) {\r
-for (counter = min + validCount - 1; counter >= min; counter--) if (!bitSet.get (counter)) return false;\r
-\r
-}}return true;\r
-}, "~A");\r
-Clazz.defineMethod (c$, "notifyPathChange", \r
-function (changedPaths, oldLeadSelection) {\r
-var cPathCount = changedPaths.size ();\r
-var newness =  Clazz.newBooleanArray (cPathCount, false);\r
-var paths =  new Array (cPathCount);\r
-var placeholder;\r
-for (var counter = 0; counter < cPathCount; counter++) {\r
-placeholder = changedPaths.elementAt (counter);\r
-newness[counter] = placeholder.isNew;\r
-paths[counter] = placeholder.path;\r
-}\r
-var event =  new javax.swing.event.TreeSelectionEvent (this, paths, newness, oldLeadSelection, this.leadPath);\r
-this.fireValueChanged (event);\r
-}, "java.util.Vector,javax.swing.tree.TreePath");\r
-Clazz.defineMethod (c$, "updateLeadIndex", \r
-function () {\r
-if (this.leadPath != null) {\r
-if (this.selection == null) {\r
-this.leadPath = null;\r
-this.leadIndex = this.leadRow = -1;\r
-} else {\r
-this.leadRow = this.leadIndex = -1;\r
-for (var counter = this.selection.length - 1; counter >= 0; counter--) {\r
-if (this.selection[counter] === this.leadPath) {\r
-this.leadIndex = counter;\r
-break;\r
-}}\r
-}} else {\r
-this.leadIndex = -1;\r
-}});\r
-Clazz.defineMethod (c$, "insureUniqueness", \r
-function () {\r
-});\r
-Clazz.overrideMethod (c$, "toString", \r
-function () {\r
-var selCount = this.getSelectionCount ();\r
-var retBuffer =  new StringBuffer ();\r
-var rows;\r
-if (this.rowMapper != null) rows = this.rowMapper.getRowsForPaths (this.selection);\r
- else rows = null;\r
-retBuffer.append (this.getClass ().getName () + " " + this.hashCode () + " [ ");\r
-for (var counter = 0; counter < selCount; counter++) {\r
-if (rows != null) retBuffer.append (this.selection[counter].toString () + "@" + Integer.toString (rows[counter]) + " ");\r
- else retBuffer.append (this.selection[counter].toString () + " ");\r
-}\r
-retBuffer.append ("]");\r
-return retBuffer.toString ();\r
-});\r
-Clazz.defineMethod (c$, "clone", \r
-function () {\r
-var clone = Clazz.superCall (this, javax.swing.tree.DefaultTreeSelectionModel, "clone", []);\r
-clone.changeSupport = null;\r
-if (this.selection != null) {\r
-var selLength = this.selection.length;\r
-clone.selection =  new Array (selLength);\r
-System.arraycopy (this.selection, 0, clone.selection, 0, selLength);\r
-}clone.listenerList =  new javax.swing.event.EventListenerList ();\r
-clone.listSelectionModel = this.listSelectionModel.clone ();\r
-clone.uniquePaths =  new java.util.Hashtable ();\r
-clone.lastPaths =  new java.util.Hashtable ();\r
-clone.tempPaths =  new Array (1);\r
-return clone;\r
-});\r
-Clazz.defineStatics (c$,\r
-"SELECTION_MODE_PROPERTY", "selectionMode");\r
-c$ = Clazz.decorateAsClass (function () {\r
-this.isNew = false;\r
-this.path = null;\r
-Clazz.instantialize (this, arguments);\r
-}, javax.swing.tree, "PathPlaceHolder");\r
-Clazz.makeConstructor (c$, \r
-function (path, isNew) {\r
-this.path = path;\r
-this.isNew = isNew;\r
-}, "javax.swing.tree.TreePath,~B");\r
-});\r
+Clazz.declarePackage ("javax.swing.tree");
+Clazz.load (["javax.swing.tree.TreeSelectionModel", "javax.swing.event.EventListenerList"], ["javax.swing.tree.PathPlaceHolder", "$.DefaultTreeSelectionModel"], ["java.lang.Boolean", "$.StringBuffer", "java.util.BitSet", "$.Hashtable", "$.Vector", "javax.swing.DefaultListSelectionModel", "javax.swing.event.SwingPropertyChangeSupport", "$.TreeSelectionEvent", "$.TreeSelectionListener"], function () {
+c$ = Clazz.decorateAsClass (function () {
+this.changeSupport = null;
+this.selection = null;
+this.listenerList = null;
+this.rowMapper = null;
+this.listSelectionModel = null;
+this.selectionMode = 0;
+this.leadPath = null;
+this.leadIndex = 0;
+this.leadRow = 0;
+this.uniquePaths = null;
+this.lastPaths = null;
+this.tempPaths = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.tree, "DefaultTreeSelectionModel", null, [Cloneable, javax.swing.tree.TreeSelectionModel]);
+Clazz.prepareFields (c$, function () {
+this.listenerList =  new javax.swing.event.EventListenerList ();
+});
+Clazz.makeConstructor (c$, 
+function () {
+this.listSelectionModel =  new javax.swing.DefaultListSelectionModel ();
+this.selectionMode = 4;
+this.leadIndex = this.leadRow = -1;
+this.uniquePaths =  new java.util.Hashtable ();
+this.lastPaths =  new java.util.Hashtable ();
+this.tempPaths =  new Array (1);
+});
+Clazz.overrideMethod (c$, "setRowMapper", 
+function (newMapper) {
+this.rowMapper = newMapper;
+this.resetRowSelection ();
+}, "javax.swing.tree.RowMapper");
+Clazz.overrideMethod (c$, "getRowMapper", 
+function () {
+return this.rowMapper;
+});
+Clazz.overrideMethod (c$, "setSelectionMode", 
+function (mode) {
+var oldMode = this.selectionMode;
+this.selectionMode = mode;
+if (this.selectionMode != 1 && this.selectionMode != 2 && this.selectionMode != 4) this.selectionMode = 4;
+if (oldMode != this.selectionMode && this.changeSupport != null) this.changeSupport.firePropertyChange ("selectionMode",  new Integer (oldMode),  new Integer (this.selectionMode));
+}, "~N");
+Clazz.overrideMethod (c$, "getSelectionMode", 
+function () {
+return this.selectionMode;
+});
+Clazz.overrideMethod (c$, "setSelectionPath", 
+function (path) {
+if (path == null) this.setSelectionPaths (null);
+ else {
+var newPaths =  new Array (1);
+newPaths[0] = path;
+this.setSelectionPaths (newPaths);
+}}, "javax.swing.tree.TreePath");
+Clazz.overrideMethod (c$, "setSelectionPaths", 
+function (pPaths) {
+var newCount;
+var newCounter;
+var oldCount;
+var oldCounter;
+var paths = pPaths;
+if (paths == null) newCount = 0;
+ else newCount = paths.length;
+if (this.selection == null) oldCount = 0;
+ else oldCount = this.selection.length;
+if ((newCount + oldCount) != 0) {
+if (this.selectionMode == 1) {
+if (newCount > 1) {
+paths =  new Array (1);
+paths[0] = pPaths[0];
+newCount = 1;
+}} else if (this.selectionMode == 2) {
+if (newCount > 0 && !this.arePathsContiguous (paths)) {
+paths =  new Array (1);
+paths[0] = pPaths[0];
+newCount = 1;
+}}var validCount = 0;
+var beginLeadPath = this.leadPath;
+var cPaths =  new java.util.Vector (newCount + oldCount);
+this.lastPaths.clear ();
+this.leadPath = null;
+for (newCounter = 0; newCounter < newCount; newCounter++) {
+if (paths[newCounter] != null && this.lastPaths.get (paths[newCounter]) == null) {
+validCount++;
+this.lastPaths.put (paths[newCounter], Boolean.TRUE);
+if (this.uniquePaths.get (paths[newCounter]) == null) {
+cPaths.addElement ( new javax.swing.tree.PathPlaceHolder (paths[newCounter], true));
+}this.leadPath = paths[newCounter];
+}}
+var newSelection;
+if (validCount == 0) {
+newSelection = null;
+} else if (validCount != newCount) {
+var keys = this.lastPaths.keys ();
+newSelection =  new Array (validCount);
+validCount = 0;
+while (keys.hasMoreElements ()) {
+newSelection[validCount++] = keys.nextElement ();
+}
+} else {
+newSelection =  new Array (paths.length);
+System.arraycopy (paths, 0, newSelection, 0, paths.length);
+}for (oldCounter = 0; oldCounter < oldCount; oldCounter++) if (this.selection[oldCounter] != null && this.lastPaths.get (this.selection[oldCounter]) == null) cPaths.addElement ( new javax.swing.tree.PathPlaceHolder (this.selection[oldCounter], false));
+
+this.selection = newSelection;
+var tempHT = this.uniquePaths;
+this.uniquePaths = this.lastPaths;
+this.lastPaths = tempHT;
+this.lastPaths.clear ();
+if (this.selection != null) this.insureUniqueness ();
+this.updateLeadIndex ();
+this.resetRowSelection ();
+if (cPaths.size () > 0) this.notifyPathChange (cPaths, beginLeadPath);
+}}, "~A");
+Clazz.overrideMethod (c$, "addSelectionPath", 
+function (path) {
+if (path != null) {
+var toAdd =  new Array (1);
+toAdd[0] = path;
+this.addSelectionPaths (toAdd);
+}}, "javax.swing.tree.TreePath");
+Clazz.overrideMethod (c$, "addSelectionPaths", 
+function (paths) {
+var newPathLength = ((paths == null) ? 0 : paths.length);
+if (newPathLength > 0) {
+if (this.selectionMode == 1) {
+this.setSelectionPaths (paths);
+} else if (this.selectionMode == 2 && !this.canPathsBeAdded (paths)) {
+if (this.arePathsContiguous (paths)) {
+this.setSelectionPaths (paths);
+} else {
+var newPaths =  new Array (1);
+newPaths[0] = paths[0];
+this.setSelectionPaths (newPaths);
+}} else {
+var counter;
+var validCount;
+var oldCount;
+var beginLeadPath = this.leadPath;
+var cPaths = null;
+if (this.selection == null) oldCount = 0;
+ else oldCount = this.selection.length;
+this.lastPaths.clear ();
+for (counter = 0, validCount = 0; counter < newPathLength; counter++) {
+if (paths[counter] != null) {
+if (this.uniquePaths.get (paths[counter]) == null) {
+validCount++;
+if (cPaths == null) cPaths =  new java.util.Vector ();
+cPaths.addElement ( new javax.swing.tree.PathPlaceHolder (paths[counter], true));
+this.uniquePaths.put (paths[counter], Boolean.TRUE);
+this.lastPaths.put (paths[counter], Boolean.TRUE);
+}this.leadPath = paths[counter];
+}}
+if (this.leadPath == null) {
+this.leadPath = beginLeadPath;
+}if (validCount > 0) {
+var newSelection =  new Array (oldCount + validCount);
+if (oldCount > 0) System.arraycopy (this.selection, 0, newSelection, 0, oldCount);
+if (validCount != paths.length) {
+var newPaths = this.lastPaths.keys ();
+counter = oldCount;
+while (newPaths.hasMoreElements ()) {
+newSelection[counter++] = newPaths.nextElement ();
+}
+} else {
+System.arraycopy (paths, 0, newSelection, oldCount, validCount);
+}this.selection = newSelection;
+this.insureUniqueness ();
+this.updateLeadIndex ();
+this.resetRowSelection ();
+this.notifyPathChange (cPaths, beginLeadPath);
+} else this.leadPath = beginLeadPath;
+this.lastPaths.clear ();
+}}}, "~A");
+Clazz.overrideMethod (c$, "removeSelectionPath", 
+function (path) {
+if (path != null) {
+var rPath =  new Array (1);
+rPath[0] = path;
+this.removeSelectionPaths (rPath);
+}}, "javax.swing.tree.TreePath");
+Clazz.overrideMethod (c$, "removeSelectionPaths", 
+function (paths) {
+if (paths != null && this.selection != null && paths.length > 0) {
+if (!this.canPathsBeRemoved (paths)) {
+this.clearSelection ();
+} else {
+var pathsToRemove = null;
+for (var removeCounter = paths.length - 1; removeCounter >= 0; removeCounter--) {
+if (paths[removeCounter] != null) {
+if (this.uniquePaths.get (paths[removeCounter]) != null) {
+if (pathsToRemove == null) pathsToRemove =  new java.util.Vector (paths.length);
+this.uniquePaths.remove (paths[removeCounter]);
+pathsToRemove.addElement ( new javax.swing.tree.PathPlaceHolder (paths[removeCounter], false));
+}}}
+if (pathsToRemove != null) {
+var removeCount = pathsToRemove.size ();
+var beginLeadPath = this.leadPath;
+if (removeCount == this.selection.length) {
+this.selection = null;
+} else {
+var pEnum = this.uniquePaths.keys ();
+var validCount = 0;
+this.selection =  new Array (this.selection.length - removeCount);
+while (pEnum.hasMoreElements ()) {
+this.selection[validCount++] = pEnum.nextElement ();
+}
+}if (this.leadPath != null && this.uniquePaths.get (this.leadPath) == null) {
+if (this.selection != null) {
+this.leadPath = this.selection[this.selection.length - 1];
+} else {
+this.leadPath = null;
+}} else if (this.selection != null) {
+this.leadPath = this.selection[this.selection.length - 1];
+} else {
+this.leadPath = null;
+}this.updateLeadIndex ();
+this.resetRowSelection ();
+this.notifyPathChange (pathsToRemove, beginLeadPath);
+}}}}, "~A");
+Clazz.overrideMethod (c$, "getSelectionPath", 
+function () {
+if (this.selection != null) return this.selection[0];
+return null;
+});
+Clazz.overrideMethod (c$, "getSelectionPaths", 
+function () {
+if (this.selection != null) {
+var pathSize = this.selection.length;
+var result =  new Array (pathSize);
+System.arraycopy (this.selection, 0, result, 0, pathSize);
+return result;
+}return null;
+});
+Clazz.overrideMethod (c$, "getSelectionCount", 
+function () {
+return (this.selection == null) ? 0 : this.selection.length;
+});
+Clazz.overrideMethod (c$, "isPathSelected", 
+function (path) {
+return (path != null) ? (this.uniquePaths.get (path) != null) : false;
+}, "javax.swing.tree.TreePath");
+Clazz.overrideMethod (c$, "isSelectionEmpty", 
+function () {
+return (this.selection == null);
+});
+Clazz.overrideMethod (c$, "clearSelection", 
+function () {
+if (this.selection != null) {
+var selSize = this.selection.length;
+var newness =  Clazz.newBooleanArray (selSize, false);
+for (var counter = 0; counter < selSize; counter++) newness[counter] = false;
+
+var event =  new javax.swing.event.TreeSelectionEvent (this, this.selection, newness, this.leadPath, null);
+this.leadPath = null;
+this.leadIndex = this.leadRow = -1;
+this.uniquePaths.clear ();
+this.selection = null;
+this.resetRowSelection ();
+this.fireValueChanged (event);
+}});
+Clazz.overrideMethod (c$, "addTreeSelectionListener", 
+function (x) {
+this.listenerList.add (javax.swing.event.TreeSelectionListener, x);
+}, "javax.swing.event.TreeSelectionListener");
+Clazz.overrideMethod (c$, "removeTreeSelectionListener", 
+function (x) {
+this.listenerList.remove (javax.swing.event.TreeSelectionListener, x);
+}, "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$, "getListeners", 
+function (listenerType) {
+return this.listenerList.getListeners (listenerType);
+}, "Class");
+Clazz.overrideMethod (c$, "getSelectionRows", 
+function () {
+if (this.rowMapper != null && this.selection != null) {
+var rows = this.rowMapper.getRowsForPaths (this.selection);
+if (rows != null) {
+var invisCount = 0;
+for (var counter = rows.length - 1; counter >= 0; counter--) {
+if (rows[counter] == -1) {
+invisCount++;
+}}
+if (invisCount > 0) {
+if (invisCount == rows.length) {
+rows = null;
+} else {
+var tempRows =  Clazz.newIntArray (rows.length - invisCount, 0);
+for (var counter = rows.length - 1, visCounter = 0; counter >= 0; counter--) {
+if (rows[counter] != -1) {
+tempRows[visCounter++] = rows[counter];
+}}
+rows = tempRows;
+}}}return rows;
+}return null;
+});
+Clazz.overrideMethod (c$, "getMinSelectionRow", 
+function () {
+return this.listSelectionModel.getMinSelectionIndex ();
+});
+Clazz.overrideMethod (c$, "getMaxSelectionRow", 
+function () {
+return this.listSelectionModel.getMaxSelectionIndex ();
+});
+Clazz.overrideMethod (c$, "isRowSelected", 
+function (row) {
+return this.listSelectionModel.isSelectedIndex (row);
+}, "~N");
+Clazz.overrideMethod (c$, "resetRowSelection", 
+function () {
+this.listSelectionModel.clearSelection ();
+if (this.selection != null && this.rowMapper != null) {
+var aRow;
+var validCount = 0;
+var rows = this.rowMapper.getRowsForPaths (this.selection);
+for (var counter = 0, maxCounter = this.selection.length; counter < maxCounter; counter++) {
+aRow = rows[counter];
+if (aRow != -1) {
+this.listSelectionModel.addSelectionInterval (aRow, aRow);
+}}
+if (this.leadIndex != -1 && rows != null) {
+this.leadRow = rows[this.leadIndex];
+} else if (this.leadPath != null) {
+this.tempPaths[0] = this.leadPath;
+rows = this.rowMapper.getRowsForPaths (this.tempPaths);
+this.leadRow = (rows != null) ? rows[0] : -1;
+} else {
+this.leadRow = -1;
+}this.insureRowContinuity ();
+} else this.leadRow = -1;
+});
+Clazz.overrideMethod (c$, "getLeadSelectionRow", 
+function () {
+return this.leadRow;
+});
+Clazz.overrideMethod (c$, "getLeadSelectionPath", 
+function () {
+return this.leadPath;
+});
+Clazz.overrideMethod (c$, "addPropertyChangeListener", 
+function (listener) {
+if (this.changeSupport == null) {
+this.changeSupport =  new javax.swing.event.SwingPropertyChangeSupport (this);
+}this.changeSupport.addPropertyChangeListener (listener);
+}, "java.beans.PropertyChangeListener");
+Clazz.overrideMethod (c$, "removePropertyChangeListener", 
+function (listener) {
+if (this.changeSupport == null) {
+return;
+}this.changeSupport.removePropertyChangeListener (listener);
+}, "java.beans.PropertyChangeListener");
+Clazz.defineMethod (c$, "getPropertyChangeListeners", 
+function () {
+if (this.changeSupport == null) {
+return  new Array (0);
+}return this.changeSupport.getPropertyChangeListeners ();
+});
+Clazz.defineMethod (c$, "insureRowContinuity", 
+function () {
+if (this.selectionMode == 2 && this.selection != null && this.rowMapper != null) {
+var lModel = this.listSelectionModel;
+var min = lModel.getMinSelectionIndex ();
+if (min != -1) {
+for (var counter = min, maxCounter = lModel.getMaxSelectionIndex (); counter <= maxCounter; counter++) {
+if (!lModel.isSelectedIndex (counter)) {
+if (counter == min) {
+this.clearSelection ();
+} else {
+var newSel =  new Array (counter - min);
+var selectionIndex = this.rowMapper.getRowsForPaths (this.selection);
+for (var i = 0; i < selectionIndex.length; i++) {
+if (selectionIndex[i] < counter) {
+newSel[selectionIndex[i] - min] = this.selection[i];
+}}
+this.setSelectionPaths (newSel);
+break;
+}}}
+}} else if (this.selectionMode == 1 && this.selection != null && this.selection.length > 1) {
+this.setSelectionPath (this.selection[0]);
+}});
+Clazz.defineMethod (c$, "arePathsContiguous", 
+function (paths) {
+if (this.rowMapper == null || paths.length < 2) return true;
+ else {
+var bitSet =  new java.util.BitSet (32);
+var anIndex;
+var counter;
+var min;
+var pathCount = paths.length;
+var validCount = 0;
+var tempPath =  new Array (1);
+tempPath[0] = paths[0];
+min = this.rowMapper.getRowsForPaths (tempPath)[0];
+for (counter = 0; counter < pathCount; counter++) {
+if (paths[counter] != null) {
+tempPath[0] = paths[counter];
+var rows = this.rowMapper.getRowsForPaths (tempPath);
+if (rows == null) {
+return false;
+}anIndex = rows[0];
+if (anIndex == -1 || anIndex < (min - pathCount) || anIndex > (min + pathCount)) return false;
+if (anIndex < min) min = anIndex;
+if (!bitSet.get (anIndex)) {
+bitSet.set (anIndex);
+validCount++;
+}}}
+var maxCounter = validCount + min;
+for (counter = min; counter < maxCounter; counter++) if (!bitSet.get (counter)) return false;
+
+}return true;
+}, "~A");
+Clazz.defineMethod (c$, "canPathsBeAdded", 
+function (paths) {
+if (paths == null || paths.length == 0 || this.rowMapper == null || this.selection == null || this.selectionMode == 4) return true;
+ else {
+var bitSet =  new java.util.BitSet ();
+var lModel = this.listSelectionModel;
+var anIndex;
+var counter;
+var min = lModel.getMinSelectionIndex ();
+var max = lModel.getMaxSelectionIndex ();
+var tempPath =  new Array (1);
+if (min != -1) {
+for (counter = min; counter <= max; counter++) {
+if (lModel.isSelectedIndex (counter)) bitSet.set (counter);
+}
+} else {
+tempPath[0] = paths[0];
+min = max = this.rowMapper.getRowsForPaths (tempPath)[0];
+}for (counter = paths.length - 1; counter >= 0; counter--) {
+if (paths[counter] != null) {
+tempPath[0] = paths[counter];
+var rows = this.rowMapper.getRowsForPaths (tempPath);
+if (rows == null) {
+return false;
+}anIndex = rows[0];
+min = Math.min (anIndex, min);
+max = Math.max (anIndex, max);
+if (anIndex == -1) return false;
+bitSet.set (anIndex);
+}}
+for (counter = min; counter <= max; counter++) if (!bitSet.get (counter)) return false;
+
+}return true;
+}, "~A");
+Clazz.defineMethod (c$, "canPathsBeRemoved", 
+function (paths) {
+if (this.rowMapper == null || this.selection == null || this.selectionMode == 4) return true;
+ else {
+var bitSet =  new java.util.BitSet ();
+var counter;
+var pathCount = paths.length;
+var anIndex;
+var min = -1;
+var validCount = 0;
+var tempPath =  new Array (1);
+var rows;
+this.lastPaths.clear ();
+for (counter = 0; counter < pathCount; counter++) {
+if (paths[counter] != null) {
+this.lastPaths.put (paths[counter], Boolean.TRUE);
+}}
+for (counter = this.selection.length - 1; counter >= 0; counter--) {
+if (this.lastPaths.get (this.selection[counter]) == null) {
+tempPath[0] = this.selection[counter];
+rows = this.rowMapper.getRowsForPaths (tempPath);
+if (rows != null && rows[0] != -1 && !bitSet.get (rows[0])) {
+validCount++;
+if (min == -1) min = rows[0];
+ else min = Math.min (min, rows[0]);
+bitSet.set (rows[0]);
+}}}
+this.lastPaths.clear ();
+if (validCount > 1) {
+for (counter = min + validCount - 1; counter >= min; counter--) if (!bitSet.get (counter)) return false;
+
+}}return true;
+}, "~A");
+Clazz.defineMethod (c$, "notifyPathChange", 
+function (changedPaths, oldLeadSelection) {
+var cPathCount = changedPaths.size ();
+var newness =  Clazz.newBooleanArray (cPathCount, false);
+var paths =  new Array (cPathCount);
+var placeholder;
+for (var counter = 0; counter < cPathCount; counter++) {
+placeholder = changedPaths.elementAt (counter);
+newness[counter] = placeholder.isNew;
+paths[counter] = placeholder.path;
+}
+var event =  new javax.swing.event.TreeSelectionEvent (this, paths, newness, oldLeadSelection, this.leadPath);
+this.fireValueChanged (event);
+}, "java.util.Vector,javax.swing.tree.TreePath");
+Clazz.defineMethod (c$, "updateLeadIndex", 
+function () {
+if (this.leadPath != null) {
+if (this.selection == null) {
+this.leadPath = null;
+this.leadIndex = this.leadRow = -1;
+} else {
+this.leadRow = this.leadIndex = -1;
+for (var counter = this.selection.length - 1; counter >= 0; counter--) {
+if (this.selection[counter] === this.leadPath) {
+this.leadIndex = counter;
+break;
+}}
+}} else {
+this.leadIndex = -1;
+}});
+Clazz.defineMethod (c$, "insureUniqueness", 
+function () {
+});
+Clazz.overrideMethod (c$, "toString", 
+function () {
+var selCount = this.getSelectionCount ();
+var retBuffer =  new StringBuffer ();
+var rows;
+if (this.rowMapper != null) rows = this.rowMapper.getRowsForPaths (this.selection);
+ else rows = null;
+retBuffer.append (this.getClass ().getName () + " " + this.hashCode () + " [ ");
+for (var counter = 0; counter < selCount; counter++) {
+if (rows != null) retBuffer.append (this.selection[counter].toString () + "@" + Integer.toString (rows[counter]) + " ");
+ else retBuffer.append (this.selection[counter].toString () + " ");
+}
+retBuffer.append ("]");
+return retBuffer.toString ();
+});
+Clazz.defineMethod (c$, "clone", 
+function () {
+var clone = Clazz.superCall (this, javax.swing.tree.DefaultTreeSelectionModel, "clone", []);
+clone.changeSupport = null;
+if (this.selection != null) {
+var selLength = this.selection.length;
+clone.selection =  new Array (selLength);
+System.arraycopy (this.selection, 0, clone.selection, 0, selLength);
+}clone.listenerList =  new javax.swing.event.EventListenerList ();
+clone.listSelectionModel = this.listSelectionModel.clone ();
+clone.uniquePaths =  new java.util.Hashtable ();
+clone.lastPaths =  new java.util.Hashtable ();
+clone.tempPaths =  new Array (1);
+return clone;
+});
+Clazz.defineStatics (c$,
+"SELECTION_MODE_PROPERTY", "selectionMode");
+c$ = Clazz.decorateAsClass (function () {
+this.isNew = false;
+this.path = null;
+Clazz.instantialize (this, arguments);
+}, javax.swing.tree, "PathPlaceHolder");
+Clazz.makeConstructor (c$, 
+function (path, isNew) {
+this.path = path;
+this.isNew = isNew;
+}, "javax.swing.tree.TreePath,~B");
+});