1 Clazz.declarePackage ("javax.swing");
2 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 () {
3 c$ = Clazz.decorateAsClass (function () {
5 this.selectionModel = null;
6 this.rootVisible = false;
7 this.cellRenderer = null;
9 this.rowHeightSet = false;
10 this.expandedState = null;
11 this.showsRootHandles = false;
12 this.showsRootHandlesSet = false;
13 this.selectionRedirector = null;
14 this.cellEditor = null;
15 this.editable = false;
16 this.largeModel = false;
17 this.visibleRowCount = 0;
18 this.invokesStopCellEditing = false;
19 this.scrollsOnExpand = false;
20 this.scrollsOnExpandSet = false;
21 this.toggleClickCount = 0;
22 this.treeModelListener = null;
23 this.expandedStack = null;
25 this.anchorPath = null;
26 this.expandsSelectedPaths = false;
27 this.settingUI = false;
28 this.dragEnabled = false;
30 this.uiTreeExpansionListener = null;
31 if (!Clazz.isClassDefined ("javax.swing.JTree.TreeSelectionRedirector")) {
32 javax.swing.JTree.$JTree$TreeSelectionRedirector$ ();
34 if (!Clazz.isClassDefined ("javax.swing.JTree.TreeModelHandler")) {
35 javax.swing.JTree.$JTree$TreeModelHandler$ ();
37 Clazz.instantialize (this, arguments);
38 }, javax.swing, "JTree", javax.swing.JComponent, javax.swing.Scrollable);
39 c$.getDefaultTreeModel = Clazz.defineMethod (c$, "getDefaultTreeModel",
41 var root = new javax.swing.tree.DefaultMutableTreeNode ("JTree");
43 parent = new javax.swing.tree.DefaultMutableTreeNode ("colors");
45 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("blue"));
46 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("violet"));
47 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("red"));
48 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("yellow"));
49 parent = new javax.swing.tree.DefaultMutableTreeNode ("sports");
51 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("basketball"));
52 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("soccer"));
53 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("football"));
54 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("hockey"));
55 parent = new javax.swing.tree.DefaultMutableTreeNode ("food");
57 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("hot dogs"));
58 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("pizza"));
59 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("ravioli"));
60 parent.add ( new javax.swing.tree.DefaultMutableTreeNode ("bananas"));
61 return new javax.swing.tree.DefaultTreeModel (root);
63 c$.createTreeModel = Clazz.defineMethod (c$, "createTreeModel",
66 if ((Clazz.instanceOf (value, Array)) || (Clazz.instanceOf (value, java.util.Hashtable)) || (Clazz.instanceOf (value, java.util.Vector))) {
67 root = new javax.swing.tree.DefaultMutableTreeNode ("root");
68 javax.swing.JTree.DynamicUtilTreeNode.createChildren (root, value);
70 root = new javax.swing.JTree.DynamicUtilTreeNode ("root", value);
71 }return new javax.swing.tree.DefaultTreeModel (root, false);
73 Clazz.makeConstructor (c$,
75 this.construct (javax.swing.JTree.getDefaultTreeModel ());
77 Clazz.makeConstructor (c$,
79 this.construct (javax.swing.JTree.createTreeModel (value));
80 this.setRootVisible (false);
81 this.setShowsRootHandles (true);
84 Clazz.makeConstructor (c$,
86 this.construct (javax.swing.JTree.createTreeModel (value));
87 this.setRootVisible (false);
88 this.setShowsRootHandles (true);
90 }, "java.util.Vector");
91 Clazz.makeConstructor (c$,
93 this.construct (javax.swing.JTree.createTreeModel (value));
94 this.setRootVisible (false);
95 this.setShowsRootHandles (true);
97 }, "java.util.Hashtable");
98 Clazz.makeConstructor (c$,
100 this.construct (root, false);
101 }, "javax.swing.tree.TreeNode");
102 Clazz.makeConstructor (c$,
103 function (root, asksAllowsChildren) {
104 this.construct ( new javax.swing.tree.DefaultTreeModel (root, asksAllowsChildren));
105 }, "javax.swing.tree.TreeNode,~B");
106 Clazz.makeConstructor (c$,
107 function (newModel) {
108 Clazz.superConstructor (this, javax.swing.JTree);
109 this.expandedStack = new java.util.Stack ();
110 this.toggleClickCount = 2;
111 this.expandedState = new java.util.Hashtable ();
112 this.setLayout (null);
114 this.visibleRowCount = 20;
115 this.rootVisible = true;
116 this.selectionModel = new javax.swing.tree.DefaultTreeSelectionModel ();
117 this.cellRenderer = null;
118 this.scrollsOnExpand = true;
119 this.setOpaque (true);
120 this.expandsSelectedPaths = true;
122 this.setModel (newModel);
123 }, "javax.swing.tree.TreeModel");
124 Clazz.overrideMethod (c$, "getUI",
128 Clazz.defineMethod (c$, "setUI",
130 if (this.ui !== ui) {
131 this.settingUI = true;
132 this.uiTreeExpansionListener = null;
134 Clazz.superCall (this, javax.swing.JTree, "setUI", [ui]);
136 this.settingUI = false;
138 }}, "javax.swing.plaf.TreeUI");
139 Clazz.overrideMethod (c$, "updateUI",
141 this.setUI (javax.swing.UIManager.getUI (this));
142 javax.swing.SwingUtilities.updateRendererOrEditorUI (this.getCellRenderer ());
143 javax.swing.SwingUtilities.updateRendererOrEditorUI (this.getCellEditor ());
145 Clazz.overrideMethod (c$, "getUIClassID",
149 Clazz.defineMethod (c$, "getCellRenderer",
151 return this.cellRenderer;
153 Clazz.defineMethod (c$, "setCellRenderer",
155 var oldValue = this.cellRenderer;
156 this.cellRenderer = x;
157 this.firePropertyChangeObject ("cellRenderer", oldValue, this.cellRenderer);
159 }, "javax.swing.tree.TreeCellRenderer");
160 Clazz.defineMethod (c$, "setEditable",
162 var oldValue = this.editable;
163 this.editable = flag;
164 this.firePropertyChangeBool ("editable", oldValue, flag);
166 Clazz.defineMethod (c$, "isEditable",
168 return this.editable;
170 Clazz.defineMethod (c$, "setCellEditor",
171 function (cellEditor) {
172 var oldEditor = this.cellEditor;
173 this.cellEditor = cellEditor;
174 this.firePropertyChangeObject ("cellEditor", oldEditor, cellEditor);
176 }, "javax.swing.tree.TreeCellEditor");
177 Clazz.defineMethod (c$, "getCellEditor",
179 return this.cellEditor;
181 Clazz.defineMethod (c$, "getModel",
183 return this.treeModel;
185 Clazz.defineMethod (c$, "setModel",
186 function (newModel) {
187 this.clearSelection ();
188 var oldModel = this.treeModel;
189 if (this.treeModel != null && this.treeModelListener != null) this.treeModel.removeTreeModelListener (this.treeModelListener);
190 this.treeModel = newModel;
191 this.clearToggledPaths ();
192 if (this.treeModel != null) {
193 if (this.treeModelListener == null) this.treeModelListener = this.createTreeModelListener ();
194 if (this.treeModelListener != null) this.treeModel.addTreeModelListener (this.treeModelListener);
195 if (this.treeModel.getRoot () != null && !this.treeModel.isLeaf (this.treeModel.getRoot ())) {
196 this.expandedState.put ( new javax.swing.tree.TreePath (this.treeModel.getRoot ()), Boolean.TRUE);
197 }}this.firePropertyChangeObject ("model", oldModel, this.treeModel);
199 }, "javax.swing.tree.TreeModel");
200 Clazz.defineMethod (c$, "isRootVisible",
202 return this.rootVisible;
204 Clazz.defineMethod (c$, "setRootVisible",
205 function (rootVisible) {
206 var oldValue = this.rootVisible;
207 this.rootVisible = rootVisible;
208 this.firePropertyChangeBool ("rootVisible", oldValue, this.rootVisible);
210 Clazz.defineMethod (c$, "setShowsRootHandles",
211 function (newValue) {
212 var oldValue = this.showsRootHandles;
213 var model = this.getModel ();
214 this.showsRootHandles = newValue;
215 this.showsRootHandlesSet = true;
216 this.firePropertyChangeBool ("showsRootHandles", oldValue, this.showsRootHandles);
219 Clazz.defineMethod (c$, "getShowsRootHandles",
221 return this.showsRootHandles;
223 Clazz.defineMethod (c$, "setRowHeight",
224 function (rowHeight) {
225 var oldValue = this.rowHeight;
226 this.rowHeight = rowHeight;
227 this.rowHeightSet = true;
228 this.firePropertyChangeInt ("rowHeight", oldValue, this.rowHeight);
231 Clazz.defineMethod (c$, "getRowHeight",
233 return this.rowHeight;
235 Clazz.defineMethod (c$, "isFixedRowHeight",
237 return (this.rowHeight > 0);
239 Clazz.defineMethod (c$, "setLargeModel",
240 function (newValue) {
241 var oldValue = this.largeModel;
242 this.largeModel = newValue;
243 this.firePropertyChangeBool ("largeModel", oldValue, newValue);
245 Clazz.defineMethod (c$, "isLargeModel",
247 return this.largeModel;
249 Clazz.defineMethod (c$, "setInvokesStopCellEditing",
250 function (newValue) {
251 var oldValue = this.invokesStopCellEditing;
252 this.invokesStopCellEditing = newValue;
253 this.firePropertyChangeBool ("invokesStopCellEditing", oldValue, newValue);
255 Clazz.defineMethod (c$, "getInvokesStopCellEditing",
257 return this.invokesStopCellEditing;
259 Clazz.defineMethod (c$, "setScrollsOnExpand",
260 function (newValue) {
261 var oldValue = this.scrollsOnExpand;
262 this.scrollsOnExpand = newValue;
263 this.scrollsOnExpandSet = true;
264 this.firePropertyChangeBool ("scrollsOnExpand", oldValue, newValue);
266 Clazz.defineMethod (c$, "getScrollsOnExpand",
268 return this.scrollsOnExpand;
270 Clazz.defineMethod (c$, "setToggleClickCount",
271 function (clickCount) {
272 var oldCount = this.toggleClickCount;
273 this.toggleClickCount = clickCount;
274 this.firePropertyChangeInt ("toggleClickCount", oldCount, clickCount);
276 Clazz.defineMethod (c$, "getToggleClickCount",
278 return this.toggleClickCount;
280 Clazz.defineMethod (c$, "setExpandsSelectedPaths",
281 function (newValue) {
282 var oldValue = this.expandsSelectedPaths;
283 this.expandsSelectedPaths = newValue;
284 this.firePropertyChangeBool ("expandsSelectedPaths", oldValue, newValue);
286 Clazz.defineMethod (c$, "getExpandsSelectedPaths",
288 return this.expandsSelectedPaths;
290 Clazz.defineMethod (c$, "setDragEnabled",
292 this.dragEnabled = b;
294 Clazz.defineMethod (c$, "getDragEnabled",
296 return this.dragEnabled;
298 Clazz.defineMethod (c$, "isPathEditable",
300 return this.isEditable ();
301 }, "javax.swing.tree.TreePath");
302 Clazz.defineMethod (c$, "getToolTipText",
306 var p = event.getPoint ();
307 var selRow = this.getRowForLocation (p.x, p.y);
308 var r = this.getCellRenderer ();
309 if (selRow != -1 && r != null) {
310 var path = this.getPathForRow (selRow);
311 var lastPath = path.getLastPathComponent ();
312 var rComponent = r.getTreeCellRendererComponent (this, lastPath, this.isRowSelected (selRow), this.isExpanded (selRow), this.getModel ().isLeaf (lastPath), selRow, true);
313 if (Clazz.instanceOf (rComponent, javax.swing.JComponent)) {
315 var pathBounds = this.getPathBounds (path);
316 p.translate (-pathBounds.x, -pathBounds.y);
317 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);
318 tip = (rComponent).getToolTipText (newEvent);
319 }}}if (tip == null) {
320 tip = this.getToolTipText ();
322 }, "java.awt.event.MouseEvent");
323 Clazz.defineMethod (c$, "convertValueToText",
324 function (value, selected, expanded, leaf, row, hasFocus) {
326 var sValue = value.toString ();
327 if (sValue != null) {
330 }, "~O,~B,~B,~B,~N,~B");
331 Clazz.defineMethod (c$, "getRowCount",
333 var tree = this.getUI ();
334 if (tree != null) return tree.getRowCount (this);
337 Clazz.defineMethod (c$, "setSelectionPath",
339 this.getSelectionModel ().setSelectionPath (path);
340 }, "javax.swing.tree.TreePath");
341 Clazz.defineMethod (c$, "setSelectionPaths",
343 this.getSelectionModel ().setSelectionPaths (paths);
345 Clazz.defineMethod (c$, "setLeadSelectionPath",
347 var oldValue = this.leadPath;
348 this.leadPath = newPath;
349 this.firePropertyChangeObject ("leadSelectionPath", oldValue, newPath);
350 }, "javax.swing.tree.TreePath");
351 Clazz.defineMethod (c$, "setAnchorSelectionPath",
353 var oldValue = this.anchorPath;
354 this.anchorPath = newPath;
355 this.firePropertyChangeObject ("anchorSelectionPath", oldValue, newPath);
356 }, "javax.swing.tree.TreePath");
357 Clazz.defineMethod (c$, "setSelectionRow",
359 var rows = Clazz.newIntArray (-1, [row]);
360 this.setSelectionRows (rows);
362 Clazz.defineMethod (c$, "setSelectionRows",
364 var ui = this.getUI ();
365 if (ui != null && rows != null) {
366 var numRows = rows.length;
367 var paths = new Array (numRows);
368 for (var counter = 0; counter < numRows; counter++) {
369 paths[counter] = ui.getPathForRow (this, rows[counter]);
371 this.setSelectionPaths (paths);
373 Clazz.defineMethod (c$, "addSelectionPath",
375 this.getSelectionModel ().addSelectionPath (path);
376 }, "javax.swing.tree.TreePath");
377 Clazz.defineMethod (c$, "addSelectionPaths",
379 this.getSelectionModel ().addSelectionPaths (paths);
381 Clazz.defineMethod (c$, "addSelectionRow",
383 var rows = Clazz.newIntArray (-1, [row]);
384 this.addSelectionRows (rows);
386 Clazz.defineMethod (c$, "addSelectionRows",
388 var ui = this.getUI ();
389 if (ui != null && rows != null) {
390 var numRows = rows.length;
391 var paths = new Array (numRows);
392 for (var counter = 0; counter < numRows; counter++) paths[counter] = ui.getPathForRow (this, rows[counter]);
394 this.addSelectionPaths (paths);
396 Clazz.defineMethod (c$, "getLastSelectedPathComponent",
398 var selPath = this.getSelectionModel ().getSelectionPath ();
399 if (selPath != null) return selPath.getLastPathComponent ();
402 Clazz.defineMethod (c$, "getLeadSelectionPath",
404 return this.leadPath;
406 Clazz.defineMethod (c$, "getAnchorSelectionPath",
408 return this.anchorPath;
410 Clazz.defineMethod (c$, "getSelectionPath",
412 return this.getSelectionModel ().getSelectionPath ();
414 Clazz.defineMethod (c$, "getSelectionPaths",
416 return this.getSelectionModel ().getSelectionPaths ();
418 Clazz.defineMethod (c$, "getSelectionRows",
420 return this.getSelectionModel ().getSelectionRows ();
422 Clazz.defineMethod (c$, "getSelectionCount",
424 return this.selectionModel.getSelectionCount ();
426 Clazz.defineMethod (c$, "getMinSelectionRow",
428 return this.getSelectionModel ().getMinSelectionRow ();
430 Clazz.defineMethod (c$, "getMaxSelectionRow",
432 return this.getSelectionModel ().getMaxSelectionRow ();
434 Clazz.defineMethod (c$, "getLeadSelectionRow",
436 var leadPath = this.getLeadSelectionPath ();
437 if (leadPath != null) {
438 return this.getRowForPath (leadPath);
441 Clazz.defineMethod (c$, "isPathSelected",
443 return this.getSelectionModel ().isPathSelected (path);
444 }, "javax.swing.tree.TreePath");
445 Clazz.defineMethod (c$, "isRowSelected",
447 return this.getSelectionModel ().isRowSelected (row);
449 Clazz.defineMethod (c$, "getExpandedDescendants",
451 if (!this.isExpanded (parent)) return null;
452 var toggledPaths = this.expandedState.keys ();
456 if (toggledPaths != null) {
457 while (toggledPaths.hasMoreElements ()) {
458 path = toggledPaths.nextElement ();
459 value = this.expandedState.get (path);
460 if (path !== parent && value != null && (value).booleanValue () && parent.isDescendant (path) && this.isVisible (path)) {
461 if (elements == null) {
462 elements = new java.util.Vector ();
463 }elements.addElement (path);
465 }if (elements == null) {
466 var empty = java.util.Collections.emptySet ();
467 return java.util.Collections.enumeration (empty);
468 }return elements.elements ();
469 }, "javax.swing.tree.TreePath");
470 Clazz.defineMethod (c$, "hasBeenExpanded",
472 return (path != null && this.expandedState.get (path) != null);
473 }, "javax.swing.tree.TreePath");
474 Clazz.defineMethod (c$, "isExpanded",
476 if (path == null) return false;
477 var value = this.expandedState.get (path);
478 if (value == null || !(value).booleanValue ()) return false;
479 var parentPath = path.getParentPath ();
480 if (parentPath != null) return this.isExpanded (parentPath);
482 }, "javax.swing.tree.TreePath");
483 Clazz.defineMethod (c$, "isExpanded",
485 var tree = this.getUI ();
487 var path = tree.getPathForRow (this, row);
489 var value = this.expandedState.get (path);
490 return (value != null && value.booleanValue ());
493 Clazz.defineMethod (c$, "isCollapsed",
495 return !this.isExpanded (path);
496 }, "javax.swing.tree.TreePath");
497 Clazz.defineMethod (c$, "isCollapsed",
499 return !this.isExpanded (row);
501 Clazz.defineMethod (c$, "makeVisible",
504 var parentPath = path.getParentPath ();
505 if (parentPath != null) {
506 this.expandPath (parentPath);
507 }}}, "javax.swing.tree.TreePath");
508 Clazz.defineMethod (c$, "isVisible",
511 var parentPath = path.getParentPath ();
512 if (parentPath != null) return this.isExpanded (parentPath);
515 }, "javax.swing.tree.TreePath");
516 Clazz.defineMethod (c$, "getPathBounds",
518 var tree = this.getUI ();
519 if (tree != null) return tree.getPathBounds (this, path);
521 }, "javax.swing.tree.TreePath");
522 Clazz.defineMethod (c$, "getRowBounds",
524 return this.getPathBounds (this.getPathForRow (row));
526 Clazz.defineMethod (c$, "scrollPathToVisible",
529 this.makeVisible (path);
530 var bounds = this.getPathBounds (path);
531 if (bounds != null) {
532 this.scrollRectToVisible (bounds);
533 }}}, "javax.swing.tree.TreePath");
534 Clazz.defineMethod (c$, "scrollRowToVisible",
536 this.scrollPathToVisible (this.getPathForRow (row));
538 Clazz.defineMethod (c$, "getPathForRow",
540 var tree = this.getUI ();
541 if (tree != null) return tree.getPathForRow (this, row);
544 Clazz.defineMethod (c$, "getRowForPath",
546 var tree = this.getUI ();
547 if (tree != null) return tree.getRowForPath (this, path);
549 }, "javax.swing.tree.TreePath");
550 Clazz.defineMethod (c$, "expandPath",
552 var model = this.getModel ();
553 if (path != null && model != null && !model.isLeaf (path.getLastPathComponent ())) {
554 this.setExpandedState (path, true);
555 }}, "javax.swing.tree.TreePath");
556 Clazz.defineMethod (c$, "expandRow",
558 this.expandPath (this.getPathForRow (row));
560 Clazz.defineMethod (c$, "collapsePath",
562 this.setExpandedState (path, false);
563 }, "javax.swing.tree.TreePath");
564 Clazz.defineMethod (c$, "collapseRow",
566 this.collapsePath (this.getPathForRow (row));
568 Clazz.defineMethod (c$, "getPathForLocation",
570 var closestPath = this.getClosestPathForLocation (x, y);
571 if (closestPath != null) {
572 var pathBounds = this.getPathBounds (closestPath);
573 if (pathBounds != null && x >= pathBounds.x && x < (pathBounds.x + pathBounds.width) && y >= pathBounds.y && y < (pathBounds.y + pathBounds.height)) return closestPath;
576 Clazz.defineMethod (c$, "getRowForLocation",
578 return this.getRowForPath (this.getPathForLocation (x, y));
580 Clazz.defineMethod (c$, "getClosestPathForLocation",
582 var tree = this.getUI ();
583 if (tree != null) return tree.getClosestPathForLocation (this, x, y);
586 Clazz.defineMethod (c$, "getClosestRowForLocation",
588 return this.getRowForPath (this.getClosestPathForLocation (x, y));
590 Clazz.defineMethod (c$, "isEditing",
592 var tree = this.getUI ();
593 if (tree != null) return tree.isEditing (this);
596 Clazz.defineMethod (c$, "stopEditing",
598 var tree = this.getUI ();
599 if (tree != null) return tree.stopEditing (this);
602 Clazz.defineMethod (c$, "cancelEditing",
604 var tree = this.getUI ();
605 if (tree != null) tree.cancelEditing (this);
607 Clazz.defineMethod (c$, "startEditingAtPath",
609 var tree = this.getUI ();
610 if (tree != null) tree.startEditingAtPath (this, path);
611 }, "javax.swing.tree.TreePath");
612 Clazz.defineMethod (c$, "getEditingPath",
614 var tree = this.getUI ();
615 if (tree != null) return tree.getEditingPath (this);
618 Clazz.defineMethod (c$, "setSelectionModel",
619 function (selectionModel) {
620 if (selectionModel == null) selectionModel = javax.swing.JTree.EmptySelectionModel.sharedInstance ();
621 var oldValue = this.selectionModel;
622 if (this.selectionModel != null && this.selectionRedirector != null) {
623 this.selectionModel.removeTreeSelectionListener (this.selectionRedirector);
624 }this.selectionModel = selectionModel;
625 if (this.selectionRedirector != null) {
626 this.selectionModel.addTreeSelectionListener (this.selectionRedirector);
627 }this.firePropertyChangeObject ("selectionModel", oldValue, this.selectionModel);
628 }, "javax.swing.tree.TreeSelectionModel");
629 Clazz.defineMethod (c$, "getSelectionModel",
631 return this.selectionModel;
633 Clazz.defineMethod (c$, "getPathBetweenRows",
634 function (index0, index1) {
637 var tree = this.getUI ();
638 newMinIndex = Math.min (index0, index1);
639 newMaxIndex = Math.max (index0, index1);
641 var selection = new Array (newMaxIndex - newMinIndex + 1);
642 for (var counter = newMinIndex; counter <= newMaxIndex; counter++) {
643 selection[counter - newMinIndex] = tree.getPathForRow (this, counter);
648 Clazz.defineMethod (c$, "setSelectionInterval",
649 function (index0, index1) {
650 var paths = this.getPathBetweenRows (index0, index1);
651 this.getSelectionModel ().setSelectionPaths (paths);
653 Clazz.defineMethod (c$, "addSelectionInterval",
654 function (index0, index1) {
655 var paths = this.getPathBetweenRows (index0, index1);
656 this.getSelectionModel ().addSelectionPaths (paths);
658 Clazz.defineMethod (c$, "removeSelectionInterval",
659 function (index0, index1) {
660 var paths = this.getPathBetweenRows (index0, index1);
661 this.getSelectionModel ().removeSelectionPaths (paths);
663 Clazz.defineMethod (c$, "removeSelectionPath",
665 this.getSelectionModel ().removeSelectionPath (path);
666 }, "javax.swing.tree.TreePath");
667 Clazz.defineMethod (c$, "removeSelectionPaths",
669 this.getSelectionModel ().removeSelectionPaths (paths);
671 Clazz.defineMethod (c$, "removeSelectionRow",
673 var rows = Clazz.newIntArray (-1, [row]);
674 this.removeSelectionRows (rows);
676 Clazz.defineMethod (c$, "removeSelectionRows",
678 var ui = this.getUI ();
679 if (ui != null && rows != null) {
680 var numRows = rows.length;
681 var paths = new Array (numRows);
682 for (var counter = 0; counter < numRows; counter++) paths[counter] = ui.getPathForRow (this, rows[counter]);
684 this.removeSelectionPaths (paths);
686 Clazz.defineMethod (c$, "clearSelection",
688 this.getSelectionModel ().clearSelection ();
690 Clazz.defineMethod (c$, "isSelectionEmpty",
692 return this.getSelectionModel ().isSelectionEmpty ();
694 Clazz.defineMethod (c$, "addTreeExpansionListener",
696 if (this.settingUI) {
697 this.uiTreeExpansionListener = tel;
698 }this.listenerList.add (javax.swing.event.TreeExpansionListener, tel);
699 }, "javax.swing.event.TreeExpansionListener");
700 Clazz.defineMethod (c$, "removeTreeExpansionListener",
702 this.listenerList.remove (javax.swing.event.TreeExpansionListener, tel);
703 if (this.uiTreeExpansionListener === tel) {
704 this.uiTreeExpansionListener = null;
705 }}, "javax.swing.event.TreeExpansionListener");
706 Clazz.defineMethod (c$, "getTreeExpansionListeners",
708 return this.listenerList.getListeners (javax.swing.event.TreeExpansionListener);
710 Clazz.defineMethod (c$, "addTreeWillExpandListener",
712 this.listenerList.add (javax.swing.event.TreeWillExpandListener, tel);
713 }, "javax.swing.event.TreeWillExpandListener");
714 Clazz.defineMethod (c$, "removeTreeWillExpandListener",
716 this.listenerList.remove (javax.swing.event.TreeWillExpandListener, tel);
717 }, "javax.swing.event.TreeWillExpandListener");
718 Clazz.defineMethod (c$, "getTreeWillExpandListeners",
720 return this.listenerList.getListeners (javax.swing.event.TreeWillExpandListener);
722 Clazz.defineMethod (c$, "fireTreeExpanded",
724 var listeners = this.listenerList.getListenerList ();
726 if (this.uiTreeExpansionListener != null) {
727 e = new javax.swing.event.TreeExpansionEvent (this, path);
728 this.uiTreeExpansionListener.treeExpanded (e);
729 }for (var i = listeners.length - 2; i >= 0; i -= 2) {
730 if (listeners[i] === javax.swing.event.TreeExpansionListener && listeners[i + 1] !== this.uiTreeExpansionListener) {
731 if (e == null) e = new javax.swing.event.TreeExpansionEvent (this, path);
732 (listeners[i + 1]).treeExpanded (e);
734 }, "javax.swing.tree.TreePath");
735 Clazz.defineMethod (c$, "fireTreeCollapsed",
737 var listeners = this.listenerList.getListenerList ();
739 if (this.uiTreeExpansionListener != null) {
740 e = new javax.swing.event.TreeExpansionEvent (this, path);
741 this.uiTreeExpansionListener.treeCollapsed (e);
742 }for (var i = listeners.length - 2; i >= 0; i -= 2) {
743 if (listeners[i] === javax.swing.event.TreeExpansionListener && listeners[i + 1] !== this.uiTreeExpansionListener) {
744 if (e == null) e = new javax.swing.event.TreeExpansionEvent (this, path);
745 (listeners[i + 1]).treeCollapsed (e);
747 }, "javax.swing.tree.TreePath");
748 Clazz.defineMethod (c$, "fireTreeWillExpand",
750 var listeners = this.listenerList.getListenerList ();
752 for (var i = listeners.length - 2; i >= 0; i -= 2) {
753 if (listeners[i] === javax.swing.event.TreeWillExpandListener) {
754 if (e == null) e = new javax.swing.event.TreeExpansionEvent (this, path);
755 (listeners[i + 1]).treeWillExpand (e);
757 }, "javax.swing.tree.TreePath");
758 Clazz.defineMethod (c$, "fireTreeWillCollapse",
760 var listeners = this.listenerList.getListenerList ();
762 for (var i = listeners.length - 2; i >= 0; i -= 2) {
763 if (listeners[i] === javax.swing.event.TreeWillExpandListener) {
764 if (e == null) e = new javax.swing.event.TreeExpansionEvent (this, path);
765 (listeners[i + 1]).treeWillCollapse (e);
767 }, "javax.swing.tree.TreePath");
768 Clazz.defineMethod (c$, "addTreeSelectionListener",
770 this.listenerList.add (javax.swing.event.TreeSelectionListener, tsl);
771 if (this.listenerList.getListenerCount (javax.swing.event.TreeSelectionListener) != 0 && this.selectionRedirector == null) {
772 this.selectionRedirector = Clazz.innerTypeInstance (javax.swing.JTree.TreeSelectionRedirector, this, null);
773 this.selectionModel.addTreeSelectionListener (this.selectionRedirector);
774 }}, "javax.swing.event.TreeSelectionListener");
775 Clazz.defineMethod (c$, "removeTreeSelectionListener",
777 this.listenerList.remove (javax.swing.event.TreeSelectionListener, tsl);
778 if (this.listenerList.getListenerCount (javax.swing.event.TreeSelectionListener) == 0 && this.selectionRedirector != null) {
779 this.selectionModel.removeTreeSelectionListener (this.selectionRedirector);
780 this.selectionRedirector = null;
781 }}, "javax.swing.event.TreeSelectionListener");
782 Clazz.defineMethod (c$, "getTreeSelectionListeners",
784 return this.listenerList.getListeners (javax.swing.event.TreeSelectionListener);
786 Clazz.defineMethod (c$, "fireValueChanged",
788 var listeners = this.listenerList.getListenerList ();
789 for (var i = listeners.length - 2; i >= 0; i -= 2) {
790 if (listeners[i] === javax.swing.event.TreeSelectionListener) {
791 (listeners[i + 1]).valueChanged (e);
793 }, "javax.swing.event.TreeSelectionEvent");
794 Clazz.defineMethod (c$, "treeDidChange",
799 Clazz.defineMethod (c$, "setVisibleRowCount",
800 function (newCount) {
801 var oldCount = this.visibleRowCount;
802 this.visibleRowCount = newCount;
803 this.firePropertyChangeInt ("visibleRowCount", oldCount, this.visibleRowCount);
806 Clazz.defineMethod (c$, "getVisibleRowCount",
808 return this.visibleRowCount;
810 Clazz.defineMethod (c$, "expandRoot",
812 var model = this.getModel ();
813 if (model != null && model.getRoot () != null) {
814 this.expandPath ( new javax.swing.tree.TreePath (model.getRoot ()));
816 Clazz.defineMethod (c$, "getNextMatch",
817 function (prefix, startingRow, bias) {
818 var max = this.getRowCount ();
819 if (prefix == null) {
820 throw new IllegalArgumentException ();
821 }if (startingRow < 0 || startingRow >= max) {
822 throw new IllegalArgumentException ();
823 }prefix = prefix.toUpperCase ();
824 var increment = (bias === javax.swing.text.Position.Bias.Forward) ? 1 : -1;
825 var row = startingRow;
827 var path = this.getPathForRow (row);
828 var text = this.convertValueToText (path.getLastPathComponent (), this.isRowSelected (row), this.isExpanded (row), true, row, false);
829 if (text.toUpperCase ().startsWith (prefix)) {
831 }row = (row + increment + max) % max;
832 } while (row != startingRow);
834 }, "~S,~N,javax.swing.text.Position.Bias");
835 Clazz.overrideMethod (c$, "getPreferredScrollableViewportSize",
837 var width = this.getPreferredSize ().width;
838 var visRows = this.getVisibleRowCount ();
840 if (this.isFixedRowHeight ()) height = visRows * this.getRowHeight ();
842 var ui = this.getUI ();
843 if (ui != null && visRows > 0) {
844 var rc = ui.getRowCount (this);
846 var bounds = this.getRowBounds (visRows - 1);
847 if (bounds != null) {
848 height = bounds.y + bounds.height;
849 }} else if (rc > 0) {
850 var bounds = this.getRowBounds (0);
851 if (bounds != null) {
852 height = bounds.height * visRows;
853 }}}if (height == -1) {
854 height = 16 * visRows;
855 }}return new java.awt.Dimension (width, height);
857 Clazz.overrideMethod (c$, "getScrollableUnitIncrement",
858 function (visibleRect, orientation, direction) {
859 if (orientation == 1) {
861 var firstIndex = this.getClosestRowForLocation (0, visibleRect.y);
862 if (firstIndex != -1) {
863 rowBounds = this.getRowBounds (firstIndex);
864 if (rowBounds.y != visibleRect.y) {
866 return Math.max (0, (visibleRect.y - rowBounds.y));
867 }return (rowBounds.y + rowBounds.height - visibleRect.y);
868 }if (direction < 0) {
869 if (firstIndex != 0) {
870 rowBounds = this.getRowBounds (firstIndex - 1);
871 return rowBounds.height;
873 return rowBounds.height;
876 }, "java.awt.Rectangle,~N,~N");
877 Clazz.overrideMethod (c$, "getScrollableBlockIncrement",
878 function (visibleRect, orientation, direction) {
879 return (orientation == 1) ? visibleRect.height : visibleRect.width;
880 }, "java.awt.Rectangle,~N,~N");
881 Clazz.overrideMethod (c$, "getScrollableTracksViewportWidth",
883 if (Clazz.instanceOf (this.getParent (), javax.swing.JViewport)) {
884 return ((this.getParent ()).getWidth () > this.getPreferredSize ().width);
887 Clazz.overrideMethod (c$, "getScrollableTracksViewportHeight",
889 if (Clazz.instanceOf (this.getParent (), javax.swing.JViewport)) {
890 return ((this.getParent ()).getHeight () > this.getPreferredSize ().height);
893 Clazz.defineMethod (c$, "setExpandedState",
894 function (path, state) {
897 var parentPath = path.getParentPath ();
898 if (this.expandedStack.size () == 0) {
899 stack = new java.util.Stack ();
901 stack = this.expandedStack.pop ();
903 while (parentPath != null) {
904 if (this.isExpanded (parentPath)) {
907 stack.push (parentPath);
908 parentPath = parentPath.getParentPath ();
910 for (var counter = stack.size () - 1; counter >= 0; counter--) {
911 parentPath = stack.pop ();
912 if (!this.isExpanded (parentPath)) {
914 this.fireTreeWillExpand (parentPath);
916 if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {
922 this.expandedState.put (parentPath, Boolean.TRUE);
923 this.fireTreeExpanded (parentPath);
926 if (this.expandedStack.size () < javax.swing.JTree.TEMP_STACK_SIZE) {
927 stack.removeAllElements ();
928 this.expandedStack.push (stack);
931 var cValue = this.expandedState.get (path);
932 if (cValue != null && (cValue).booleanValue ()) {
934 this.fireTreeWillCollapse (path);
936 if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {
942 this.expandedState.put (path, Boolean.FALSE);
943 this.fireTreeCollapsed (path);
944 if (this.removeDescendantSelectedPaths (path, false) && !this.isPathSelected (path)) {
945 this.addSelectionPath (path);
947 var cValue = this.expandedState.get (path);
948 if (cValue == null || !(cValue).booleanValue ()) {
950 this.fireTreeWillExpand (path);
952 if (Clazz.exceptionOf (eve, javax.swing.tree.ExpandVetoException)) {
958 this.expandedState.put (path, Boolean.TRUE);
959 this.fireTreeExpanded (path);
960 }}}}, "javax.swing.tree.TreePath,~B");
961 Clazz.defineMethod (c$, "getDescendantToggledPaths",
963 if (parent == null) return null;
964 var descendants = new java.util.Vector ();
965 var nodes = this.expandedState.keys ();
967 while (nodes.hasMoreElements ()) {
968 path = nodes.nextElement ();
969 if (parent.isDescendant (path)) descendants.addElement (path);
971 return descendants.elements ();
972 }, "javax.swing.tree.TreePath");
973 Clazz.defineMethod (c$, "removeDescendantToggledPaths",
974 function (toRemove) {
975 if (toRemove != null) {
976 while (toRemove.hasMoreElements ()) {
977 var descendants = this.getDescendantToggledPaths (toRemove.nextElement ());
978 if (descendants != null) {
979 while (descendants.hasMoreElements ()) {
980 this.expandedState.remove (descendants.nextElement ());
983 }}, "java.util.Enumeration");
984 Clazz.defineMethod (c$, "clearToggledPaths",
986 this.expandedState.clear ();
988 Clazz.defineMethod (c$, "createTreeModelListener",
990 return Clazz.innerTypeInstance (javax.swing.JTree.TreeModelHandler, this, null);
992 Clazz.defineMethod (c$, "removeDescendantSelectedPaths",
993 function (path, includePath) {
994 var toRemove = this.getDescendantSelectedPaths (path, includePath);
995 if (toRemove != null) {
996 this.getSelectionModel ().removeSelectionPaths (toRemove);
999 }, "javax.swing.tree.TreePath,~B");
1000 Clazz.defineMethod (c$, "getDescendantSelectedPaths",
1001 function (path, includePath) {
1002 var sm = this.getSelectionModel ();
1003 var selPaths = (sm != null) ? sm.getSelectionPaths () : null;
1004 if (selPaths != null) {
1005 var shouldRemove = false;
1006 for (var counter = selPaths.length - 1; counter >= 0; counter--) {
1007 if (selPaths[counter] != null && path.isDescendant (selPaths[counter]) && (!path.equals (selPaths[counter]) || includePath)) shouldRemove = true;
1008 else selPaths[counter] = null;
1010 if (!shouldRemove) {
1014 }, "javax.swing.tree.TreePath,~B");
1015 Clazz.defineMethod (c$, "removeDescendantSelectedPaths",
1017 var pPath = e.getTreePath ();
1018 var oldChildren = e.getChildren ();
1019 var sm = this.getSelectionModel ();
1020 if (sm != null && pPath != null && oldChildren != null && oldChildren.length > 0) {
1021 for (var counter = oldChildren.length - 1; counter >= 0; counter--) {
1022 this.removeDescendantSelectedPaths (pPath.pathByAddingChild (oldChildren[counter]), true);
1024 }}, "javax.swing.event.TreeModelEvent");
1025 Clazz.defineMethod (c$, "setUIProperty",
1026 function (propertyName, value) {
1027 if (propertyName === "rowHeight") {
1028 if (!this.rowHeightSet) {
1029 this.setRowHeight ((value).intValue ());
1030 this.rowHeightSet = false;
1031 }} else if (propertyName === "scrollsOnExpand") {
1032 if (!this.scrollsOnExpandSet) {
1033 this.setScrollsOnExpand ((value).booleanValue ());
1034 this.scrollsOnExpandSet = false;
1035 }} else if (propertyName === "showsRootHandles") {
1036 if (!this.showsRootHandlesSet) {
1037 this.setShowsRootHandles ((value).booleanValue ());
1038 this.showsRootHandlesSet = false;
1040 Clazz.superCall (this, javax.swing.JTree, "setUIProperty", [propertyName, value]);
1042 Clazz.defineMethod (c$, "paramString",
1044 var rootVisibleString = (this.rootVisible ? "true" : "false");
1045 var showsRootHandlesString = (this.showsRootHandles ? "true" : "false");
1046 var editableString = (this.editable ? "true" : "false");
1047 var largeModelString = (this.largeModel ? "true" : "false");
1048 var invokesStopCellEditingString = (this.invokesStopCellEditing ? "true" : "false");
1049 var scrollsOnExpandString = (this.scrollsOnExpand ? "true" : "false");
1050 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;
1052 c$.$JTree$TreeSelectionRedirector$ = function () {
1053 Clazz.pu$h(self.c$);
1054 c$ = Clazz.decorateAsClass (function () {
1055 Clazz.prepareCallback (this, arguments);
1056 Clazz.instantialize (this, arguments);
1057 }, javax.swing.JTree, "TreeSelectionRedirector", null, javax.swing.event.TreeSelectionListener);
1058 Clazz.overrideMethod (c$, "valueChanged",
1061 b = a.cloneWithSource (this.b$["javax.swing.JTree"]);
1062 this.b$["javax.swing.JTree"].fireValueChanged (b);
1063 }, "javax.swing.event.TreeSelectionEvent");
1066 c$.$JTree$TreeModelHandler$ = function () {
1067 Clazz.pu$h(self.c$);
1068 c$ = Clazz.decorateAsClass (function () {
1069 Clazz.prepareCallback (this, arguments);
1070 Clazz.instantialize (this, arguments);
1071 }, javax.swing.JTree, "TreeModelHandler", null, javax.swing.event.TreeModelListener);
1072 Clazz.overrideMethod (c$, "treeNodesChanged",
1074 }, "javax.swing.event.TreeModelEvent");
1075 Clazz.overrideMethod (c$, "treeNodesInserted",
1077 }, "javax.swing.event.TreeModelEvent");
1078 Clazz.overrideMethod (c$, "treeStructureChanged",
1080 if (a == null) return;
1081 var b = a.getTreePath ();
1082 if (b == null) return;
1083 if (b.getPathCount () == 1) {
1084 this.b$["javax.swing.JTree"].clearToggledPaths ();
1085 if (this.b$["javax.swing.JTree"].treeModel.getRoot () != null && !this.b$["javax.swing.JTree"].treeModel.isLeaf (this.b$["javax.swing.JTree"].treeModel.getRoot ())) {
1086 this.b$["javax.swing.JTree"].expandedState.put (b, Boolean.TRUE);
1087 }} else if (this.b$["javax.swing.JTree"].expandedState.get (b) != null) {
1088 var c = new java.util.Vector (1);
1089 var d = this.b$["javax.swing.JTree"].isExpanded (b);
1091 this.b$["javax.swing.JTree"].removeDescendantToggledPaths (c.elements ());
1093 var e = this.b$["javax.swing.JTree"].getModel ();
1094 if (e == null || e.isLeaf (b.getLastPathComponent ())) this.b$["javax.swing.JTree"].collapsePath (b);
1095 else this.b$["javax.swing.JTree"].expandedState.put (b, Boolean.TRUE);
1096 }}this.b$["javax.swing.JTree"].removeDescendantSelectedPaths (b, false);
1097 }, "javax.swing.event.TreeModelEvent");
1098 Clazz.overrideMethod (c$, "treeNodesRemoved",
1100 if (a == null) return;
1101 var b = a.getTreePath ();
1102 var c = a.getChildren ();
1103 if (c == null) return;
1105 var e = new java.util.Vector (Math.max (1, c.length));
1106 for (var f = c.length - 1; f >= 0; f--) {
1107 d = b.pathByAddingChild (c[f]);
1108 if (this.b$["javax.swing.JTree"].expandedState.get (d) != null) e.addElement (d);
1110 if (e.size () > 0) this.b$["javax.swing.JTree"].removeDescendantToggledPaths (e.elements ());
1111 var g = this.b$["javax.swing.JTree"].getModel ();
1112 if (g == null || g.isLeaf (b.getLastPathComponent ())) this.b$["javax.swing.JTree"].expandedState.remove (b);
1113 this.b$["javax.swing.JTree"].removeDescendantSelectedPaths (a);
1114 }, "javax.swing.event.TreeModelEvent");
1117 Clazz.pu$h(self.c$);
1118 c$ = Clazz.declareType (javax.swing.JTree, "EmptySelectionModel", javax.swing.tree.DefaultTreeSelectionModel);
1119 c$.sharedInstance = Clazz.defineMethod (c$, "sharedInstance",
1121 return javax.swing.JTree.EmptySelectionModel.$sharedInstance;
1123 Clazz.overrideMethod (c$, "setSelectionPaths",
1126 Clazz.overrideMethod (c$, "addSelectionPaths",
1129 Clazz.overrideMethod (c$, "removeSelectionPaths",
1132 c$.$sharedInstance = c$.prototype.$sharedInstance = new javax.swing.JTree.EmptySelectionModel ();
1134 Clazz.pu$h(self.c$);
1135 c$ = Clazz.decorateAsClass (function () {
1136 this.hasChildren = false;
1137 this.childValue = null;
1138 this.loadedChildren = false;
1139 Clazz.instantialize (this, arguments);
1140 }, javax.swing.JTree, "DynamicUtilTreeNode", javax.swing.tree.DefaultMutableTreeNode);
1141 c$.createChildren = Clazz.defineMethod (c$, "createChildren",
1143 if (Clazz.instanceOf (b, java.util.Vector)) {
1145 for (var d = 0, e = c.size (); d < e; d++) a.add ( new javax.swing.JTree.DynamicUtilTreeNode (c.elementAt (d), c.elementAt (d)));
1147 } else if (Clazz.instanceOf (b, java.util.Hashtable)) {
1151 while (d.hasMoreElements ()) {
1152 e = d.nextElement ();
1153 a.add ( new javax.swing.JTree.DynamicUtilTreeNode (e, c.get (e)));
1155 } else if (Clazz.instanceOf (b, Array)) {
1157 for (var d = 0, e = c.length; d < e; d++) a.add ( new javax.swing.JTree.DynamicUtilTreeNode (c[d], c[d]));
1159 }}, "javax.swing.tree.DefaultMutableTreeNode,~O");
1160 Clazz.makeConstructor (c$,
1162 Clazz.superConstructor (this, javax.swing.JTree.DynamicUtilTreeNode, [a]);
1163 this.loadedChildren = false;
1164 this.childValue = b;
1166 if (Clazz.instanceOf (b, java.util.Vector)) this.setAllowsChildren (true);
1167 else if (Clazz.instanceOf (b, java.util.Hashtable)) this.setAllowsChildren (true);
1168 else if (Clazz.instanceOf (b, Array)) this.setAllowsChildren (true);
1169 else this.setAllowsChildren (false);
1170 } else this.setAllowsChildren (false);
1172 Clazz.overrideMethod (c$, "isLeaf",
1174 return !this.getAllowsChildren ();
1176 Clazz.defineMethod (c$, "getChildCount",
1178 if (!this.loadedChildren) this.loadChildren ();
1179 return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "getChildCount", []);
1181 Clazz.defineMethod (c$, "loadChildren",
1183 this.loadedChildren = true;
1184 javax.swing.JTree.DynamicUtilTreeNode.createChildren (this, this.childValue);
1186 Clazz.defineMethod (c$, "getChildAt",
1188 if (!this.loadedChildren) this.loadChildren ();
1189 return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "getChildAt", [a]);
1191 Clazz.defineMethod (c$, "children",
1193 if (!this.loadedChildren) this.loadChildren ();
1194 return Clazz.superCall (this, javax.swing.JTree.DynamicUtilTreeNode, "children", []);
1197 Clazz.defineStatics (c$,
1198 "$uiClassID", "TreeUI",
1199 "TEMP_STACK_SIZE", 11,
1200 "CELL_RENDERER_PROPERTY", "cellRenderer",
1201 "TREE_MODEL_PROPERTY", "model",
1202 "ROOT_VISIBLE_PROPERTY", "rootVisible",
1203 "SHOWS_ROOT_HANDLES_PROPERTY", "showsRootHandles",
1204 "ROW_HEIGHT_PROPERTY", "rowHeight",
1205 "CELL_EDITOR_PROPERTY", "cellEditor",
1206 "EDITABLE_PROPERTY", "editable",
1207 "LARGE_MODEL_PROPERTY", "largeModel",
1208 "SELECTION_MODEL_PROPERTY", "selectionModel",
1209 "VISIBLE_ROW_COUNT_PROPERTY", "visibleRowCount",
1210 "INVOKES_STOP_CELL_EDITING_PROPERTY", "invokesStopCellEditing",
1211 "SCROLLS_ON_EXPAND_PROPERTY", "scrollsOnExpand",
1212 "TOGGLE_CLICK_COUNT_PROPERTY", "toggleClickCount",
1213 "LEAD_SELECTION_PATH_PROPERTY", "leadSelectionPath",
1214 "ANCHOR_SELECTION_PATH_PROPERTY", "anchorSelectionPath",
1215 "EXPANDS_SELECTED_PATHS_PROPERTY", "expandsSelectedPaths");