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 + -
显示快捷键?