Mega Code Archive

 
Categories / Java / J2ME
 

Non Interactive Gauge

/*-------------------------------------------------- * NonInteractiveGauge.java * * Example from the book:     Core J2ME Technology * Copyright John W. Muchow   http://www.CoreJ2ME.com * You may use/modify for any non-commercial purpose *-------------------------------------------------*/ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.Timer; import java.util.TimerTask; public class NonInteractiveGauge extends MIDlet implements CommandListener {   private Display display;        // Reference to display object    private Form fmMain;            // The main form   private Command cmExit;         // Exit the form   private Command cmStop;         // Stop the download     private Gauge gaProgress;       // Progress indicator   private Timer tm;               // The Timer   private DownloadTimer tt;       // The task to run   public NonInteractiveGauge()   {     display = Display.getDisplay(this);     // Create the gauge, exit and stop command     gaProgress = new Gauge("Download Progress", false, 20, 1);     cmExit = new Command("Exit", Command.EXIT, 1);     cmStop = new Command("Stop", Command.STOP, 1);                  // Create the form, add gauge & stop command, listen for events     fmMain = new Form("");     fmMain.append(gaProgress);         fmMain.addCommand(cmStop);     fmMain.setCommandListener(this);   }   // Called by application manager to start the MIDlet.   public void startApp()   {     display.setCurrent(fmMain);     // Create a timer that fires off every 1000 milliseconds         tm = new Timer();     tt = new DownloadTimer();     tm.scheduleAtFixedRate(tt, 0, 1000);             }   public void pauseApp()   { }      public void destroyApp(boolean unconditional)   { }   public void commandAction(Command c, Displayable s)   {     if (c == cmExit)     {       destroyApp(false);       notifyDestroyed();     }     else if (c == cmStop)     {       tm.cancel();       fmMain.removeCommand(cmStop);           fmMain.addCommand(cmExit);           gaProgress.setLabel("Download Cancelled!");     }         }      /*--------------------------------------------------   * Process the Timer Task   *-------------------------------------------------*/     private class DownloadTimer extends TimerTask   {     public final void run()     {       // Is current value of gauge less than the max?       if (gaProgress.getValue() < gaProgress.getMaxValue())         gaProgress.setValue(gaProgress.getValue() + 1);               else       {         // Remove stop command and replace with Exit         fmMain.removeCommand(cmStop);             fmMain.addCommand(cmExit);                      // Change the gauge label          gaProgress.setLabel("Download Complete!");                  // Stop the timer         cancel();             }     }   } }