ProgressScreen.java
/*
* Copyright © 2012 Nokia Corporation. All rights reserved.
* Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.
* Oracle and Java are trademarks or registered trademarks of Oracle and/or its
* affiliates. Other product and company names mentioned herein may be trademarks
* or trade names of their respective owners.
* See LICENSE.TXT for license information.
*/
package com.nokia.example.bcexchanger.ui;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Gauge;
import javax.microedition.lcdui.Item;
import com.nokia.example.bcexchanger.*;
/**
*
* This class implements the screen which indicates that some
* operation is in progress. For example when inquiry, service
* discovery, business card sending and receiving is running this
* screen is displayed. Using this screen user can cancel the process
*
* The class is extending an example.BCExchanger.ui.Screen class
*
* @see example.BCExchanger.ui.Screen Design patterns: State
*/
public class ProgressScreen extends Screen {
private Command cancelCommand;
private Gauge gauge;
private Form progressBar;
/**
* Constructor
*
* @param _midlet -
* the parent class which keeps the current UI state
* @param message -
* text message to be displayed
*/
public ProgressScreen(BCExchangerMIDlet _midlet, String message) {
super(_midlet);
progressBar = new Form("Please wait");
gauge = new Gauge(message, false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING);
gauge.setLayout(Item.LAYOUT_CENTER);
gauge.setLayout(Item.LAYOUT_VCENTER);
progressBar.append(gauge);
cancelCommand = new Command("Cancel", Command.CANCEL, 1);
progressBar.addCommand(cancelCommand);
progressBar.setCommandListener(this);
displayable = progressBar;
}
public void commandAction(Command command, Displayable _displayable) {
if (_displayable != progressBar) {
// wrong displayable
throw new RuntimeException("Internal error #21");
}
if (command == cancelCommand) {
midlet.getExchanger().cancelSending();
} else {
// unknown command
throw new RuntimeException("Internal error #22");
}
}
}