aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/awt/Choice.java
diff options
context:
space:
mode:
authorFernando Nasser <fnasser@redhat.com>2004-01-05 21:18:06 +0000
committerFernando Nasser <fnasser@gcc.gnu.org>2004-01-05 21:18:06 +0000
commitb7a9b4af036708755a251309dcf591d9bf9db9ea (patch)
tree3b896cc9aa5303dfe9b469323979c8ef4746d208 /libjava/java/awt/Choice.java
parentb17fc9eb2572616887716bd7ec21219b2be83e3b (diff)
downloadgcc-b7a9b4af036708755a251309dcf591d9bf9db9ea.zip
gcc-b7a9b4af036708755a251309dcf591d9bf9db9ea.tar.gz
gcc-b7a9b4af036708755a251309dcf591d9bf9db9ea.tar.bz2
Choice.java (add): Leave posting of ItemEvents to peer.
2004-01-05 Fernando Nasser <fnasser@redhat.com> * java/awt/Choice.java (add): Leave posting of ItemEvents to peer. (insert): Ditto. (remove): Ditto. Also, Check for valid argument. (removeAll): Use peer interface method. * gnu/java/awt/peer/gtk/GtkChoicePeer.java (nativeAdd): New name for native add function. (nativeRemove): New name for native remove function. (getHistory): New native function. (constructor): Generate ItemEvent. (add): Ditto, if selection is changed. (remove): Ditto, ditto. (removeAll): Add implementation. (handleEvent): Remove. Dead code. (choicePostItemEvent): Add comment. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append): Add comments. (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add): Rename to... (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeAdd): New name. Add comments and fix condition to change selection. (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_remove): Rename to... (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove): New name. Add remove all capability. (Java_gnu_java_awt_peer_gtk_GtkChoicePeer_getHistory): New function. (item_activate): Add cast to remove compiler warning. From-SVN: r75443
Diffstat (limited to 'libjava/java/awt/Choice.java')
-rw-r--r--libjava/java/awt/Choice.java58
1 files changed, 9 insertions, 49 deletions
diff --git a/libjava/java/awt/Choice.java b/libjava/java/awt/Choice.java
index 863888c..d1f601f 100644
--- a/libjava/java/awt/Choice.java
+++ b/libjava/java/awt/Choice.java
@@ -169,17 +169,6 @@ add(String item)
ChoicePeer cp = (ChoicePeer) peer;
cp.add (item, i);
}
-
- if (i == 0)
- {
- selectedIndex = 0;
- // We must generate an ItemEvent here
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent (
- new ItemEvent ((ItemSelectable)this,
- ItemEvent.ITEM_STATE_CHANGED,
- getItem(0),
- ItemEvent.SELECTED));
- }
}
/*************************************************************************/
@@ -229,17 +218,6 @@ insert(String item, int index)
ChoicePeer cp = (ChoicePeer) peer;
cp.add (item, index);
}
-
- if (getItemCount () == 1 || selectedIndex >= index)
- {
- select (0);
- // We must generate an ItemEvent here
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent (
- new ItemEvent ((ItemSelectable)this,
- ItemEvent.ITEM_STATE_CHANGED,
- getItem(0),
- ItemEvent.SELECTED));
- }
}
/*************************************************************************/
@@ -273,6 +251,9 @@ remove(String item)
public synchronized void
remove(int index)
{
+ if ((index < 0) || (index > getItemCount()))
+ throw new IllegalArgumentException("Bad index: " + index);
+
pItems.removeElementAt(index);
if (peer != null)
@@ -281,17 +262,7 @@ remove(int index)
cp.remove (index);
}
- if ((index == selectedIndex) && (getItemCount() > 0))
- {
- select (0);
- // We must generate an ItemEvent here
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent (
- new ItemEvent ((ItemSelectable)this,
- ItemEvent.ITEM_STATE_CHANGED,
- getItem(0),
- ItemEvent.SELECTED));
- }
- else if (selectedIndex > index)
+ if (selectedIndex > index)
--selectedIndex;
}
@@ -303,26 +274,15 @@ remove(int index)
public synchronized void
removeAll()
{
- int count = getItemCount();
-
- if (count <= 0)
+ if (getItemCount() <= 0)
return;
- ChoicePeer cp = (ChoicePeer) peer;
-
- // Select the first item to prevent an spurious ItemEvent to be generated
- if (cp != null)
- {
- cp.select (0);
- selectedIndex = 0; // Just to keep consistent
- }
+ pItems.removeAllElements ();
- for (int i = (count - 1); i >= 0; i--)
+ if (peer != null)
{
- // Always remove the last to avoid generation of ItemEvents.
- pItems.removeElementAt(i);
- if (cp != null)
- cp.remove (i);
+ ChoicePeer cp = (ChoicePeer) peer;
+ cp.removeAll ();
}
selectedIndex = -1;