Fix to Issue #40

Added check if index is in range before using it to index the list of
items.
This commit is contained in:
James Morrow 2016-01-05 19:20:25 -07:00
parent 665b0c1aa5
commit 9eedf3ad45
1 changed files with 19 additions and 17 deletions

View File

@ -127,24 +127,26 @@ public class DropdownList extends Controller< DropdownList > implements ControlL
// n += itemRange; /* UP */
int index = ( int ) n + itemIndexOffset;
Map m = items.get( index );
switch ( _myType ) {
case ( LIST ):
setValue( index );
for ( Object o : items ) {
( ( Map ) o ).put( "state" , false );
if (index < items.size()) {
Map m = items.get( index );
switch ( _myType ) {
case ( LIST ):
setValue( index );
for ( Object o : items ) {
( ( Map ) o ).put( "state" , false );
}
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
break;
case ( DROPDOWN ):
setValue( index );
setOpen( false );
getCaptionLabel( ).setText( ( m.get( "text" ).toString( ) ) );
break;
case ( CHECKBOX ):
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
break;
}
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
break;
case ( DROPDOWN ):
setValue( index );
setOpen( false );
getCaptionLabel( ).setText( ( m.get( "text" ).toString( ) ) );
break;
case ( CHECKBOX ):
m.put( "state" , !ControlP5.b( m.get( "state" ) ) );
break;
}
}