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