// This package defines MIDP applications and the interactions
// between the application and the environment in which the
// application runs.
import javax.microedition.midlet.*;
// This package provides a set of features for implementation
// of user interfaces.
import javax.microedition.lcdui.*;
public class GuiTests
extends MIDlet
implements CommandListener {
// display manager
Display display;
// a menu with items; main menu
List menu;
// list of choices
List choose;
// textbox
TextBox input;
// ticker
Ticker ticker = new Ticker( "Test GUI Components" );
// alerts
final Alert soundAlert = new Alert( "sound Alert" );
// date
DateField date = new DateField( "Today's date: ", DateField.DATE );
// form
Form form = new Form( "Form for Stuff" );
// today's form
Form today = new Form( "Today's date" );
// gauge
Gauge gauge = new Gauge( "Progress Bar", false, 20, 9 );
// text field
TextField textfield = new TextField( "TextField Label", "abc", 50, 0 );
// command
static final Command backCommand = new Command( "Back", Command.BACK, 0 );
static final Command mainMenuCommand = new Command( "Main", Command.SCREEN, 1 );
static final Command exitCommand = new Command( "Exit", Command.STOP, 2 );
String currentMenu;
// constructor.
public GuiTests( ) { }
/*********************************************************
* *
* Start the MIDlet by creating a list of items *
* and associating the exit command with it. *
* *
*********************************************************/
public void startApp( )
throws MIDletStateChangeException {
display = Display.getDisplay( this );
menu = new List( "Test Components", Choice.IMPLICIT );
menu.append( "Test TextBox", null );
menu.append( "Test List", null );
menu.append( "Test Alert", null );
menu.append( "Test Date", null );
menu.append( "Test Form", null );
menu.addCommand( exitCommand );
menu.setCommandListener( this );
menu.setTicker( ticker );
mainMenu( );
// form
form.append( gauge );
form.append( textfield );
// today
today.append( date );
}
public void pauseApp( ) {
display = null;
choose = null;
menu = null;
ticker = null;
form = null;
today = null;
input = null;
gauge = null;
textfield = null;
}
public void destroyApp( boolean unconditional ) {
notifyDestroyed( );
}
// main menu
void mainMenu( ) {
display.setCurrent( menu );
currentMenu = "Main";
}
/*********************************************************
* *
* Test the TextBox component. *
* *
*********************************************************/
public void testTextBox( ) {
input = new TextBox( "Enter Some Text:", "", 10, TextField.ANY );
input.setTicker( new Ticker( "Testing TextBox" ) );
input.addCommand( backCommand );
input.setCommandListener( this );
input.setString( "" );
display.setCurrent( input );
currentMenu = "input";
}
/*********************************************************
* *
* Test the List component. *
* *
*********************************************************/
public void testList( ) {
choose = new List( "Choose Items", Choice.MULTIPLE );
choose.setTicker( new Ticker( "Testing List" ) );
choose.addCommand( backCommand );
choose.setCommandListener( this );
choose.append( "Item 1", null );
choose.append( "Item 2", null );
choose.append( "Item 3", null );
display.setCurrent( choose );
currentMenu = "list";
}
/*********************************************************
* *
* Test the Alert component. *
* *
*********************************************************/
public void testAlert( ) {
soundAlert.setType( AlertType.ERROR );
//soundAlert.setTimeout( 20 );
soundAlert.setString( "** ERROR **" );
display.setCurrent( soundAlert );
}
/*********************************************************
* *
* Test the DateField component. *
* *
*********************************************************/
public void testDate( ) {
java.util.Date now = new java.util.Date( );
date.setDate( now );
today.addCommand( backCommand );
today.setCommandListener( this );
display.setCurrent( today );
currentMenu = "date";
}
/*********************************************************
* *
* Test the Form component. *
* *
*********************************************************/
public void testForm( ) {
form.addCommand( backCommand );
form.setCommandListener( this );
display.setCurrent( form );
currentMenu = "form";
}
/*********************************************************
* *
* Handle events. *
* *
*********************************************************/
public void commandAction( Command c, Displayable d ) {
String label = c.getLabel( );
if ( label.equals( "Exit" ) ) {
destroyApp( true );
}
else if ( label.equals( "Back" ) ) {
if ( currentMenu.equals( "list" ) || currentMenu.equals( "input" ) ||
currentMenu.equals( "date" ) || currentMenu.equals( "form" ) ) {
// go back to menu
mainMenu( );
}
}
else {
List down = (List) display.getCurrent( );
switch( down.getSelectedIndex( ) ) {
case 0: testTextBox( ); break;
case 1: testList( ); break;
case 2: testAlert( ); break;
case 3: testDate( ); break;
case 4: testForm( ); break;
}
}
}
}
|