第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: }