188ffe5ad2b9aa14a5217a7652a85eda7f50b893
[jalviewjs.git] / site / swingjs / j2s / javax / swing / tree / DefaultTreeCellEditor.js
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
9 this.offset = 0;\r
10 this.tree = null;\r
11 this.lastPath = null;\r
12 this.lastRow = 0;\r
13 this.borderSelectionColor = null;\r
14 this.editingIcon = null;\r
15 this.font = null;\r
16 if (!Clazz.isClassDefined ("javax.swing.tree.DefaultTreeCellEditor.DefaultTextField")) {\r
17 javax.swing.tree.DefaultTreeCellEditor.$DefaultTreeCellEditor$DefaultTextField$ ();\r
18 }\r
19 if (!Clazz.isClassDefined ("javax.swing.tree.DefaultTreeCellEditor.EditorContainer")) {\r
20 javax.swing.tree.DefaultTreeCellEditor.$DefaultTreeCellEditor$EditorContainer$ ();\r
21 }\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
42 function () {\r
43 return this.borderSelectionColor;\r
44 });\r
45 Clazz.defineMethod (c$, "setFont", \r
46 function (font) {\r
47 this.font = font;\r
48 }, "java.awt.Font");\r
49 Clazz.defineMethod (c$, "getFont", \r
50 function () {\r
51 return this.font;\r
52 });\r
53 Clazz.defineMethod (c$, "getTreeCellEditorComponent", \r
54 function (tree, value, isSelected, expanded, leaf, row) {\r
55 this.setTree (tree);\r
56 this.lastRow = row;\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
64 if (font == null) {\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
72 function () {\r
73 return this.realEditor.getCellEditorValue ();\r
74 });\r
75 Clazz.defineMethod (c$, "isCellEditable", \r
76 function (event) {\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
85 if (path != null) {\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
98 return retValue;\r
99 }, "java.util.EventObject");\r
100 Clazz.defineMethod (c$, "shouldSelectCell", \r
101 function (event) {\r
102 return this.realEditor.shouldSelectCell (event);\r
103 }, "java.util.EventObject");\r
104 Clazz.defineMethod (c$, "stopCellEditing", \r
105 function () {\r
106 if (this.realEditor.stopCellEditing ()) {\r
107 this.cleanupAfterEditing ();\r
108 return true;\r
109 }return false;\r
110 });\r
111 Clazz.defineMethod (c$, "cancelCellEditing", \r
112 function () {\r
113 this.realEditor.cancelCellEditing ();\r
114 this.cleanupAfterEditing ();\r
115 });\r
116 Clazz.defineMethod (c$, "addCellEditorListener", \r
117 function (l) {\r
118 this.realEditor.addCellEditorListener (l);\r
119 }, "javax.swing.event.CellEditorListener");\r
120 Clazz.defineMethod (c$, "removeCellEditorListener", \r
121 function (l) {\r
122 this.realEditor.removeCellEditorListener (l);\r
123 }, "javax.swing.event.CellEditorListener");\r
124 Clazz.defineMethod (c$, "getCellEditorListeners", \r
125 function () {\r
126 return (this.realEditor).getCellEditorListeners ();\r
127 });\r
128 Clazz.overrideMethod (c$, "valueChanged", \r
129 function (e) {\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
135 function (e) {\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
147 function (event) {\r
148 if ((Clazz.instanceOf (event, java.awt.event.MouseEvent)) && javax.swing.SwingUtilities.isLeftMouseButton (event)) {\r
149 var me = event;\r
150 return (me.getClickCount () == 1 && this.inHitRegion (me.getX (), me.getY ()));\r
151 }return false;\r
152 }, "java.util.EventObject");\r
153 Clazz.defineMethod (c$, "startEditingTimer", \r
154 function () {\r
155 });\r
156 Clazz.defineMethod (c$, "canEditImmediately", \r
157 function (event) {\r
158 if ((Clazz.instanceOf (event, java.awt.event.MouseEvent)) && javax.swing.SwingUtilities.isLeftMouseButton (event)) {\r
159 var me = 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
164 function (x, y) {\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
170 return false;\r
171 }} else if (bounds != null && (x >= (bounds.x + bounds.width - this.offset + 5) || x <= (bounds.x + 5)) && this.offset < (bounds.width - 5)) {\r
172 return false;\r
173 }}return true;\r
174 }, "~N,~N");\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
183 } else {\r
184 this.editingIcon = null;\r
185 this.offset = 0;\r
186 }}, "javax.swing.JTree,~O,~B,~B,~B,~N");\r
187 Clazz.defineMethod (c$, "prepareForEditing", \r
188 function () {\r
189 if (this.editingComponent != null) {\r
190 this.editingContainer.add (this.editingComponent);\r
191 }});\r
192 Clazz.defineMethod (c$, "createContainer", \r
193 function () {\r
194 return Clazz.innerTypeInstance (javax.swing.tree.DefaultTreeCellEditor.EditorContainer, this, null);\r
195 });\r
196 Clazz.defineMethod (c$, "createTreeCellEditor", \r
197 function () {\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
201 return editor;\r
202 });\r
203 Clazz.defineMethod (c$, "cleanupAfterEditing", \r
204  function () {\r
205 if (this.editingComponent != null) {\r
206 this.editingContainer.remove (this.editingComponent);\r
207 }this.editingComponent = null;\r
208 });\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
217 function (a) {\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
222 function (a) {\r
223 Clazz.superCall (this, javax.swing.tree.DefaultTreeCellEditor.DefaultTextField, "setBorder", [a]);\r
224 this.$border = a;\r
225 }, "javax.swing.border.Border");\r
226 Clazz.overrideMethod (c$, "getBorder", \r
227 function () {\r
228 return this.$border;\r
229 });\r
230 Clazz.defineMethod (c$, "getFont", \r
231 function () {\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
236 }return a;\r
237 });\r
238 Clazz.overrideMethod (c$, "getPreferredSize", \r
239 function () {\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
244 }return a;\r
245 });\r
246 c$ = Clazz.p0p ();\r
247 };\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
255 function () {\r
256 Clazz.superConstructor (this, javax.swing.tree.DefaultTreeCellEditor.EditorContainer, []);\r
257 this.setLayout (null);\r
258 });\r
259 Clazz.defineMethod (c$, "paint", \r
260 function (a) {\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
267 } else {\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
270 if (d != null) {\r
271 a.setColor (d);\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
276 function () {\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
282 } else {\r
283 this.b$["javax.swing.tree.DefaultTreeCellEditor"].editingComponent.setBounds (0, 0, a - this.b$["javax.swing.tree.DefaultTreeCellEditor"].offset, b);\r
284 }}});\r
285 Clazz.defineMethod (c$, "calculateIconY", \r
286  function (a) {\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
295 function () {\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
303 return a;\r
304 }return  new java.awt.Dimension (0, 0);\r
305 });\r
306 c$ = Clazz.p0p ();\r
307 };\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
312 function (event) {\r
313 var retValue = Clazz.superCall (this, javax.swing.tree.DefaultTreeCellEditor$1, "shouldSelectCell", [event]);\r
314 return retValue;\r
315 }, "java.util.EventObject");\r
316 c$ = Clazz.p0p ();\r
317 };\r
318 });\r