1 Clazz.declarePackage ("javax.swing.tree");
\r
2 Clazz.load (["java.awt.Container", "java.awt.event.ActionListener", "javax.swing.JTextField", "javax.swing.event.TreeSelectionListener", "javax.swing.tree.TreeCellEditor"], "javax.swing.tree.DefaultTreeCellEditor", ["java.awt.Dimension", "java.awt.event.MouseEvent", "javax.swing.DefaultCellEditor", "$.JTree", "$.SwingUtilities", "$.UIManager", "javax.swing.plaf.FontUIResource"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.realEditor = null;
\r
5 this.renderer = null;
\r
6 this.editingContainer = null;
\r
7 this.editingComponent = null;
\r
8 this.canEdit = false;
\r
11 this.lastPath = null;
\r
13 this.borderSelectionColor = null;
\r
14 this.editingIcon = null;
\r
16 if (!Clazz.isClassDefined ("javax.swing.tree.DefaultTreeCellEditor.DefaultTextField")) {
\r
17 javax.swing.tree.DefaultTreeCellEditor.$DefaultTreeCellEditor$DefaultTextField$ ();
\r
19 if (!Clazz.isClassDefined ("javax.swing.tree.DefaultTreeCellEditor.EditorContainer")) {
\r
20 javax.swing.tree.DefaultTreeCellEditor.$DefaultTreeCellEditor$EditorContainer$ ();
\r
22 Clazz.instantialize (this, arguments);
\r
23 }, javax.swing.tree, "DefaultTreeCellEditor", null, [java.awt.event.ActionListener, javax.swing.tree.TreeCellEditor, javax.swing.event.TreeSelectionListener]);
\r
24 Clazz.makeConstructor (c$,
\r
25 function (tree, renderer) {
\r
26 this.construct (tree, renderer, null);
\r
27 }, "javax.swing.JTree,javax.swing.tree.DefaultTreeCellRenderer");
\r
28 Clazz.makeConstructor (c$,
\r
29 function (tree, renderer, editor) {
\r
30 this.renderer = renderer;
\r
31 this.realEditor = editor;
\r
32 if (this.realEditor == null) this.realEditor = this.createTreeCellEditor ();
\r
33 this.editingContainer = this.createContainer ();
\r
34 this.setTree (tree);
\r
35 this.setBorderSelectionColor (javax.swing.UIManager.getColor ("Tree.editorBorderSelectionColor"));
\r
36 }, "javax.swing.JTree,javax.swing.tree.DefaultTreeCellRenderer,javax.swing.tree.TreeCellEditor");
\r
37 Clazz.defineMethod (c$, "setBorderSelectionColor",
\r
38 function (newColor) {
\r
39 this.borderSelectionColor = newColor;
\r
40 }, "java.awt.Color");
\r
41 Clazz.defineMethod (c$, "getBorderSelectionColor",
\r
43 return this.borderSelectionColor;
\r
45 Clazz.defineMethod (c$, "setFont",
\r
48 }, "java.awt.Font");
\r
49 Clazz.defineMethod (c$, "getFont",
\r
53 Clazz.defineMethod (c$, "getTreeCellEditorComponent",
\r
54 function (tree, value, isSelected, expanded, leaf, row) {
\r
55 this.setTree (tree);
\r
57 this.determineOffset (tree, value, isSelected, expanded, leaf, row);
\r
58 if (this.editingComponent != null) {
\r
59 this.editingContainer.remove (this.editingComponent);
\r
60 }this.editingComponent = this.realEditor.getTreeCellEditorComponent (tree, value, isSelected, expanded, leaf, row);
\r
61 var newPath = tree.getPathForRow (row);
\r
62 this.canEdit = (this.lastPath != null && newPath != null && this.lastPath.equals (newPath));
\r
63 var font = this.getFont ();
\r
65 if (this.renderer != null) font = this.renderer.getFont ();
\r
66 if (font == null) font = tree.getFont ();
\r
67 }this.editingContainer.setFont (font);
\r
68 this.prepareForEditing ();
\r
69 return this.editingContainer;
\r
70 }, "javax.swing.JTree,~O,~B,~B,~B,~N");
\r
71 Clazz.defineMethod (c$, "getCellEditorValue",
\r
73 return this.realEditor.getCellEditorValue ();
\r
75 Clazz.defineMethod (c$, "isCellEditable",
\r
77 var retValue = false;
\r
78 var editable = false;
\r
79 if (event != null) {
\r
80 if (Clazz.instanceOf (event.getSource (), javax.swing.JTree)) {
\r
81 this.setTree (event.getSource ());
\r
82 if (Clazz.instanceOf (event, java.awt.event.MouseEvent)) {
\r
83 var path = this.tree.getPathForLocation ((event).getX (), (event).getY ());
\r
84 editable = (this.lastPath != null && path != null && this.lastPath.equals (path));
\r
86 this.lastRow = this.tree.getRowForPath (path);
\r
87 var value = path.getLastPathComponent ();
\r
88 var isSelected = this.tree.isRowSelected (this.lastRow);
\r
89 var expanded = this.tree.isExpanded (path);
\r
90 var treeModel = this.tree.getModel ();
\r
91 var leaf = treeModel.isLeaf (value);
\r
92 this.determineOffset (this.tree, value, isSelected, expanded, leaf, this.lastRow);
\r
93 }}}}if (!this.realEditor.isCellEditable (event)) return false;
\r
94 if (this.canEditImmediately (event)) retValue = true;
\r
95 else if (editable && this.shouldStartEditingTimer (event)) {
\r
96 this.startEditingTimer ();
\r
97 }if (retValue) this.prepareForEditing ();
\r
99 }, "java.util.EventObject");
\r
100 Clazz.defineMethod (c$, "shouldSelectCell",
\r
102 return this.realEditor.shouldSelectCell (event);
\r
103 }, "java.util.EventObject");
\r
104 Clazz.defineMethod (c$, "stopCellEditing",
\r
106 if (this.realEditor.stopCellEditing ()) {
\r
107 this.cleanupAfterEditing ();
\r
111 Clazz.defineMethod (c$, "cancelCellEditing",
\r
113 this.realEditor.cancelCellEditing ();
\r
114 this.cleanupAfterEditing ();
\r
116 Clazz.defineMethod (c$, "addCellEditorListener",
\r
118 this.realEditor.addCellEditorListener (l);
\r
119 }, "javax.swing.event.CellEditorListener");
\r
120 Clazz.defineMethod (c$, "removeCellEditorListener",
\r
122 this.realEditor.removeCellEditorListener (l);
\r
123 }, "javax.swing.event.CellEditorListener");
\r
124 Clazz.defineMethod (c$, "getCellEditorListeners",
\r
126 return (this.realEditor).getCellEditorListeners ();
\r
128 Clazz.overrideMethod (c$, "valueChanged",
\r
130 if (this.tree != null) {
\r
131 if (this.tree.getSelectionCount () == 1) this.lastPath = this.tree.getSelectionPath ();
\r
132 else this.lastPath = null;
\r
133 }}, "javax.swing.event.TreeSelectionEvent");
\r
134 Clazz.overrideMethod (c$, "actionPerformed",
\r
136 if (this.tree != null && this.lastPath != null) {
\r
137 this.tree.startEditingAtPath (this.lastPath);
\r
138 }}, "java.awt.event.ActionEvent");
\r
139 Clazz.defineMethod (c$, "setTree",
\r
140 function (newTree) {
\r
141 if (this.tree !== newTree) {
\r
142 if (this.tree != null) this.tree.removeTreeSelectionListener (this);
\r
143 this.tree = newTree;
\r
144 if (this.tree != null) this.tree.addTreeSelectionListener (this);
\r
145 }}, "javax.swing.JTree");
\r
146 Clazz.defineMethod (c$, "shouldStartEditingTimer",
\r
148 if ((Clazz.instanceOf (event, java.awt.event.MouseEvent)) && javax.swing.SwingUtilities.isLeftMouseButton (event)) {
\r
150 return (me.getClickCount () == 1 && this.inHitRegion (me.getX (), me.getY ()));
\r
152 }, "java.util.EventObject");
\r
153 Clazz.defineMethod (c$, "startEditingTimer",
\r
156 Clazz.defineMethod (c$, "canEditImmediately",
\r
158 if ((Clazz.instanceOf (event, java.awt.event.MouseEvent)) && javax.swing.SwingUtilities.isLeftMouseButton (event)) {
\r
160 return ((me.getClickCount () > 2) && this.inHitRegion (me.getX (), me.getY ()));
\r
161 }return (event == null);
\r
162 }, "java.util.EventObject");
\r
163 Clazz.defineMethod (c$, "inHitRegion",
\r
165 if (this.lastRow != -1 && this.tree != null) {
\r
166 var bounds = this.tree.getRowBounds (this.lastRow);
\r
167 var treeOrientation = this.tree.getComponentOrientation ();
\r
168 if (treeOrientation.isLeftToRight ()) {
\r
169 if (bounds != null && x <= (bounds.x + this.offset) && this.offset < (bounds.width - 5)) {
\r
171 }} else if (bounds != null && (x >= (bounds.x + bounds.width - this.offset + 5) || x <= (bounds.x + 5)) && this.offset < (bounds.width - 5)) {
\r
175 Clazz.defineMethod (c$, "determineOffset",
\r
176 function (tree, value, isSelected, expanded, leaf, row) {
\r
177 if (this.renderer != null) {
\r
178 if (leaf) this.editingIcon = this.renderer.getLeafIcon ();
\r
179 else if (expanded) this.editingIcon = this.renderer.getOpenIcon ();
\r
180 else this.editingIcon = this.renderer.getClosedIcon ();
\r
181 if (this.editingIcon != null) this.offset = this.renderer.getIconTextGap () + this.editingIcon.getIconWidth ();
\r
182 else this.offset = this.renderer.getIconTextGap ();
\r
184 this.editingIcon = null;
\r
186 }}, "javax.swing.JTree,~O,~B,~B,~B,~N");
\r
187 Clazz.defineMethod (c$, "prepareForEditing",
\r
189 if (this.editingComponent != null) {
\r
190 this.editingContainer.add (this.editingComponent);
\r
192 Clazz.defineMethod (c$, "createContainer",
\r
194 return Clazz.innerTypeInstance (javax.swing.tree.DefaultTreeCellEditor.EditorContainer, this, null);
\r
196 Clazz.defineMethod (c$, "createTreeCellEditor",
\r
198 var aBorder = javax.swing.UIManager.getBorder ("Tree.editorBorder");
\r
199 var editor = ((Clazz.isClassDefined ("javax.swing.tree.DefaultTreeCellEditor$1") ? 0 : javax.swing.tree.DefaultTreeCellEditor.$DefaultTreeCellEditor$1$ ()), Clazz.innerTypeInstance (javax.swing.tree.DefaultTreeCellEditor$1, this, null, Clazz.innerTypeInstance (javax.swing.tree.DefaultTreeCellEditor.DefaultTextField, this, null, aBorder)));
\r
200 editor.setClickCountToStart (1);
\r
203 Clazz.defineMethod (c$, "cleanupAfterEditing",
\r
205 if (this.editingComponent != null) {
\r
206 this.editingContainer.remove (this.editingComponent);
\r
207 }this.editingComponent = null;
\r
209 c$.$DefaultTreeCellEditor$DefaultTextField$ = function () {
\r
210 Clazz.pu$h(self.c$);
\r
211 c$ = Clazz.decorateAsClass (function () {
\r
212 Clazz.prepareCallback (this, arguments);
\r
213 this.$border = null;
\r
214 Clazz.instantialize (this, arguments);
\r
215 }, javax.swing.tree.DefaultTreeCellEditor, "DefaultTextField", javax.swing.JTextField);
\r
216 Clazz.makeConstructor (c$,
\r
218 Clazz.superConstructor (this, javax.swing.tree.DefaultTreeCellEditor.DefaultTextField, []);
\r
219 this.setBorder (a);
\r
220 }, "javax.swing.border.Border");
\r
221 Clazz.defineMethod (c$, "setBorder",
\r
223 Clazz.superCall (this, javax.swing.tree.DefaultTreeCellEditor.DefaultTextField, "setBorder", [a]);
\r
225 }, "javax.swing.border.Border");
\r
226 Clazz.overrideMethod (c$, "getBorder",
\r
228 return this.$border;
\r
230 Clazz.defineMethod (c$, "getFont",
\r
232 var a = Clazz.superCall (this, javax.swing.tree.DefaultTreeCellEditor.DefaultTextField, "getFont", []);
\r
233 if (Clazz.instanceOf (a, javax.swing.plaf.FontUIResource)) {
\r
234 var b = this.getParent ();
\r
235 if (b != null && b.getFont () != null) a = b.getFont ();
\r
238 Clazz.overrideMethod (c$, "getPreferredSize",
\r
240 var a = this.getPrefSizeJTF ();
\r
241 if (this.b$["javax.swing.tree.DefaultTreeCellEditor"].renderer != null && this.b$["javax.swing.tree.DefaultTreeCellEditor"].getFont () == null) {
\r
242 var b = this.b$["javax.swing.tree.DefaultTreeCellEditor"].renderer.getPreferredSize ();
\r
243 a.height = b.height;
\r
248 c$.$DefaultTreeCellEditor$EditorContainer$ = function () {
\r
249 Clazz.pu$h(self.c$);
\r
250 c$ = Clazz.decorateAsClass (function () {
\r
251 Clazz.prepareCallback (this, arguments);
\r
252 Clazz.instantialize (this, arguments);
\r
253 }, javax.swing.tree.DefaultTreeCellEditor, "EditorContainer", java.awt.Container);
\r
254 Clazz.makeConstructor (c$,
\r
256 Clazz.superConstructor (this, javax.swing.tree.DefaultTreeCellEditor.EditorContainer, []);
\r
257 this.setLayout (null);
\r
259 Clazz.defineMethod (c$, "paint",
\r
261 var b = this.getWidth ();
\r
262 var c = this.getHeight ();
\r
263 if (this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon != null) {
\r
264 var d = this.calculateIconY (this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon);
\r
265 if (this.getComponentOrientation ().isLeftToRight ()) {
\r
266 this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon.paintIcon (this, a, 0, d);
\r
268 this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon.paintIcon (this, a, b - this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon.getIconWidth (), d);
\r
269 }}var d = this.b$["javax.swing.tree.DefaultTreeCellEditor"].getBorderSelectionColor ();
\r
272 a.drawRect (0, 0, b - 1, c - 1);
\r
273 }Clazz.superCall (this, javax.swing.tree.DefaultTreeCellEditor.EditorContainer, "paint", [a]);
\r
274 }, "java.awt.Graphics");
\r
275 Clazz.overrideMethod (c$, "doLayout",
\r
277 if (this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent != null) {
\r
278 var a = this.getWidth ();
\r
279 var b = this.getHeight ();
\r
280 if (this.getComponentOrientation ().isLeftToRight ()) {
\r
281 this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent.setBounds (this.b$["javax.swing.tree.DefaultTreeCellEditor"].offset, 0, a - this.b$["javax.swing.tree.DefaultTreeCellEditor"].offset, b);
\r
283 this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent.setBounds (0, 0, a - this.b$["javax.swing.tree.DefaultTreeCellEditor"].offset, b);
\r
285 Clazz.defineMethod (c$, "calculateIconY",
\r
287 var b = a.getIconHeight ();
\r
288 var c = this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent.getFontMetrics (this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent.getFont ()).getHeight ();
\r
289 var d = Clazz.doubleToInt (b / 2) - Clazz.doubleToInt (c / 2);
\r
290 var e = Math.min (0, d);
\r
291 var f = Math.max (b, d + c) - e;
\r
292 return Clazz.doubleToInt (this.getHeight () / 2) - (e + (Clazz.doubleToInt (f / 2)));
\r
293 }, "javax.swing.Icon");
\r
294 Clazz.overrideMethod (c$, "getPreferredSize",
\r
296 if (this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent != null) {
\r
297 var a = this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent.getPreferredSize ();
\r
298 a.width += this.b$["javax.swing.tree.DefaultTreeCellEditor"].offset + 5;
\r
299 var b = (this.b$["javax.swing.tree.DefaultTreeCellEditor"].renderer != null) ? this.b$["javax.swing.tree.DefaultTreeCellEditor"].renderer.getPreferredSize () : null;
\r
300 if (b != null) a.height = Math.max (a.height, b.height);
\r
301 if (this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon != null) a.height = Math.max (a.height, this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingIcon.getIconHeight ());
\r
302 a.width = Math.max (a.width, 100);
\r
304 }return new java.awt.Dimension (0, 0);
\r
308 c$.$DefaultTreeCellEditor$1$ = function () {
\r
309 Clazz.pu$h(self.c$);
\r
310 c$ = Clazz.declareAnonymous (javax.swing.tree, "DefaultTreeCellEditor$1", javax.swing.DefaultCellEditor);
\r
311 Clazz.defineMethod (c$, "shouldSelectCell",
\r
313 var retValue = Clazz.superCall (this, javax.swing.tree.DefaultTreeCellEditor$1, "shouldSelectCell", [event]);
\r
315 }, "java.util.EventObject");
\r