ホーム > デベロッパ > J2ME / MIDP プログラミング > 実機に載せよう

第4回:実機に載せよう(ダウンサイズ)

001: //package com.s_cradle.improve.client;
002: 
003: import java.io.*;
004: //import com.s_cradle.improve.Constants;
005: 
006: /**
007:  * Copyright (C) 2003 Sophia Cradle, Inc.
008:  *
009:  * オペレーション delete を使ったタスクを行うクラスです。
010:  *
011:  * @author Masaru Yoshimura
012:  */
013: public class E/*DeleteTask*/ extends Z/*Task*/ {
014:     //downsize 定数展開
015:     //private static String WARNING_MESSAGE = "退会処理時通信エラー
";
016: 
017:     private static final String[] ITEMS = new String[]{
018:         "account"/*Constants.PARAMETER_ACCOUNT*/,
                                            "password"/*Constants.PARAMETER_PASSWORD*/};
019: 
020:     /**
021:      * コンストラクタ。タスクで使う値(アカウントとパスワード)を引数にとる。
022:      */
023:     public void E/*initializeDeleteTask*/(String[] str){
024:         StackMap/*initializeTask*//*super*/(1/*TASK_DELETE*/,
                ITEMS, new String[]{D/*strs*/[0]/*account*/, D/*strs*/[1]/*password*/});
025:     }
026: 
027:     /**
028:      * 失敗時の処理
029:      */
030:      protected void Z/*processFailed*/() {
031:         I/*ImproveMIDlet*/.StackMap/*listCanvas*/.I/*ticker*/.Code/*insert*/(
                      3/*Ticker.LEVEL_WARNING*/,"退会処理時通信エラー
"/*WARNING_MESSAGE*/);
032:     }
033: 
034:     /**
035:      * 返値を読んだ後の処理
036:      */
037:     protected void Code/*processAfterReturnValue*/(int result, DataInputStream input)
038:             throws java.io.IOException {
039:         D/*strs*/[0]/*account*/ = "";
040:         D/*strs*/[1]/*password*/ = "";
041:         I/*ImproveMIDlet*//*
                           ResourceManager*/.Code/*setAccountAndPasswordToRecordStore*/();
042:         I/*ImproveMIDlet*/.I/*midlet*/.notifyDestroyed();
043:     }
044: 
045:     //downsize クラス融合 以下TwoChoiceMenu
046: 
047:     private static final String[] ITEMS2 = new String[]{"はい","いいえ"};
048: 
049:     // 何に使われているかの定数
050:     //downsize 定数展開
051:     /*
052:     public static final int MENU_WITHDRAW = 0;
053:     public static final int MENU_QUIT = 1;
054:     public static final int MENU_REMOVEBUDDY = 2;
055:     public static final int MENU_PHONE = 3;
056: 
057:     private static final int YES = 0;
058:     private static final int NO = 1;
059:     */
060: 
061:     private int いいえ/*mode*/;
062:     private A/*Buddy*/ はい/*buddy*/;
063: 
064:     /**
065:      * コンストラクタ
066:      */
067:     public void E/*initializeTwoChoiceMenu*/(String title, int mode_) {
068:         //super(title, ITEMS, true);
069:         E/*initializeMenu*/(title,ITEMS2,true);
070:         いいえ/*mode*/ = mode_;
071:     }
072: 
073:     /**
074:      * コンストラクタ
075:      */
076:     public void E/*initializeTwoChoiceMenu*/(
                                           String title, int mode_, A/*Buddy*/ buddy_) {
077:         E/*initializeTwoChoiceMenu*//*this*/(title, mode_);
078:         はい/*buddy*/ = buddy_;
079:     }
080: 
081:     /**
082:      * キーハンドラ
083:      */
084:     public Z/*Task*//*Menu*/ StackMap/*processFireKeyRelease*/(){
085:         switch( いいえ/*mode*/ ){
086:             case 0/*MENU_WITHDRAW*/:
087:                 if( Z/*idata*/[0]/*cursor*/ == 0/*YES*/ ){
088:                     Z/*getTask*/(
                           1/*Task.TASK_DELETE*/,new String[0]).StackMap/*schedule*/(0);
089:                 }
090:                 break;
091:             case 1/*MENU_QUIT*/:
092:                 if( Z/*idata*/[0]/*cursor*/ == 0/*YES*/ ){
093:                     Z/*getTask*/(4/*Task.TASK_SET*/,new String[]{
094:                             String.valueOf(4/*Constants.ITEM_INDEX_STATUS*/),
095:                             String.valueOf(0/*Constants.STATUS_LOGOFF*/)})
096:                         .StackMap/*schedule*/(0);
097:                 }
098:                 break;
099:             case 2/*MENU_REMOVEBUDDY*/:
100:                 if( Z/*idata*/[0]/*cursor*/ == 0/*YES*/ ){
101:                     //downsize 即値の利用
102:                     Z/*getTask*/(3/*Task.TASK_REMOVE*/,
103:                             new String[]{はい/*buddy*/.StackMap/*
                                     etc*/[0]/*account*/}).StackMap/*schedule*/(0);
104:                 }
105:                 break;
106:             case 3/*MENU_PHONE*/:
107:                 if( Z/*idata*/[0]/*cursor*/ == 0/*YES*/ ){
108:                     //電話処理
109:                 }
110:                 break;
111:             default:
112:                 break;
113:         }
114: 
115:         return null;
116:     }
117: }