accountsetupui.java

来自「SUN公司发布的SmartTicket 2.0蓝图」· Java 代码 · 共 291 行

JAVA
291
字号
/* * Copyright 2001, 2002, 2003 Sun Microsystems, Inc. All Rights Reserved. * Except for any files in PNG format (which are marked with the filename * extension ".png"), GIF format (which are marked with the filename * extension ".gif"), or JPEG format (which are marked with the filename * extension ".jpg"), 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. * You may compile, use, perform and display the following files with * original Java Smart Ticket Sample Application code obtained from Sun * Microsystems, Inc. only: * - files in PNG format and having the ".png" extension * - files in GIF format and having the ".gif" extension * - files in JPEG format and having the ".jpg" extension * You may not modify or redistribute .png, .gif, or .jpg files in any * form, in whole or in part, by any means without prior written * authorization from Sun Microsystems, Inc. and its licensors, if any. * Neither the name of Sun Microsystems, Inc., the 'Java Smart Ticket * Sample Application', 'Java', 'Java'-based names, 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 * MIDROSYSTEMS, 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. * $Id: AccountSetupUI.java,v 1.7 2003/06/22 22:04:47 ro89390 Exp $ */package com.sun.j2me.blueprints.smartticket.client.midp.ui;import javax.microedition.lcdui.*;import java.util.Calendar;import com.sun.j2me.blueprints.smartticket.shared.midp.model.AccountInfo;import com.sun.j2me.blueprints.smartticket.client.midp.model.Preferences;import com.sun.j2me.blueprints.smartticket.client.midp.util.ApplicationUtilities;public class AccountSetupUI extends Form implements CommandListener,         ItemStateListener {    private UIController uiController;    private AccountInfo accountInfo;    private Preferences preferences;    private Command exitCommand;    private Command doneCommand;    private StringItem accountSetupMessage;    private TextField loginField;    private TextField passwordField;    private TextField verifyPasswordField;    private ChoiceGroup autoLoginChoiceGroup;    private TextField firstZipField;    private TextField secondZipField;    private ChoiceGroup enterBillingInfoNowChoiceGroup;    private StringItem creditCardExpirationItem;    private int creditCardExpirationItemNum;    private UIUtilities.MonthChoiceGroup creditCardExpirationMonthChoiceGroup;    private int creditCardExpirationMonthChoiceGroupNum;    private UIUtilities.YearChoiceGroup creditCardExpirationYearChoiceGroup;    private int creditCardExpirationYearChoiceGroupNum;    private TextField creditCardNumberField;    private int creditCardNumberFieldNum;    public AccountSetupUI(UIController uiController) {        super(uiController.getString(UIMessageCodes.ACCOUNT_SETUP));        this.uiController = uiController;        accountSetupMessage =             new StringItem(uiController.getString(UIMessageCodes.ACCOUNT_SETUP_MESSAGE),                            null);        append(accountSetupMessage);        loginField =             new TextField(uiController.getString(UIMessageCodes.LOGIN), null,                           12, TextField.ANY);        append(loginField);        passwordField =             new TextField(uiController.getString(UIMessageCodes.PASSWORD),                           null, 20, TextField.PASSWORD);        append(passwordField);        verifyPasswordField =             new TextField(uiController.getString(UIMessageCodes.RE_ENTER_PASSWORD),                           null, 20, TextField.PASSWORD);        append(verifyPasswordField);        autoLoginChoiceGroup = new ChoiceGroup(null, ChoiceGroup.MULTIPLE,                                                new String[] {            uiController.getString(UIMessageCodes.SIGN_IN_AUTOMATICALLY)        }, null);        append(autoLoginChoiceGroup);        firstZipField =             new TextField(uiController.getString(UIMessageCodes.FIRST_ZIP),                           null, 5, TextField.NUMERIC);        append(firstZipField);        secondZipField =             new TextField(uiController.getString(UIMessageCodes.SECOND_ZIP),                           null, 5, TextField.NUMERIC);        append(secondZipField);        enterBillingInfoNowChoiceGroup = new ChoiceGroup(null,                 ChoiceGroup.MULTIPLE, new String[] {            uiController.getString(UIMessageCodes.ENTER_BILLING_INFO_NOW)        }, null);        append(enterBillingInfoNowChoiceGroup);        creditCardExpirationItem =             new StringItem(uiController.getString(UIMessageCodes.CREDIT_CARD_EXPIRATION_DATE),                            null);        creditCardExpirationMonthChoiceGroup =             new UIUtilities.MonthChoiceGroup(uiController);        creditCardExpirationYearChoiceGroup =             new UIUtilities.YearChoiceGroup(uiController);        creditCardNumberField =             new TextField(uiController.getString(UIMessageCodes.CARD_NUM),                           null, 19, TextField.NUMERIC);        doneCommand = new Command(uiController.getString(UIMessageCodes.DONE),                                   Command.OK, 5);        addCommand(doneCommand);        exitCommand = new Command(uiController.getString(UIMessageCodes.EXIT),                                   Command.EXIT, 5);        addCommand(exitCommand);        setItemStateListener(this);        setCommandListener(this);    }    public void init(AccountInfo accountInfo, Preferences preferences) {        this.accountInfo = accountInfo;        this.preferences = preferences;    }     public void commandAction(Command command, Displayable displayable) {        if (command == exitCommand) {            uiController.exitRequested();        } else if (command == doneCommand) {            String login = null;            String password = null;            String verifyPassword = null;            String firstZip = null;            String secondZip = null;            String creditCardNumber = null;            login = loginField.getString();            if (login == null || login.length() < UIUtilities.LOGIN_LENGTH) {                uiController.showErrorAlert(uiController.getString(UIMessageCodes.LOGIN_BAD_LENGTH));                return;            }             password = passwordField.getString();            if (password == null                     || password.length() < UIUtilities.PASSWORD_LENGTH) {                uiController.showErrorAlert(uiController.getString(UIMessageCodes.PASSWORD_BAD_LENGTH));                return;            }             verifyPassword = verifyPasswordField.getString();            if (verifyPassword == null ||!verifyPassword.equals(password)) {                uiController.showErrorAlert(uiController.getString(UIMessageCodes.PASSWORDS_DO_NOT_MATCH));                return;            }             firstZip = firstZipField.getString();            if (firstZip == null                     || firstZip.length() != UIUtilities.ZIP_LENGTH) {                uiController.showErrorAlert(uiController.getString(UIMessageCodes.ZIP_CODE_BAD_LENGTH));                return;            }             secondZip = secondZipField.getString();            // it's not necessary to have 2nd zip code, but it's required to            // be 5 characters long            if (secondZip != null && secondZip.length() != 0                     && secondZip.length() != UIUtilities.ZIP_LENGTH) {                uiController.showErrorAlert(uiController.getString(UIMessageCodes.ZIP_CODE_BAD_LENGTH));                return;            }             if (enterBillingInfoNowChoiceGroup.isSelected(0)) {                try {                    int month =                         creditCardExpirationMonthChoiceGroup.getSelectedMonth();                } catch (IllegalStateException e) {                    uiController.showErrorAlert(uiController.getString(UIMessageCodes.PLEASE_PROVIDE_EXPIRATION_MONTH));                    return;                }                 try {                    int year =                         creditCardExpirationYearChoiceGroup.getSelectedYear();                } catch (IllegalStateException e) {                    uiController.showErrorAlert(uiController.getString(UIMessageCodes.PLEASE_PROVIDE_EXPIRATION_YEAR));                    return;                }                 creditCardNumber = creditCardNumberField.getString();                if (creditCardNumber == null                         || creditCardNumber.length() == 0) {                    uiController.showErrorAlert(uiController.getString(UIMessageCodes.PLEASE_ENTER_CREDIT_CARD_NUMBER));                    return;                }             }             // Set the information.            accountInfo.setUserName(login);            accountInfo.setPassword(password);            preferences.setDefaultZipCode(firstZip);            preferences.setSilentlyLoggingIn(autoLoginChoiceGroup.isSelected(0));            if (secondZip != null) {                preferences.setSecondZipCode(secondZip);            }             if (enterBillingInfoNowChoiceGroup.isSelected(0)) {                accountInfo.setCreditCardNumber(creditCardNumber);                // XXX - Could use a better format for the string, or                // use individual variables.                accountInfo.setCreditCardExpirationDate(ApplicationUtilities.getCreditCardExpirationDate(creditCardExpirationMonthChoiceGroup.getSelectedMonth(),                         creditCardExpirationYearChoiceGroup.getSelectedYear()));            }             uiController.handleEvent(UIController.EventIds.EVENT_ID_ACCOUNT_SETUP_SAVE_REQUESTED,                                      new Object[] {                accountInfo, preferences            });        }     }     public void itemStateChanged(Item item) {        if (item == enterBillingInfoNowChoiceGroup) {            if (enterBillingInfoNowChoiceGroup.isSelected(0)) {                creditCardExpirationItemNum =                     append(creditCardExpirationItem);                creditCardExpirationMonthChoiceGroupNum =                     append(creditCardExpirationMonthChoiceGroup);                creditCardExpirationYearChoiceGroupNum =                     append(creditCardExpirationYearChoiceGroup);                creditCardNumberFieldNum = append(creditCardNumberField);            } else {                delete(creditCardNumberFieldNum);                delete(creditCardExpirationYearChoiceGroupNum);                delete(creditCardExpirationMonthChoiceGroupNum);                delete(creditCardExpirationItemNum);            }         }     } }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?