summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/javax/swing/DefaultComboBoxModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/swing/DefaultComboBoxModel.java')
-rw-r--r--libjava/classpath/javax/swing/DefaultComboBoxModel.java18
1 files changed, 10 insertions, 8 deletions
diff --git a/libjava/classpath/javax/swing/DefaultComboBoxModel.java b/libjava/classpath/javax/swing/DefaultComboBoxModel.java
index ea261a33bbf..ab80b61f1f9 100644
--- a/libjava/classpath/javax/swing/DefaultComboBoxModel.java
+++ b/libjava/classpath/javax/swing/DefaultComboBoxModel.java
@@ -1,5 +1,5 @@
/* DefaultComboBoxModel.java --
- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -107,22 +107,24 @@ public class DefaultComboBoxModel extends AbstractListModel
public DefaultComboBoxModel(Vector vector)
{
this.list = vector;
- if (vector.size() > 0)
+ if (getSize() > 0)
selectedItem = vector.get(0);
}
/**
* Adds an element to the model's item list and sends a {@link ListDataEvent}
* to all registered listeners. If the new element is the first item added
- * to the list, it is set as the selected item.
+ * to the list, and the selected item is <code>null</code>, the new element
+ * is set as the selected item.
*
* @param object item to add to the model's item list.
*/
public void addElement(Object object)
{
- list.add(object);
- fireIntervalAdded(this, list.size() - 1, list.size() - 1);
- if (list.size() == 1)
+ list.addElement(object);
+ int index = list.size() - 1;
+ fireIntervalAdded(this, index, index);
+ if (list.size() == 1 && selectedItem == null)
setSelectedItem(object);
}
@@ -141,14 +143,14 @@ public class DefaultComboBoxModel extends AbstractListModel
public void removeElementAt(int index)
{
int selected = getIndexOf(selectedItem);
- list.remove(index);
if (selected == index) // choose a new selected item
{
if (selected > 0)
selectedItem = getElementAt(selected - 1);
else
- selectedItem = getElementAt(selected);
+ selectedItem = getElementAt(selected + 1);
}
+ list.removeElementAt(index);
fireIntervalRemoved(this, index, index);
}
OpenPOWER on IntegriCloud