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

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

001: //package com.s_cradle.improve.client;
002: 
003: import javax.microedition.lcdui.Form;
004: import javax.microedition.lcdui.Item;
005: import javax.microedition.lcdui.StringItem;
006: import javax.microedition.lcdui.ImageItem;
007: import javax.microedition.lcdui.CommandListener;
008: import javax.microedition.lcdui.Command;
009: import javax.microedition.lcdui.Displayable;
010: //import com.s_cradle.improve.Constants;
011: 
012: /**
013:  * Copyright (C) 2003 Sophia Cradle, Inc.
014:  *
015:  * 友達フォーカス時の Menu です。。
016:  *
017:  * @author Masaru Yoshimura
018:  */
019: public class G/*FriendMenu*/ extends Z/*Task*//*Menu*/ implements CommandListener{
020:     private static final String[] 消しちゃう/*ITEMS*/ =
                                                 {"チャットする","電話する","情報を見る",
021:         "消しちゃう","キャンセル"};
022:     //downsize 定数展開
023:     /*
024:     private static final String PRE_TITLE = "メニュー:";
025: 
026:     private static final int ITEM_CHAT = 0;
027:     private static final int ITEM_PHONE = 1;
028:     private static final int ITEM_INFO = 2;
029:     private static final int ITEM_REMOVE = 3;
030:     private static final int ITEM_CANCEL = 4;
031: 
032:     private static final String TITLE_INFO = "情報";
033:     */
034: 
035:     private A/*Buddy*/ チャットする/*buddy*/;
036: 
037:     /**
038:      * コンストラクタ
039:      */
040:     public G/*FriendMenu*/(A/*Buddy*/ buddy_) {
041:         Z/*initializeMenu*//*super*/("メニュー:"/*PRE_TITLE*/+buddy_.StackMap/*
                                              etc*/[1]/*nickname*/,消しちゃう/*ITEMS*/);
042:         チャットする/*buddy*/ = buddy_;
043:     }
044: 
045:     /**
046:      * キーハンドラ
047:      */
048:     protected Z/*Task*//*Menu*/ StackMap/*processFireKeyRelease*/() {
049:         Form form;
050: 
051:         switch( Z/*idata*/[0]/*cursor*/ ){
052:             case 0/*ITEM_CHAT*/:
053:                 System.out.println("buddy:"+(チャットする/*buddy*/!=null));
054:                 I/*ImproveMIDlet*/.Code/*setCurrent*/(
                                       new M/*MessagingCanvas*/(チャットする/*buddy*/));
055:                 return null;
056:             case 1/*ITEM_PHONE*/:
057:                 E/*DeleteTask*//*TwoChoiceMenu*/ menu = new E/*DeleteTask*/();
058:                 menu.E/*initializeTwoChoiceMenu*/(
                  "電話しますか?",3/*TwoChoiceMenu.MENU_PHONE*/,チャットする/*buddy*/);
059:                 return menu;
060:             case 2/*ITEM_INFO*/:
061:                 //downsize 即値の利用
062:                 form = new Form("メニュー:"/*TITLE_INFO*/,new Item[]{
063:                     new StringItem(
                         "アカウント: ",チャットする/*buddy*/.StackMap/*etc*/[0]/*account*/),
064:                     new StringItem(
                       "ニックネーム: ",チャットする/*buddy*/.StackMap/*etc*/[1]/*nickname*/),
065:                     new StringItem(
                  "電話番号: ",チャットする/*buddy*/.StackMap/*etc*/[3]/*phoneNumber*/),
066:                     new StringItem(
                     "ステータス: ",チャットする/*buddy*/.StackMap/*etc*/[2]/*description*/),
067:                     (チャットする/*buddy*/.Code/*idata*/[0]/*status*/ !=
                                                         0/*Constants.STATUS_LOGOFF*/) ?
068:                         (Item)new ImageItem(
                             "状態:", チャットする/*buddy*/.StackMap/*getImage*/(false),
069:                                   ImageItem.LAYOUT_DEFAULT,"") :
070:                         (Item)new StringItem("状態:","")
071:                 });
072:                 form.addCommand(StackMap/*okCommand*/);
073:                 form.setCommandListener(this);
074:                 I/*ImproveMIDlet*/.Code/*setCurrent*/(form);
075:                 return null;
076:             case 3/*ITEM_REMOVE*/:
077:                 E/*DeleteTask*//*TwoChoiceMenu*/ menu2 = new E/*DeleteTask*/();
078:                 menu2.E/*initializeTwoChoiceMenu*/(
         "消しますか?",2/*TwoChoiceMenu.MENU_REMOVEBUDDY*/, チャットする/*buddy*/);
079: 
080:                 return menu2;
081:             //case ITEM_CANCEL:
082:             default:
083:                 break;
084:         }
085: 
086:         return null;
087:     }
088: 
089:     /**
090:      * CommandListener実装
091:      */
092:     public void commandAction(Command c, Displayable d){
093:         //downsize アルゴリズム
094:         /*
095:         if( c.equals(cancelCommand) ){
096:             ImproveMIDlet.setCurrent(ImproveMIDlet.listCanvas);
097:         } else if( c.equals(okCommand) ){
098:             switch(cursor){
099:                 case ITEM_INFO:
100:                    break;
101:                 default:
102:                     break;
103:             }
104:             ImproveMIDlet.setCurrent(ImproveMIDlet.listCanvas);
105:         }*/
106:         if( c.equals(Code/*cancelCommand*/) || c.equals(StackMap/*okCommand*/) ){
107:             I/*ImproveMIDlet*/.Code/*setCurrent*/(
                                           I/*ImproveMIDlet*/.StackMap/*listCanvas*/);
108:         }
109:     }
110: }