/* * Copyright © 2013 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"); } } }