59c579e345ac757af3edd58a5d704b070ca8581b
[jalviewjs.git] / site / swingjs / j2s / javax / swing / JComboBox.js
1 Clazz.declarePackage ("javax.swing");
2 Clazz.load (["java.awt.ItemSelectable", "java.awt.event.ActionListener", "javax.swing.ActionPropertyChangeListener", "$.JComponent", "javax.swing.event.ListDataListener", "javax.swing.JPopupMenu"], "javax.swing.JComboBox", ["java.lang.IllegalArgumentException", "$.RuntimeException", "java.awt.Component", "$.EventQueue", "java.awt.event.ActionEvent", "$.InputEvent", "$.ItemEvent", "$.ItemListener", "javax.swing.AbstractAction", "$.DefaultComboBoxModel", "$.MutableComboBoxModel", "$.SwingUtilities", "$.UIManager", "javax.swing.event.AncestorListener", "$.PopupMenuEvent", "$.PopupMenuListener"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.dataModel = null;
5 this.renderer = null;
6 this.editor = null;
7 this.maximumRowCount = 8;
8 this.$isEditable = false;
9 this.keySelectionManager = null;
10 this.actionCommand = "comboBoxChanged";
11 this.lightWeightPopupEnabled = false;
12 this.selectedItemReminder = null;
13 this.prototypeDisplayValue = null;
14 this.firingActionEvent = false;
15 this.selectingItem = false;
16 this.$action = null;
17 this.actionPropertyChangeListener = null;
18 if (!Clazz.isClassDefined ("javax.swing.JComboBox.DefaultKeySelectionManager")) {
19 javax.swing.JComboBox.$JComboBox$DefaultKeySelectionManager$ ();
20 }
21 Clazz.instantialize (this, arguments);
22 }, javax.swing, "JComboBox", javax.swing.JComponent, [java.awt.ItemSelectable, javax.swing.event.ListDataListener, java.awt.event.ActionListener]);
23 Clazz.prepareFields (c$, function () {
24 this.lightWeightPopupEnabled = javax.swing.JPopupMenu.getDefaultLightWeightPopupEnabled ();
25 });
26 Clazz.makeConstructor (c$, 
27 function (aModel) {
28 Clazz.superConstructor (this, javax.swing.JComboBox);
29 this.setModel (aModel);
30 this.init ();
31 }, "javax.swing.ComboBoxModel");
32 Clazz.makeConstructor (c$, 
33 function (items) {
34 Clazz.superConstructor (this, javax.swing.JComboBox);
35 this.setModel ( new javax.swing.DefaultComboBoxModel (items));
36 this.init ();
37 }, "~A");
38 Clazz.makeConstructor (c$, 
39 function (items) {
40 Clazz.superConstructor (this, javax.swing.JComboBox);
41 this.setModel ( new javax.swing.DefaultComboBoxModel (items));
42 this.init ();
43 }, "java.util.Vector");
44 Clazz.makeConstructor (c$, 
45 function () {
46 Clazz.superConstructor (this, javax.swing.JComboBox);
47 this.setModel ( new javax.swing.DefaultComboBoxModel ());
48 this.init ();
49 });
50 Clazz.defineMethod (c$, "init", 
51  function () {
52 this.installAncestorListener ();
53 this.setUIProperty ("opaque", new Boolean (true));
54 this.updateUI ();
55 });
56 Clazz.defineMethod (c$, "installAncestorListener", 
57 function () {
58 this.addAncestorListener (((Clazz.isClassDefined ("javax.swing.JComboBox$1") ? 0 : javax.swing.JComboBox.$JComboBox$1$ ()), Clazz.innerTypeInstance (javax.swing.JComboBox$1, this, null)));
59 });
60 Clazz.overrideMethod (c$, "updateUI", 
61 function () {
62 this.setUI (javax.swing.UIManager.getUI (this));
63 var renderer = this.getRenderer ();
64 if (Clazz.instanceOf (renderer, java.awt.Component)) {
65 javax.swing.SwingUtilities.updateComponentTreeUI (renderer);
66 }});
67 Clazz.overrideMethod (c$, "getUIClassID", 
68 function () {
69 return "ComboBoxUI";
70 });
71 Clazz.overrideMethod (c$, "getUI", 
72 function () {
73 return this.ui;
74 });
75 Clazz.defineMethod (c$, "setModel", 
76 function (aModel) {
77 var oldModel = this.dataModel;
78 if (oldModel != null) {
79 oldModel.removeListDataListener (this);
80 }this.dataModel = aModel;
81 this.dataModel.addListDataListener (this);
82 this.selectedItemReminder = this.dataModel.getSelectedItem ();
83 this.firePropertyChangeObject ("model", oldModel, this.dataModel);
84 }, "javax.swing.ComboBoxModel");
85 Clazz.defineMethod (c$, "getModel", 
86 function () {
87 return this.dataModel;
88 });
89 Clazz.defineMethod (c$, "setLightWeightPopupEnabled", 
90 function (aFlag) {
91 var oldFlag = this.lightWeightPopupEnabled;
92 this.lightWeightPopupEnabled = aFlag;
93 this.firePropertyChangeBool ("lightWeightPopupEnabled", oldFlag, this.lightWeightPopupEnabled);
94 }, "~B");
95 Clazz.defineMethod (c$, "isLightWeightPopupEnabled", 
96 function () {
97 return this.lightWeightPopupEnabled;
98 });
99 Clazz.defineMethod (c$, "setEditable", 
100 function (aFlag) {
101 var oldFlag = this.$isEditable;
102 this.$isEditable = aFlag;
103 this.firePropertyChangeBool ("editable", oldFlag, this.$isEditable);
104 }, "~B");
105 Clazz.defineMethod (c$, "isEditable", 
106 function () {
107 return this.$isEditable;
108 });
109 Clazz.defineMethod (c$, "setMaximumRowCount", 
110 function (count) {
111 var oldCount = this.maximumRowCount;
112 this.maximumRowCount = count;
113 this.firePropertyChangeInt ("maximumRowCount", oldCount, this.maximumRowCount);
114 }, "~N");
115 Clazz.defineMethod (c$, "getMaximumRowCount", 
116 function () {
117 return this.maximumRowCount;
118 });
119 Clazz.defineMethod (c$, "setRenderer", 
120 function (aRenderer) {
121 var oldRenderer = this.renderer;
122 this.renderer = aRenderer;
123 this.firePropertyChangeObject ("renderer", oldRenderer, this.renderer);
124 this.invalidate ();
125 }, "javax.swing.ListCellRenderer");
126 Clazz.defineMethod (c$, "getRenderer", 
127 function () {
128 return this.renderer;
129 });
130 Clazz.defineMethod (c$, "setEditor", 
131 function (anEditor) {
132 var oldEditor = this.editor;
133 if (this.editor != null) {
134 this.editor.removeActionListener (this);
135 }this.editor = anEditor;
136 if (this.editor != null) {
137 this.editor.addActionListener (this);
138 }this.firePropertyChangeObject ("editor", oldEditor, this.editor);
139 }, "javax.swing.ComboBoxEditor");
140 Clazz.defineMethod (c$, "getEditor", 
141 function () {
142 return this.editor;
143 });
144 Clazz.defineMethod (c$, "setSelectedItem", 
145 function (anObject) {
146 var oldSelection = this.selectedItemReminder;
147 var objectToSelect = anObject;
148 if (oldSelection == null || !oldSelection.equals (anObject)) {
149 if (anObject != null && !this.isEditable ()) {
150 var found = false;
151 for (var i = 0; i < this.dataModel.getSize (); i++) {
152 var element = this.dataModel.getElementAt (i);
153 if (anObject.equals (element)) {
154 found = true;
155 objectToSelect = element;
156 break;
157 }}
158 if (!found) {
159 return;
160 }}this.selectingItem = true;
161 this.dataModel.setSelectedItem (objectToSelect);
162 this.selectingItem = false;
163 if (this.selectedItemReminder !== this.dataModel.getSelectedItem ()) {
164 this.selectedItemChanged ();
165 }}this.fireActionEvent ();
166 }, "~O");
167 Clazz.defineMethod (c$, "getSelectedItem", 
168 function () {
169 return this.dataModel.getSelectedItem ();
170 });
171 Clazz.defineMethod (c$, "setSelectedIndex", 
172 function (anIndex) {
173 var size = this.dataModel.getSize ();
174 if (anIndex == -1) {
175 this.setSelectedItem (null);
176 } else if (anIndex < -1 || anIndex >= size) {
177 throw  new IllegalArgumentException ("setSelectedIndex: " + anIndex + " out of bounds");
178 } else {
179 this.setSelectedItem (this.dataModel.getElementAt (anIndex));
180 }}, "~N");
181 Clazz.defineMethod (c$, "getSelectedIndex", 
182 function () {
183 var sObject = this.dataModel.getSelectedItem ();
184 var i;
185 var c;
186 var obj;
187 for (i = 0, c = this.dataModel.getSize (); i < c; i++) {
188 obj = this.dataModel.getElementAt (i);
189 if (obj != null && obj.equals (sObject)) return i;
190 }
191 return -1;
192 });
193 Clazz.defineMethod (c$, "getPrototypeDisplayValue", 
194 function () {
195 return this.prototypeDisplayValue;
196 });
197 Clazz.defineMethod (c$, "setPrototypeDisplayValue", 
198 function (prototypeDisplayValue) {
199 var oldValue = this.prototypeDisplayValue;
200 this.prototypeDisplayValue = prototypeDisplayValue;
201 this.firePropertyChangeObject ("prototypeDisplayValue", oldValue, prototypeDisplayValue);
202 }, "~O");
203 Clazz.defineMethod (c$, "addItem", 
204 function (anObject) {
205 this.checkMutableComboBoxModel ();
206 (this.dataModel).addElement (anObject);
207 }, "~O");
208 Clazz.defineMethod (c$, "insertItemAt", 
209 function (anObject, index) {
210 this.checkMutableComboBoxModel ();
211 (this.dataModel).insertElementAt (anObject, index);
212 }, "~O,~N");
213 Clazz.defineMethod (c$, "removeItem", 
214 function (anObject) {
215 this.checkMutableComboBoxModel ();
216 (this.dataModel).removeElement (anObject);
217 }, "~O");
218 Clazz.defineMethod (c$, "removeItemAt", 
219 function (anIndex) {
220 this.checkMutableComboBoxModel ();
221 (this.dataModel).removeElementAt (anIndex);
222 }, "~N");
223 Clazz.defineMethod (c$, "removeAllItems", 
224 function () {
225 this.checkMutableComboBoxModel ();
226 var model = this.dataModel;
227 var size = model.getSize ();
228 if (Clazz.instanceOf (model, javax.swing.DefaultComboBoxModel)) {
229 (model).removeAllElements ();
230 } else {
231 for (var i = 0; i < size; ++i) {
232 var element = model.getElementAt (0);
233 model.removeElement (element);
234 }
235 }this.selectedItemReminder = null;
236 if (this.isEditable ()) {
237 this.editor.setItem (null);
238 }});
239 Clazz.defineMethod (c$, "checkMutableComboBoxModel", 
240 function () {
241 if (!(Clazz.instanceOf (this.dataModel, javax.swing.MutableComboBoxModel))) throw  new RuntimeException ("Cannot use this method with a non-Mutable data model.");
242 });
243 Clazz.defineMethod (c$, "showPopup", 
244 function () {
245 this.setPopupVisible (true);
246 });
247 Clazz.defineMethod (c$, "hidePopup", 
248 function () {
249 this.setPopupVisible (false);
250 });
251 Clazz.defineMethod (c$, "setPopupVisible", 
252 function (v) {
253 this.getUI ().setPopupVisible (this, v);
254 }, "~B");
255 Clazz.defineMethod (c$, "isPopupVisible", 
256 function () {
257 return this.getUI ().isPopupVisible (this);
258 });
259 Clazz.overrideMethod (c$, "addItemListener", 
260 function (aListener) {
261 this.listenerList.add (java.awt.event.ItemListener, aListener);
262 }, "java.awt.event.ItemListener");
263 Clazz.overrideMethod (c$, "removeItemListener", 
264 function (aListener) {
265 this.listenerList.remove (java.awt.event.ItemListener, aListener);
266 }, "java.awt.event.ItemListener");
267 Clazz.defineMethod (c$, "getItemListeners", 
268 function () {
269 return this.listenerList.getListeners (java.awt.event.ItemListener);
270 });
271 Clazz.defineMethod (c$, "addActionListener", 
272 function (l) {
273 this.listenerList.add (java.awt.event.ActionListener, l);
274 }, "java.awt.event.ActionListener");
275 Clazz.defineMethod (c$, "removeActionListener", 
276 function (l) {
277 if ((l != null) && (this.getAction () === l)) {
278 this.setAction (null);
279 } else {
280 this.listenerList.remove (java.awt.event.ActionListener, l);
281 }}, "java.awt.event.ActionListener");
282 Clazz.defineMethod (c$, "getActionListeners", 
283 function () {
284 return this.listenerList.getListeners (java.awt.event.ActionListener);
285 });
286 Clazz.defineMethod (c$, "addPopupMenuListener", 
287 function (l) {
288 this.listenerList.add (javax.swing.event.PopupMenuListener, l);
289 }, "javax.swing.event.PopupMenuListener");
290 Clazz.defineMethod (c$, "removePopupMenuListener", 
291 function (l) {
292 this.listenerList.remove (javax.swing.event.PopupMenuListener, l);
293 }, "javax.swing.event.PopupMenuListener");
294 Clazz.defineMethod (c$, "getPopupMenuListeners", 
295 function () {
296 return this.listenerList.getListeners (javax.swing.event.PopupMenuListener);
297 });
298 Clazz.defineMethod (c$, "firePopupMenuWillBecomeVisible", 
299 function () {
300 var listeners = this.listenerList.getListenerList ();
301 var e = null;
302 for (var i = listeners.length - 2; i >= 0; i -= 2) {
303 if (listeners[i] === javax.swing.event.PopupMenuListener) {
304 if (e == null) e =  new javax.swing.event.PopupMenuEvent (this);
305 (listeners[i + 1]).popupMenuWillBecomeVisible (e);
306 }}
307 });
308 Clazz.defineMethod (c$, "firePopupMenuWillBecomeInvisible", 
309 function () {
310 var listeners = this.listenerList.getListenerList ();
311 var e = null;
312 for (var i = listeners.length - 2; i >= 0; i -= 2) {
313 if (listeners[i] === javax.swing.event.PopupMenuListener) {
314 if (e == null) e =  new javax.swing.event.PopupMenuEvent (this);
315 (listeners[i + 1]).popupMenuWillBecomeInvisible (e);
316 }}
317 });
318 Clazz.defineMethod (c$, "firePopupMenuCanceled", 
319 function () {
320 var listeners = this.listenerList.getListenerList ();
321 var e = null;
322 for (var i = listeners.length - 2; i >= 0; i -= 2) {
323 if (listeners[i] === javax.swing.event.PopupMenuListener) {
324 if (e == null) e =  new javax.swing.event.PopupMenuEvent (this);
325 (listeners[i + 1]).popupMenuCanceled (e);
326 }}
327 });
328 Clazz.defineMethod (c$, "setActionCommand", 
329 function (aCommand) {
330 this.actionCommand = aCommand;
331 }, "~S");
332 Clazz.defineMethod (c$, "getActionCommand", 
333 function () {
334 return this.actionCommand;
335 });
336 Clazz.defineMethod (c$, "setAction", 
337 function (a) {
338 var oldValue = this.getAction ();
339 if (this.$action == null || !this.$action.equals (a)) {
340 this.$action = a;
341 if (oldValue != null) {
342 this.removeActionListener (oldValue);
343 oldValue.removePropertyChangeListener (this.actionPropertyChangeListener);
344 this.actionPropertyChangeListener = null;
345 }this.configurePropertiesFromAction (this.$action);
346 if (this.$action != null) {
347 if (!this.isListener (java.awt.event.ActionListener, this.$action)) {
348 this.addActionListener (this.$action);
349 }this.actionPropertyChangeListener = this.createActionPropertyChangeListener (this.$action);
350 this.$action.addPropertyChangeListener (this.actionPropertyChangeListener);
351 }this.firePropertyChangeObject ("action", oldValue, this.$action);
352 }}, "javax.swing.Action");
353 Clazz.defineMethod (c$, "isListener", 
354  function (c, a) {
355 var isListener = false;
356 var listeners = this.listenerList.getListenerList ();
357 for (var i = listeners.length - 2; i >= 0; i -= 2) {
358 if (listeners[i] === c && listeners[i + 1] === a) {
359 isListener = true;
360 }}
361 return isListener;
362 }, "Class,java.awt.event.ActionListener");
363 Clazz.defineMethod (c$, "getAction", 
364 function () {
365 return this.$action;
366 });
367 Clazz.defineMethod (c$, "configurePropertiesFromAction", 
368 function (a) {
369 javax.swing.AbstractAction.setEnabledFromAction (this, a);
370 javax.swing.AbstractAction.setToolTipTextFromAction (this, a);
371 this.setActionCommandFromAction (a);
372 }, "javax.swing.Action");
373 Clazz.defineMethod (c$, "createActionPropertyChangeListener", 
374 function (a) {
375 return  new javax.swing.JComboBox.ComboBoxActionPropertyChangeListener (this, a);
376 }, "javax.swing.Action");
377 Clazz.defineMethod (c$, "actionPropertyChanged", 
378 function (action, propertyName) {
379 if (propertyName === "ActionCommandKey") {
380 this.setActionCommandFromAction (action);
381 } else if (propertyName === "enabled") {
382 javax.swing.AbstractAction.setEnabledFromAction (this, action);
383 } else if ("ShortDescription" === propertyName) {
384 javax.swing.AbstractAction.setToolTipTextFromAction (this, action);
385 }}, "javax.swing.Action,~S");
386 Clazz.defineMethod (c$, "setActionCommandFromAction", 
387  function (a) {
388 this.setActionCommand ((a != null) ? a.getValue ("ActionCommandKey") : null);
389 }, "javax.swing.Action");
390 Clazz.defineMethod (c$, "fireItemStateChanged", 
391 function (e) {
392 var listeners = this.listenerList.getListenerList ();
393 for (var i = listeners.length - 2; i >= 0; i -= 2) {
394 if (listeners[i] === java.awt.event.ItemListener) {
395 (listeners[i + 1]).itemStateChanged (e);
396 }}
397 }, "java.awt.event.ItemEvent");
398 Clazz.defineMethod (c$, "fireActionEvent", 
399 function () {
400 if (!this.firingActionEvent) {
401 this.firingActionEvent = true;
402 var e = null;
403 var listeners = this.listenerList.getListenerList ();
404 var mostRecentEventTime = java.awt.EventQueue.getMostRecentEventTime ();
405 var modifiers = 0;
406 var currentEvent = java.awt.EventQueue.getCurrentEvent ();
407 if (Clazz.instanceOf (currentEvent, java.awt.event.InputEvent)) {
408 modifiers = (currentEvent).getModifiers ();
409 } else if (Clazz.instanceOf (currentEvent, java.awt.event.ActionEvent)) {
410 modifiers = (currentEvent).getModifiers ();
411 }for (var i = listeners.length - 2; i >= 0; i -= 2) {
412 if (listeners[i] === java.awt.event.ActionListener) {
413 if (e == null) e =  new java.awt.event.ActionEvent (this, 1001, this.getActionCommand (), mostRecentEventTime, modifiers);
414 (listeners[i + 1]).actionPerformed (e);
415 }}
416 this.firingActionEvent = false;
417 }});
418 Clazz.defineMethod (c$, "selectedItemChanged", 
419 function () {
420 if (this.selectedItemReminder != null) {
421 this.fireItemStateChanged ( new java.awt.event.ItemEvent (this, 701, this.selectedItemReminder, 2));
422 }this.selectedItemReminder = this.dataModel.getSelectedItem ();
423 if (this.selectedItemReminder != null) {
424 this.fireItemStateChanged ( new java.awt.event.ItemEvent (this, 701, this.selectedItemReminder, 1));
425 }});
426 Clazz.overrideMethod (c$, "getSelectedObjects", 
427 function () {
428 var selectedObject = this.getSelectedItem ();
429 if (selectedObject == null) return  new Array (0);
430  else {
431 var result =  new Array (1);
432 result[0] = selectedObject;
433 return result;
434 }});
435 Clazz.defineMethod (c$, "actionPerformed", 
436 function (e) {
437 var newItem = this.getEditor ().getItem ();
438 this.setPopupVisible (false);
439 this.getModel ().setSelectedItem (newItem);
440 var oldCommand = this.getActionCommand ();
441 this.setActionCommand ("comboBoxEdited");
442 this.fireActionEvent ();
443 this.setActionCommand (oldCommand);
444 }, "java.awt.event.ActionEvent");
445 Clazz.overrideMethod (c$, "contentsChanged", 
446 function (e) {
447 var oldSelection = this.selectedItemReminder;
448 var newSelection = this.dataModel.getSelectedItem ();
449 if (oldSelection == null || !oldSelection.equals (newSelection)) {
450 this.selectedItemChanged ();
451 if (!this.selectingItem) {
452 this.fireActionEvent ();
453 }}}, "javax.swing.event.ListDataEvent");
454 Clazz.overrideMethod (c$, "intervalAdded", 
455 function (e) {
456 if (this.selectedItemReminder !== this.dataModel.getSelectedItem ()) {
457 this.selectedItemChanged ();
458 }}, "javax.swing.event.ListDataEvent");
459 Clazz.overrideMethod (c$, "intervalRemoved", 
460 function (e) {
461 this.contentsChanged (e);
462 }, "javax.swing.event.ListDataEvent");
463 Clazz.defineMethod (c$, "selectWithKeyChar", 
464 function (keyChar) {
465 var index;
466 if (this.keySelectionManager == null) this.keySelectionManager = this.createDefaultKeySelectionManager ();
467 index = this.keySelectionManager.selectionForKey (keyChar, this.getModel ());
468 if (index != -1) {
469 this.setSelectedIndex (index);
470 return true;
471 } else return false;
472 }, "~S");
473 Clazz.defineMethod (c$, "setEnabled", 
474 function (b) {
475 Clazz.superCall (this, javax.swing.JComboBox, "setEnabled", [b]);
476 this.firePropertyChangeBool ("enabled", !this.isEnabled (), this.isEnabled ());
477 }, "~B");
478 Clazz.defineMethod (c$, "configureEditor", 
479 function (anEditor, anItem) {
480 anEditor.setItem (anItem);
481 }, "javax.swing.ComboBoxEditor,~O");
482 Clazz.defineMethod (c$, "processKeyEvent", 
483 function (e) {
484 if (e.getKeyCode () == 9) {
485 this.hidePopup ();
486 }Clazz.superCall (this, javax.swing.JComboBox, "processKeyEvent", [e]);
487 }, "java.awt.event.KeyEvent");
488 Clazz.defineMethod (c$, "setKeySelectionManager", 
489 function (aManager) {
490 this.keySelectionManager = aManager;
491 }, "javax.swing.JComboBox.KeySelectionManager");
492 Clazz.defineMethod (c$, "getKeySelectionManager", 
493 function () {
494 return this.keySelectionManager;
495 });
496 Clazz.defineMethod (c$, "getItemCount", 
497 function () {
498 return this.dataModel.getSize ();
499 });
500 Clazz.defineMethod (c$, "getItemAt", 
501 function (index) {
502 return this.dataModel.getElementAt (index);
503 }, "~N");
504 Clazz.defineMethod (c$, "createDefaultKeySelectionManager", 
505 function () {
506 return Clazz.innerTypeInstance (javax.swing.JComboBox.DefaultKeySelectionManager, this, null);
507 });
508 Clazz.defineMethod (c$, "paramString", 
509 function () {
510 var selectedItemReminderString = (this.selectedItemReminder != null ? this.selectedItemReminder.toString () : "");
511 var isEditableString = (this.$isEditable ? "true" : "false");
512 var lightWeightPopupEnabledString = (this.lightWeightPopupEnabled ? "true" : "false");
513 return Clazz.superCall (this, javax.swing.JComboBox, "paramString", []) + ",isEditable=" + isEditableString + ",lightWeightPopupEnabled=" + lightWeightPopupEnabledString + ",maximumRowCount=" + this.maximumRowCount + ",selectedItemReminder=" + selectedItemReminderString;
514 });
515 c$.$JComboBox$DefaultKeySelectionManager$ = function () {
516 Clazz.pu$h(self.c$);
517 c$ = Clazz.decorateAsClass (function () {
518 Clazz.prepareCallback (this, arguments);
519 Clazz.instantialize (this, arguments);
520 }, javax.swing.JComboBox, "DefaultKeySelectionManager", null, javax.swing.JComboBox.KeySelectionManager);
521 Clazz.overrideMethod (c$, "selectionForKey", 
522 function (a, b) {
523 var c;
524 var d;
525 var e = -1;
526 var f = b.getSelectedItem ();
527 var g;
528 var h;
529 if (f != null) {
530 for (c = 0, d = b.getSize (); c < d; c++) {
531 if (f === b.getElementAt (c)) {
532 e = c;
533 break;
534 }}
535 }h = ("" + a).toLowerCase ();
536 a = h.charAt (0);
537 for (c = ++e, d = b.getSize (); c < d; c++) {
538 var i = b.getElementAt (c);
539 if (i != null && i.toString () != null) {
540 g = i.toString ().toLowerCase ();
541 if (g.length > 0 && g.charAt (0) == a) return c;
542 }}
543 for (c = 0; c < e; c++) {
544 var i = b.getElementAt (c);
545 if (i != null && i.toString () != null) {
546 g = i.toString ().toLowerCase ();
547 if (g.length > 0 && g.charAt (0) == a) return c;
548 }}
549 return -1;
550 }, "~S,javax.swing.ComboBoxModel");
551 c$ = Clazz.p0p ();
552 };
553 c$.$JComboBox$1$ = function () {
554 Clazz.pu$h(self.c$);
555 c$ = Clazz.declareAnonymous (javax.swing, "JComboBox$1", null, javax.swing.event.AncestorListener);
556 Clazz.overrideMethod (c$, "ancestorAdded", 
557 function (event) {
558 this.b$["javax.swing.JComboBox"].hidePopup ();
559 }, "javax.swing.event.AncestorEvent");
560 Clazz.overrideMethod (c$, "ancestorRemoved", 
561 function (event) {
562 this.b$["javax.swing.JComboBox"].hidePopup ();
563 }, "javax.swing.event.AncestorEvent");
564 Clazz.overrideMethod (c$, "ancestorMoved", 
565 function (event) {
566 if (event.getSource () !== this.b$["javax.swing.JComboBox"]) this.b$["javax.swing.JComboBox"].hidePopup ();
567 }, "javax.swing.event.AncestorEvent");
568 c$ = Clazz.p0p ();
569 };
570 Clazz.pu$h(self.c$);
571 c$ = Clazz.declareType (javax.swing.JComboBox, "ComboBoxActionPropertyChangeListener", javax.swing.ActionPropertyChangeListener);
572 Clazz.overrideMethod (c$, "actionPropertyChanged", 
573 function (a, b, c) {
574 if (javax.swing.AbstractAction.shouldReconfigure (c)) {
575 a.configurePropertiesFromAction (b);
576 } else {
577 a.actionPropertyChanged (b, c.getPropertyName ());
578 }}, "javax.swing.JComboBox,javax.swing.Action,java.beans.PropertyChangeEvent");
579 c$ = Clazz.p0p ();
580 Clazz.declareInterface (javax.swing.JComboBox, "KeySelectionManager");
581 Clazz.defineStatics (c$,
582 "$uiClassID", "ComboBoxUI");
583 });