Hey,
This patch modifies the remove(int) method. It now makes classpath pass
a couple of failing Intel tests. I have a mauve test for the remove
method and will be committing it after I commit this patch.
2006-08-01 Tania Bento <[EMAIL PROTECTED]>
* java/awt/Choice.java
(remove(int)): An IllegalArgumentException should not be thrown
if int is invalid. Update selectedIndex and peer selection.
Cheers,
Tania
Index: java/awt/Choice.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/awt/Choice.java,v
retrieving revision 1.28
diff -u -r1.28 Choice.java
--- java/awt/Choice.java 30 Jul 2006 09:01:33 -0000 1.28
+++ java/awt/Choice.java 1 Aug 2006 16:14:39 -0000
@@ -320,9 +320,6 @@
*/
public synchronized void remove(int index)
{
- if ((index < 0) || (index > getItemCount()))
- throw new IllegalArgumentException("Bad index: " + index);
-
pItems.removeElementAt(index);
if (peer != null)
@@ -334,11 +331,16 @@
{
if( index == selectedIndex )
{
- if( peer != null )
+ if( peer != null )
((ChoicePeer)peer).select( 0 ); // force an event here
+ selectedIndex = 0;
}
else if( selectedIndex > index )
- select( selectedIndex - 1 );
+ {
+ if ( peer != null)
+ ((ChoicePeer)peer).select(selectedIndex - 1);
+ select( selectedIndex - 1 );
+ }
}
}