   import javax.realtime.*;

   public class ThrusterButtonHandler extends AsyncEventHandler
   {
      private PeriodicTimer myEngineTimer;
      private OneShotTimer engineOff;
      private EngineControl myControl;
      private ThrusterDial myDial;
      
      public ThrusterButtonHandler(AsyncEvent Button, 
             ThrusterDial dial, EngineControl control)
      {
         super();
         myDial = dial;
         myControl = control;
         System.out.println("Thruster button handler constructor " );
         Button.addHandler(this);
         System.out.println("handler constructor ended" );
      }
   
      public void handleAsyncEvent()
      {
         System.out.println("thruster firecount " +getAndClearPendingFireCount()); // throw away result
      // need to set up timer
         RelativeTime thrusterDuration = myDial.getSetting();
         
         myEngineTimer = new PeriodicTimer(null, 
                       new RelativeTime(100,0), 
                       new AsyncEventHandler(myControl));
                       
         engineOff = new OneShotTimer(thrusterDuration,
                       new AsyncEventHandler(
                         new EngineStop(myEngineTimer, myControl)));
                         
         System.out.println("starting engines now...");
         myEngineTimer.start();
         myControl.start();
         engineOff.start();
    
      }
   }



