Listing 1

public void commandAction( Command com,
                           Displayable dis ) {  *
  if ( dis == airportMenu &&
       com == List.SELECT_COMMAND ) {
 // An airport has been selected 
  }
  else if ( dis == servicesMenu &&
            com == List.SELECT_COMMAND ) {
 // A weather service has been selected
  }
  else if ( com == backCommand ) {
// The back button returns to airport menu
  }
  else if ( com == exitCommand ) {
 // The exit button exits the midlet
  }//end if/else
}//end commandAction(Command, Displayable)

Listing 2

switch( choice ) {
 case 0:
  SoapObject obj = (SoapObject)
     callService( currentAirport, "getSummary" );
  if (obj != null ) {
   result = "The weather at " +
    obj.getProperty(0) + " is " +
    obj.getProperty(3) + " with a " +
    obj.getProperty(2) + " sky, and wind " +    
    obj.getProperty(1) + ". The humidity is " +
    obj.getProperty(4) + ", the pressure is " + 
    obj.getProperty(5) + ", and visibility is " + 
    obj.getProperty(6) + ".";
  }//end if (obj != null)
  break;
 case 1:
  result = (String) callService( currentAirport,
                                 "getHumidity" );
  break;
 case 2:
  result = (String) callService( currentAirport,
                                 "getPressure" );
  break;
 case 3:
  result = (String) callService( currentAirport,
                            "getSkyConditions" );
  break;
 case 4:
  result = (String) callService( currentAirport,
                              "getTemperature" );
  break;
 case 5:
  result = (String) callService( currentAirport,
                                       "getOb" );
  break;
 case 6:
  result = (String) callService( currentAirport,
                                     "getWind" );
  break;
}//end switch();   
  
//display the result
response.setString( result );
display.setCurrent( response );
 

Listing 3

private Object callService( int choice,
                            String methodName ) {
 Object result = null;
 
 try {
  transport = new HttpTransport( serviceUrl,
                 soapAction + "#" + methodName );
  transport.debug = true;
    
  classMap = new ClassMap();
  classMap.prefixMap = new PrefixMap(
   classMap.prefixMap, "air", serviceNamespace );
 
  transport.setClassMap( classMap );
    
  request = new SoapObject( serviceNamespace,
                            methodName );
  request.addProperty( "arg0",
                        airportCodes[ choice ] );
  result = transport.call( request );
 } catch( Exception e ) {
    e.printStackTrace();
    System.out.println( "Request: \n" +
                        transport.requestDump );
    System.out.println( "Response: \n" +
                        transport.responseDump );
    result = null;
 }//end try/catch
 
 return result;
}//end callService()