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
This commit is contained in:
parent
b17fc9eb25
commit
b7a9b4af03
4 changed files with 157 additions and 75 deletions
|
@ -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;
|
||||
pItems.removeAllElements ();
|
||||
|
||||
// Select the first item to prevent an spurious ItemEvent to be generated
|
||||
if (cp != null)
|
||||
if (peer != null)
|
||||
{
|
||||
cp.select (0);
|
||||
selectedIndex = 0; // Just to keep consistent
|
||||
}
|
||||
|
||||
for (int i = (count - 1); i >= 0; i--)
|
||||
{
|
||||
// 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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue