diff options
author | Fernando Nasser <fnasser@redhat.com> | 2004-01-05 21:18:06 +0000 |
---|---|---|
committer | Fernando Nasser <fnasser@gcc.gnu.org> | 2004-01-05 21:18:06 +0000 |
commit | b7a9b4af036708755a251309dcf591d9bf9db9ea (patch) | |
tree | 3b896cc9aa5303dfe9b469323979c8ef4746d208 /libjava/java/awt/Choice.java | |
parent | b17fc9eb2572616887716bd7ec21219b2be83e3b (diff) | |
download | gcc-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.java | 58 |
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; |