import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;
import org.kxmlrpc.*;

/**
  * @author  Kyle Gabhart
  * @copyright  Kyle Gabhart © 2001
  * @version 1.0
  */
public class MyMidlet extends MIDlet
   implements CommandListener {
     private List            list;
     private Command         exitCommand;
     private String[]        menuItems;
     private Display         display;
     private Alert           response;
     private XmlRpcClient    xmlrpc;
     private Vector          params, xmlArray;

     public MyMidlet() {
         //Initialize the User Interface
         menuItems = new String[] {"Timestamp",
                  "Randomizer", "AddressBook"};
         list = new List( "Select a service",
                  List.IMPLICIT, menuItems, null );
         exitCommand = new Command( "Exit",
           Command.EXIT, 1 );
         response = new Alert("Service Return",
                  null, null, AlertType.INFO);
         response.setTimeout( Alert.FOREVER );

         //Add commands
         list.addCommand( exitCommand );
         list.setCommandListener( this );

         //obtain a reference to the device's UI
         display = Display.getDisplay( this );
     }//end MyMidlet()

     public void startApp() {
         display.setCurrent( list );
     }//end startApp()

     public void pauseApp() {
     }//end pauseApp()


     public void destroyApp( boolean bool ) {
         //clean up
         list = null;
         exitCommand = null;
         display = null;
     }//end destroyApp

     public void commandAction( Command com,
                                Displayable dis ) {
         if ( dis == list &&
                     com == List.SELECT_COMMAND ) {
           switch( list.getSelectedIndex() ) {
            case 0:
             try {
              xmlrpc = new XmlRpcClient(
    "http://www.wsjug.org/servlet/XmlRpcServlet" );
              params = new Vector();
              String serverTime = (String)
xmlrpc.execute( "sysTime.getSystemTime", params );
              response.setString(
                           serverTime.toString() );
              display.setCurrent( response );
             }
             catch ( Exception ex ) {
              response.setString( ex.toString() );
              ex.printStackTrace(); // DEBUG
              display.setCurrent( response );
             }//end try/catch
             break;
            case 1:
     case 2:
             response.setString( "Please download
                             the full sample code);
             display.setCurrent( response );
             break;
           }//end switch( list.getSelectedIndex() )
         }
         else if ( com == exitCommand ) {
             destroyApp( true );
             notifyDestroyed();
         }//end if( dis == list &&
                    com == List.SELECT_COMMAND)
     }//end CommandAction( Command, Displayable )
}//end MyMidlet