home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import com.sun.java.accessibility.Accessible;
- import com.sun.java.accessibility.AccessibleContext;
- import com.sun.java.swing.event.ListDataEvent;
- import com.sun.java.swing.event.ListDataListener;
- import com.sun.java.swing.plaf.ComboBoxUI;
- import java.awt.Container;
- import java.awt.ItemSelectable;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.awt.event.KeyEvent;
- import java.util.Vector;
-
- public class JComboBox extends JComponent implements ItemSelectable, ListDataListener, ActionListener, Accessible {
- protected ComboBoxModel dataModel;
- protected ListCellRenderer renderer;
- protected ComboBoxEditor editor;
- protected int maximumRowCount = 8;
- protected boolean isEditable = false;
- protected Object selectedItemReminder;
- protected KeySelectionManager keySelectionManager;
- protected String actionCommand = "comboBoxChanged";
- protected boolean lightWeightPopupEnabled = true;
- // $FF: synthetic field
- static Class class$java$awt$event$ItemListener;
- // $FF: synthetic field
- static Class class$java$awt$event$ActionListener;
-
- public JComboBox(ComboBoxModel var1) {
- this.setModel(var1);
- this.updateUI();
- ((JComponent)this).addAncestorListener(new 1(this));
- }
-
- public JComboBox(Object[] var1) {
- this.setModel(new DefaultComboBoxModel(this, var1));
- this.updateUI();
- }
-
- public JComboBox(Vector var1) {
- this.setModel(new DefaultComboBoxModel(this, var1));
- this.updateUI();
- }
-
- public JComboBox() {
- this.setModel(new DefaultComboBoxModel(this));
- this.updateUI();
- }
-
- public void setUI(ComboBoxUI var1) {
- super.setUI(var1);
- }
-
- public void updateUI() {
- this.setUI((ComboBoxUI)UIManager.getUI(this));
- }
-
- public String getUIClassID() {
- return "ComboBoxUI";
- }
-
- public ComboBoxUI getUI() {
- return (ComboBoxUI)super.ui;
- }
-
- public void setModel(ComboBoxModel var1) {
- ComboBoxModel var2 = this.dataModel;
- if (this.dataModel != null) {
- this.dataModel.removeListDataListener(this);
- }
-
- this.dataModel = var1;
- ((JComponent)this).firePropertyChange("model", var2, this.dataModel);
- this.dataModel.addListDataListener(this);
- ((Container)this).invalidate();
- }
-
- public ComboBoxModel getModel() {
- return this.dataModel;
- }
-
- public void setLightWeightPopupEnabled(boolean var1) {
- this.lightWeightPopupEnabled = var1;
- }
-
- public boolean isLightWeightPopupEnabled() {
- return this.lightWeightPopupEnabled;
- }
-
- public void setEditable(boolean var1) {
- this.isEditable = var1;
- this.getUI().editablePropertyChanged();
- }
-
- public boolean isEditable() {
- return this.isEditable;
- }
-
- public void setMaximumRowCount(int var1) {
- ComboBoxUI var2 = this.getUI();
- this.maximumRowCount = var1;
- var2.maximumRowCountChanged();
- }
-
- public int getMaximumRowCount() {
- return this.maximumRowCount;
- }
-
- public void setRenderer(ListCellRenderer var1) {
- this.renderer = var1;
- ((Container)this).invalidate();
- }
-
- public ListCellRenderer getRenderer() {
- return this.renderer;
- }
-
- public void setEditor(ComboBoxEditor var1) {
- if (this.editor != null) {
- this.editor.removeActionListener(this);
- }
-
- this.editor = var1;
- if (this.editor != null) {
- this.editor.addActionListener(this);
- }
-
- this.getUI().editablePropertyChanged();
- }
-
- public ComboBoxEditor getEditor() {
- return this.editor;
- }
-
- public void setSelectedItem(Object var1) {
- this.dataModel.setSelectedItem(var1);
- }
-
- public Object getSelectedItem() {
- return this.dataModel.getSelectedItem();
- }
-
- public void setSelectedIndex(int var1) {
- int var2 = this.dataModel.getSize();
- if (var1 >= 0 && var1 < var2) {
- this.setSelectedItem(this.dataModel.getElementAt(var1));
- } else {
- throw new IllegalArgumentException("setSelectedIndex: " + var1 + " out of bounds");
- }
- }
-
- public int getSelectedIndex() {
- Object var1 = this.dataModel.getSelectedItem();
- int var2 = 0;
-
- for(int var3 = this.dataModel.getSize(); var2 < var3; ++var2) {
- Object var4 = this.dataModel.getElementAt(var2);
- if (var4.equals(var1)) {
- return var2;
- }
- }
-
- return -1;
- }
-
- public void addItem(Object var1) {
- this.checkDefaultComboBoxModel();
- ((DefaultComboBoxModel)this.dataModel).addObject(var1);
- }
-
- public void insertItemAt(Object var1, int var2) {
- this.checkDefaultComboBoxModel();
- ((DefaultComboBoxModel)this.dataModel).insertObjectAt(var1, var2);
- }
-
- public void removeItem(Object var1) {
- this.checkDefaultComboBoxModel();
- int var2 = ((DefaultComboBoxModel)this.dataModel).getIndexOf(var1);
- ((DefaultComboBoxModel)this.dataModel).removeObject(var1);
- if (!this.isEditable() && this.dataModel.getSize() > 0 && var2 < this.dataModel.getSize()) {
- this.setSelectedIndex(var2);
- }
-
- }
-
- public void removeItemAt(int var1) {
- this.checkDefaultComboBoxModel();
- ((DefaultComboBoxModel)this.dataModel).removeObjectAt(var1);
- }
-
- public void removeAllItems() {
- this.checkDefaultComboBoxModel();
- ((DefaultComboBoxModel)this.dataModel).removeAllObjects();
- if (!this.isEditable()) {
- this.setSelectedItem((Object)null);
- }
-
- }
-
- void checkDefaultComboBoxModel() {
- if (!(this.dataModel instanceof DefaultComboBoxModel)) {
- throw new InternalError("Cannot use this method with a custom data model.");
- }
- }
-
- public void showPopup() {
- this.getUI().showPopup();
- }
-
- public void hidePopup() {
- this.getUI().hidePopup();
- }
-
- public void addItemListener(ItemListener var1) {
- super.listenerList.add(class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = JComponent.class$("java.awt.event.ItemListener")), var1);
- }
-
- public void removeItemListener(ItemListener var1) {
- super.listenerList.remove(class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = JComponent.class$("java.awt.event.ItemListener")), var1);
- }
-
- public void addActionListener(ActionListener var1) {
- super.listenerList.add(class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = JComponent.class$("java.awt.event.ActionListener")), var1);
- }
-
- public void removeActionListener(ActionListener var1) {
- super.listenerList.remove(class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = JComponent.class$("java.awt.event.ActionListener")), var1);
- }
-
- public void setActionCommand(String var1) {
- this.actionCommand = var1;
- }
-
- public String getActionCommand() {
- return this.actionCommand;
- }
-
- protected void fireItemStateChanged(ItemEvent var1) {
- Object[] var2 = super.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = JComponent.class$("java.awt.event.ItemListener")))) {
- ((ItemListener)var2[var3 + 1]).itemStateChanged(var1);
- }
- }
-
- }
-
- protected void fireActionEvent() {
- ActionEvent var1 = null;
- Object[] var2 = super.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = JComponent.class$("java.awt.event.ActionListener")))) {
- if (var1 == null) {
- var1 = new ActionEvent(this, 1001, this.getActionCommand());
- }
-
- ((ActionListener)var2[var3 + 1]).actionPerformed(var1);
- }
- }
-
- }
-
- protected void selectedItemChanged() {
- if (this.selectedItemReminder != null) {
- this.fireItemStateChanged(new ItemEvent(this, 701, this.selectedItemReminder, 2));
- }
-
- this.selectedItemReminder = this.getModel().getSelectedItem();
- if (this.selectedItemReminder != null) {
- this.fireItemStateChanged(new ItemEvent(this, 701, this.selectedItemReminder, 1));
- }
-
- this.fireActionEvent();
- }
-
- public Object[] getSelectedObjects() {
- Object var1 = this.getSelectedItem();
- if (var1 == null) {
- return new Object[0];
- } else {
- Object[] var2 = new Object[]{var1};
- return var2;
- }
- }
-
- public void actionPerformed(ActionEvent var1) {
- Object var2 = this.getEditor().getItem();
- this.getModel().setSelectedItem(var2);
- this.getUI().hidePopup();
- }
-
- public void contentsChanged(ListDataEvent var1) {
- ComboBoxModel var2 = this.getModel();
- Object var3 = var2.getSelectedItem();
- if (!this.isEditable() && var2 instanceof DefaultComboBoxModel && var3 == null && this.getModel().getSize() > 0) {
- this.setSelectedIndex(0);
- } else if (this.selectedItemReminder == null) {
- if (var3 != null) {
- this.selectedItemChanged();
- }
- } else if (!this.selectedItemReminder.equals(var3)) {
- this.selectedItemChanged();
- }
-
- if (!this.isEditable() && var3 != null) {
- boolean var6 = true;
- Object var8 = var2.getSelectedItem();
- int var4 = 0;
-
- for(int var5 = var2.getSize(); var4 < var5; ++var4) {
- Object var7 = var2.getElementAt(var4);
- if (var7.equals(var8)) {
- var6 = false;
- break;
- }
- }
-
- if (var6) {
- if (var2.getSize() > 0) {
- this.setSelectedIndex(0);
- return;
- }
-
- this.setSelectedItem((Object)null);
- }
- }
-
- }
-
- public boolean selectWithKeyChar(char var1) {
- if (this.keySelectionManager == null) {
- this.keySelectionManager = this.createDefaultKeySelectionManager();
- }
-
- int var2 = this.keySelectionManager.selectionForKey(var1, this.getModel());
- if (var2 != -1) {
- this.setSelectedIndex(var2);
- return true;
- } else {
- return false;
- }
- }
-
- public void intervalAdded(ListDataEvent var1) {
- this.contentsChanged(var1);
- }
-
- public void intervalRemoved(ListDataEvent var1) {
- this.contentsChanged(var1);
- }
-
- public void setEnabled(boolean var1) {
- super.setEnabled(var1);
- this.getUI().enablePropertyChanged();
- }
-
- public void configureEditor(ComboBoxEditor var1, Object var2) {
- var1.setItem(var2);
- }
-
- public void processKeyEvent(KeyEvent var1) {
- if (var1.getKeyCode() == 9) {
- this.hidePopup();
- }
-
- super.processKeyEvent(var1);
- }
-
- public boolean isFocusTraversable() {
- return this.getUI().isFocusTraversable();
- }
-
- public void setKeySelectionManager(KeySelectionManager var1) {
- this.keySelectionManager = var1;
- }
-
- public KeySelectionManager getKeySelectionManager() {
- return this.keySelectionManager;
- }
-
- public int getItemCount() {
- return this.dataModel.getSize();
- }
-
- public Object getItemAt(int var1) {
- return this.dataModel.getElementAt(var1);
- }
-
- protected KeySelectionManager createDefaultKeySelectionManager() {
- return new DefaultKeySelectionManager(this);
- }
-
- public boolean isOpaque() {
- return true;
- }
-
- public AccessibleContext getAccessibleContext() {
- if (super.accessibleContext == null) {
- super.accessibleContext = new AccessibleJComboBox(this);
- }
-
- return super.accessibleContext;
- }
- }
-