Mega Code Archive

 
Categories / Java / J2ME
 

Multi Alert

/* License  *   * Copyright 1994-2004 Sun Microsystems, Inc. All Rights Reserved.  *   * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions  * are met:  *    *  * Redistribution of source code must retain the above copyright notice,  *      this list of conditions and the following disclaimer.  *   *  * Redistribution in binary form must reproduce the above copyright notice,  *      this list of conditions and the following disclaimer in the  *      documentation and/or other materials provided with the distribution.  *   * Neither the name of Sun Microsystems, Inc. or the names of contributors  * may be used to endorse or promote products derived from this software  * without specific prior written permission.  *    * This software is provided "AS IS," without a warranty of any kind. ALL  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING  * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE  * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN")  * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE  * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS  * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST  * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,  * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY  * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,  * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  *    * You acknowledge that this software is not designed, licensed or intended  * for use in the design, construction, operation or maintenance of any  * nuclear facility.   */ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.*; public class MultiAlert extends MIDlet {     Display      display;     Command      exitCommand = new Command( "Exit", Command.EXIT,                                                              1 );     Timer        timer1 = new Timer();     Timer        timer2 = new Timer();     Timer        timer3 = new Timer();     MainForm     form = new MainForm();     AlertRouter  router;     public MultiAlert() {         display = Display.getDisplay( this );         router = new AlertRouter( display );         timer1.schedule( new AlertTrigger( "Alert 1",                              "This is alert #1" ), 5000, 10000 );         timer2.schedule( new AlertTrigger( "Alert 2",                               "This is alert #2" ), 5000, 7000 );         timer3.schedule( new AlertTrigger( "Alert 3",                               "This is alert #3" ), 5000, 9000 );     }     protected void destroyApp( boolean unconditional ) {         timer1.cancel();         timer2.cancel();         timer3.cancel();     }     protected void startApp() {         display.setCurrent( form );     }     protected void pauseApp() {     }     public void exit(){         destroyApp( true );         notifyDestroyed();     }     class AlertTrigger extends TimerTask {         public AlertTrigger( String title, String message )         {             this.title = title;             this.message = message;         }           public void run(){             Alert alert = new Alert( title, message, null, null );             alert.setTimeout( Alert.FOREVER );             router.showAlert( alert );        }         private String title;         private String message;     }     class MainForm extends Form implements CommandListener {         public MainForm(){             super( "MultiAlert Demo" );             addCommand( exitCommand );             setCommandListener( this );         }         public void commandAction( Command c, Displayable d ){             exit();         }     } }