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 () {
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;
17 this.actionPropertyChangeListener = null;
18 if (!Clazz.isClassDefined ("javax.swing.JComboBox.DefaultKeySelectionManager")) {
19 javax.swing.JComboBox.$JComboBox$DefaultKeySelectionManager$ ();
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 ();
26 Clazz.makeConstructor (c$,
28 Clazz.superConstructor (this, javax.swing.JComboBox);
29 this.setModel (aModel);
31 }, "javax.swing.ComboBoxModel");
32 Clazz.makeConstructor (c$,
34 Clazz.superConstructor (this, javax.swing.JComboBox);
35 this.setModel ( new javax.swing.DefaultComboBoxModel (items));
38 Clazz.makeConstructor (c$,
40 Clazz.superConstructor (this, javax.swing.JComboBox);
41 this.setModel ( new javax.swing.DefaultComboBoxModel (items));
43 }, "java.util.Vector");
44 Clazz.makeConstructor (c$,
46 Clazz.superConstructor (this, javax.swing.JComboBox);
47 this.setModel ( new javax.swing.DefaultComboBoxModel ());
50 Clazz.defineMethod (c$, "init",
52 this.installAncestorListener ();
53 this.setUIProperty ("opaque", new Boolean (true));
56 Clazz.defineMethod (c$, "installAncestorListener",
58 this.addAncestorListener (((Clazz.isClassDefined ("javax.swing.JComboBox$1") ? 0 : javax.swing.JComboBox.$JComboBox$1$ ()), Clazz.innerTypeInstance (javax.swing.JComboBox$1, this, null)));
60 Clazz.overrideMethod (c$, "updateUI",
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);
67 Clazz.overrideMethod (c$, "getUIClassID",
71 Clazz.overrideMethod (c$, "getUI",
75 Clazz.defineMethod (c$, "setModel",
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",
87 return this.dataModel;
89 Clazz.defineMethod (c$, "setLightWeightPopupEnabled",
91 var oldFlag = this.lightWeightPopupEnabled;
92 this.lightWeightPopupEnabled = aFlag;
93 this.firePropertyChangeBool ("lightWeightPopupEnabled", oldFlag, this.lightWeightPopupEnabled);
95 Clazz.defineMethod (c$, "isLightWeightPopupEnabled",
97 return this.lightWeightPopupEnabled;
99 Clazz.defineMethod (c$, "setEditable",
101 var oldFlag = this.$isEditable;
102 this.$isEditable = aFlag;
103 this.firePropertyChangeBool ("editable", oldFlag, this.$isEditable);
105 Clazz.defineMethod (c$, "isEditable",
107 return this.$isEditable;
109 Clazz.defineMethod (c$, "setMaximumRowCount",
111 var oldCount = this.maximumRowCount;
112 this.maximumRowCount = count;
113 this.firePropertyChangeInt ("maximumRowCount", oldCount, this.maximumRowCount);
115 Clazz.defineMethod (c$, "getMaximumRowCount",
117 return this.maximumRowCount;
119 Clazz.defineMethod (c$, "setRenderer",
120 function (aRenderer) {
121 var oldRenderer = this.renderer;
122 this.renderer = aRenderer;
123 this.firePropertyChangeObject ("renderer", oldRenderer, this.renderer);
125 }, "javax.swing.ListCellRenderer");
126 Clazz.defineMethod (c$, "getRenderer",
128 return this.renderer;
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",
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 ()) {
151 for (var i = 0; i < this.dataModel.getSize (); i++) {
152 var element = this.dataModel.getElementAt (i);
153 if (anObject.equals (element)) {
155 objectToSelect = element;
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 ();
167 Clazz.defineMethod (c$, "getSelectedItem",
169 return this.dataModel.getSelectedItem ();
171 Clazz.defineMethod (c$, "setSelectedIndex",
173 var size = this.dataModel.getSize ();
175 this.setSelectedItem (null);
176 } else if (anIndex < -1 || anIndex >= size) {
177 throw new IllegalArgumentException ("setSelectedIndex: " + anIndex + " out of bounds");
179 this.setSelectedItem (this.dataModel.getElementAt (anIndex));
181 Clazz.defineMethod (c$, "getSelectedIndex",
183 var sObject = this.dataModel.getSelectedItem ();
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;
193 Clazz.defineMethod (c$, "getPrototypeDisplayValue",
195 return this.prototypeDisplayValue;
197 Clazz.defineMethod (c$, "setPrototypeDisplayValue",
198 function (prototypeDisplayValue) {
199 var oldValue = this.prototypeDisplayValue;
200 this.prototypeDisplayValue = prototypeDisplayValue;
201 this.firePropertyChangeObject ("prototypeDisplayValue", oldValue, prototypeDisplayValue);
203 Clazz.defineMethod (c$, "addItem",
204 function (anObject) {
205 this.checkMutableComboBoxModel ();
206 (this.dataModel).addElement (anObject);
208 Clazz.defineMethod (c$, "insertItemAt",
209 function (anObject, index) {
210 this.checkMutableComboBoxModel ();
211 (this.dataModel).insertElementAt (anObject, index);
213 Clazz.defineMethod (c$, "removeItem",
214 function (anObject) {
215 this.checkMutableComboBoxModel ();
216 (this.dataModel).removeElement (anObject);
218 Clazz.defineMethod (c$, "removeItemAt",
220 this.checkMutableComboBoxModel ();
221 (this.dataModel).removeElementAt (anIndex);
223 Clazz.defineMethod (c$, "removeAllItems",
225 this.checkMutableComboBoxModel ();
226 var model = this.dataModel;
227 var size = model.getSize ();
228 if (Clazz.instanceOf (model, javax.swing.DefaultComboBoxModel)) {
229 (model).removeAllElements ();
231 for (var i = 0; i < size; ++i) {
232 var element = model.getElementAt (0);
233 model.removeElement (element);
235 }this.selectedItemReminder = null;
236 if (this.isEditable ()) {
237 this.editor.setItem (null);
239 Clazz.defineMethod (c$, "checkMutableComboBoxModel",
241 if (!(Clazz.instanceOf (this.dataModel, javax.swing.MutableComboBoxModel))) throw new RuntimeException ("Cannot use this method with a non-Mutable data model.");
243 Clazz.defineMethod (c$, "showPopup",
245 this.setPopupVisible (true);
247 Clazz.defineMethod (c$, "hidePopup",
249 this.setPopupVisible (false);
251 Clazz.defineMethod (c$, "setPopupVisible",
253 this.getUI ().setPopupVisible (this, v);
255 Clazz.defineMethod (c$, "isPopupVisible",
257 return this.getUI ().isPopupVisible (this);
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",
269 return this.listenerList.getListeners (java.awt.event.ItemListener);
271 Clazz.defineMethod (c$, "addActionListener",
273 this.listenerList.add (java.awt.event.ActionListener, l);
274 }, "java.awt.event.ActionListener");
275 Clazz.defineMethod (c$, "removeActionListener",
277 if ((l != null) && (this.getAction () === l)) {
278 this.setAction (null);
280 this.listenerList.remove (java.awt.event.ActionListener, l);
281 }}, "java.awt.event.ActionListener");
282 Clazz.defineMethod (c$, "getActionListeners",
284 return this.listenerList.getListeners (java.awt.event.ActionListener);
286 Clazz.defineMethod (c$, "addPopupMenuListener",
288 this.listenerList.add (javax.swing.event.PopupMenuListener, l);
289 }, "javax.swing.event.PopupMenuListener");
290 Clazz.defineMethod (c$, "removePopupMenuListener",
292 this.listenerList.remove (javax.swing.event.PopupMenuListener, l);
293 }, "javax.swing.event.PopupMenuListener");
294 Clazz.defineMethod (c$, "getPopupMenuListeners",
296 return this.listenerList.getListeners (javax.swing.event.PopupMenuListener);
298 Clazz.defineMethod (c$, "firePopupMenuWillBecomeVisible",
300 var listeners = this.listenerList.getListenerList ();
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);
308 Clazz.defineMethod (c$, "firePopupMenuWillBecomeInvisible",
310 var listeners = this.listenerList.getListenerList ();
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);
318 Clazz.defineMethod (c$, "firePopupMenuCanceled",
320 var listeners = this.listenerList.getListenerList ();
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);
328 Clazz.defineMethod (c$, "setActionCommand",
329 function (aCommand) {
330 this.actionCommand = aCommand;
332 Clazz.defineMethod (c$, "getActionCommand",
334 return this.actionCommand;
336 Clazz.defineMethod (c$, "setAction",
338 var oldValue = this.getAction ();
339 if (this.$action == null || !this.$action.equals (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",
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) {
362 }, "Class,java.awt.event.ActionListener");
363 Clazz.defineMethod (c$, "getAction",
367 Clazz.defineMethod (c$, "configurePropertiesFromAction",
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",
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",
388 this.setActionCommand ((a != null) ? a.getValue ("ActionCommandKey") : null);
389 }, "javax.swing.Action");
390 Clazz.defineMethod (c$, "fireItemStateChanged",
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);
397 }, "java.awt.event.ItemEvent");
398 Clazz.defineMethod (c$, "fireActionEvent",
400 if (!this.firingActionEvent) {
401 this.firingActionEvent = true;
403 var listeners = this.listenerList.getListenerList ();
404 var mostRecentEventTime = java.awt.EventQueue.getMostRecentEventTime ();
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);
416 this.firingActionEvent = false;
418 Clazz.defineMethod (c$, "selectedItemChanged",
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));
426 Clazz.overrideMethod (c$, "getSelectedObjects",
428 var selectedObject = this.getSelectedItem ();
429 if (selectedObject == null) return new Array (0);
431 var result = new Array (1);
432 result[0] = selectedObject;
435 Clazz.defineMethod (c$, "actionPerformed",
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",
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",
456 if (this.selectedItemReminder !== this.dataModel.getSelectedItem ()) {
457 this.selectedItemChanged ();
458 }}, "javax.swing.event.ListDataEvent");
459 Clazz.overrideMethod (c$, "intervalRemoved",
461 this.contentsChanged (e);
462 }, "javax.swing.event.ListDataEvent");
463 Clazz.defineMethod (c$, "selectWithKeyChar",
466 if (this.keySelectionManager == null) this.keySelectionManager = this.createDefaultKeySelectionManager ();
467 index = this.keySelectionManager.selectionForKey (keyChar, this.getModel ());
469 this.setSelectedIndex (index);
473 Clazz.defineMethod (c$, "setEnabled",
475 Clazz.superCall (this, javax.swing.JComboBox, "setEnabled", [b]);
476 this.firePropertyChangeBool ("enabled", !this.isEnabled (), this.isEnabled ());
478 Clazz.defineMethod (c$, "configureEditor",
479 function (anEditor, anItem) {
480 anEditor.setItem (anItem);
481 }, "javax.swing.ComboBoxEditor,~O");
482 Clazz.defineMethod (c$, "processKeyEvent",
484 if (e.getKeyCode () == 9) {
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",
494 return this.keySelectionManager;
496 Clazz.defineMethod (c$, "getItemCount",
498 return this.dataModel.getSize ();
500 Clazz.defineMethod (c$, "getItemAt",
502 return this.dataModel.getElementAt (index);
504 Clazz.defineMethod (c$, "createDefaultKeySelectionManager",
506 return Clazz.innerTypeInstance (javax.swing.JComboBox.DefaultKeySelectionManager, this, null);
508 Clazz.defineMethod (c$, "paramString",
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;
515 c$.$JComboBox$DefaultKeySelectionManager$ = function () {
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",
526 var f = b.getSelectedItem ();
530 for (c = 0, d = b.getSize (); c < d; c++) {
531 if (f === b.getElementAt (c)) {
535 }h = ("" + a).toLowerCase ();
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;
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;
550 }, "~S,javax.swing.ComboBoxModel");
553 c$.$JComboBox$1$ = function () {
555 c$ = Clazz.declareAnonymous (javax.swing, "JComboBox$1", null, javax.swing.event.AncestorListener);
556 Clazz.overrideMethod (c$, "ancestorAdded",
558 this.b$["javax.swing.JComboBox"].hidePopup ();
559 }, "javax.swing.event.AncestorEvent");
560 Clazz.overrideMethod (c$, "ancestorRemoved",
562 this.b$["javax.swing.JComboBox"].hidePopup ();
563 }, "javax.swing.event.AncestorEvent");
564 Clazz.overrideMethod (c$, "ancestorMoved",
566 if (event.getSource () !== this.b$["javax.swing.JComboBox"]) this.b$["javax.swing.JComboBox"].hidePopup ();
567 }, "javax.swing.event.AncestorEvent");
571 c$ = Clazz.declareType (javax.swing.JComboBox, "ComboBoxActionPropertyChangeListener", javax.swing.ActionPropertyChangeListener);
572 Clazz.overrideMethod (c$, "actionPropertyChanged",
574 if (javax.swing.AbstractAction.shouldReconfigure (c)) {
575 a.configurePropertiesFromAction (b);
577 a.actionPropertyChanged (b, c.getPropertyName ());
578 }}, "javax.swing.JComboBox,javax.swing.Action,java.beans.PropertyChangeEvent");
580 Clazz.declareInterface (javax.swing.JComboBox, "KeySelectionManager");
581 Clazz.defineStatics (c$,
582 "$uiClassID", "ComboBoxUI");