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

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

001: //package com.s_cradle.improve.client;
002: 
003: /**
004:  * タイトル: 
005:  * 説明: 
006:  * 著作権: Copyright (c) 2003
007:  * 会社名: 
008:  * @author 未入力
009:  * @version 1.0
010:  */
011: 
012: import javax.microedition.lcdui.Graphics;
013: import javax.microedition.lcdui.Image;
014: import java.io.DataInputStream;
015: import java.io.IOException;
016: 
017: /**
018:  * Copyright (C) 2003 Sophia Cradle, Inc.
019:  *
020:  * 友達(本人も含む)を表現するクラスです。
021:  *
022:  * @author Masaru Yoshimura
023:  */
024: public class A/*Buddy*/ {
025:     //downsize 定数展開
026:     // 本人か友達か
027:     //public static final int ATTRIBUTE_HIM    = 0;
028:     //public static final int ATTRIBUTE_FRIEND = 1;
029: 
030:     // 色定数
031:     //private static final int COLOR_COLUMN_SELECT       = (
                                                             102<<16) |  (51<<8) | 255;
032:     //private static final int COLOR_STRING_SELECT_OTHER = (
                                                             255<<16) | (255<<8) | 255;
033:     //private static final int COLOR_STRING_NORMAL_OTHER =   (
                                                               0<<16) |   (0<<8) |   0;
034:     //private static final int COLOR_STRING_SELECT_HIM   = (
                                                             255<<16) |   (0<<8) |   0;
035:     //private static final int COLOR_STRING_NORMAL_HIM   = (
                                                             255<<16) |   (0<<8) |   0;
036: 
037:     // 描画用の種々の定数
038:     //private static final int IMAGE_CIRCLE_WIDTH  = 14;
039:     //private static final int IMAGE_CIRCLE_HEIGHT = 14;
040:     //private static final int IMAGE_CIRCLE_RIGHT_INTERVAL = 11;
041:     //private static final int COLUMN_HEIGHT = 18;
042: 
043:     //private static final int STRING_LEFT_INTERVAL = 6;
044:     //private static final int STRING_LEFT_INTERVAL_ARROW = 12;
045:     //private static final int HEIGHT_MARGIN = 3;
046: 
047:     //private static final int IMAGE_ARROW_HORIZONTAL_WIDTH  = 4;
048:     //private static final int IMAGE_ARROW_HORIZONTAL_HEIGHT = 7;
049:     //private static final int IMAGE_ARROW_HORIZONTAL_RIGHT_INTERVAL = 4;
050:     //private static final int IMAGE_ARROW_HORIZONTAL_LEFT_INTERVAL  = 4;
051: 
052:     //private static final int TICKER_HEIGHT = 18;
053: 
054:     // 矢印の画像
055:     //downsize 配列化
056:     private static final Image[] setColor/*images*/ = new Image[]{
057:         I/*ImproveMIDlet*//*ResourceManager*/.Code/*getImage*/(
                                                      2/*ResourceManager.IMAGE_RIGHT*/),
058:         I/*ImproveMIDlet*//*ResourceManager*/.Code/*getImage*/(
                                                        /*ResourceManager.IMAGE_LEFT*/)
059:     };
060: 
061:     //downsize メソッドインライン化
062:     public String[] StackMap/*etc*/ = new String[4];
063:    //downsize 配列化
064:     //public String account;
065:     //public String nickname;
066:     //public String description;
067:     //public String phoneNumber;
068: 
069:     public int[] Code/*idata*/ = new int[2];
070:     //downsize 配列化
071:     //public int status;
072:     //public int attribute;
073: 
074:     public L/*MessageBox*/ L/*messageBox*/;
075: 
076:     /**
077:      * 文字列からのコンストラクタ。
078:      */
079:     public A/*Buddy*/(String account_, String nickname_, int status_,
080:                  String description_, int attribute_, String phoneNumber_) {
081:         StackMap/*etc*/[0]/*account*/ = account_;
082:         StackMap/*etc*/[1]/*nickname*/ = nickname_;
083:         Code/*idata*/[0]/*status*/ = status_;
084:         StackMap/*etc*/[2]/*description*/ = description_;
085:         Code/*idata*/[1]/*attribute*/ = attribute_;
086:         StackMap/*etc*/[3]/*phoneNumber*/ = phoneNumber_;
087:     }
088: 
089:     /**
090:      * DataInputStreamからのコンストラクタ。
091:      */
092:     public A/*Buddy*/(DataInputStream input) throws IOException {
093:         StackMap/*etc*/[0]/*account*/ = input.readUTF();
094:         StackMap/*etc*/[1]/*nickname*/ = input.readUTF();
095:         StackMap/*etc*/[3]/*phoneNumber*/ = input.readUTF();
096:         Code/*idata*/[0]/*status*/ = input.readInt();
097:         StackMap/*etc*/[2]/*description*/ = input.readUTF();
098:         Code/*idata*/[1]/*attribute*/ = 1/*ATTRIBUTE_FRIEND*/;
099:     }
100: 
101:     // ここよりsetter,getter
102:     //downsize メソッドインライン化
103:     /*
104:     public void setAccount(String account_){
105:         account = account_;
106:     }
107: 
108:     public String getAccount(){
109:         return account;
110:     }
111: 
112:     public void setNickname(String nickname_){
113:         nickname = nickname_;
114:     }
115: 
116:     public String getNickname(){
117:         return nickname;
118:     }
119: 
120:     public void setStatus(int status_){
121:         status = status_;
122:     }
123: 
124:     public int getStatus(){
125:         return status;
126:     }
127: 
128:     public void setDescription(String description_){
129:         description = description_;
130:     }
131: 
132:     public String getDescription(){
133:         return description;
134:     }
135: 
136:     public void setAttribute(int attribute_){
137:         attribute = attribute_;
138:     }
139: 
140:     public int getAttribute(){
141:         return attribute;
142:     }
143: 
144:     public void setPhoneNumber(String phoneNumber_){
145:         phoneNumber = phoneNumber_;
146:     }
147: 
148:     public String getPhoneNumber(){
149:         return phoneNumber;
150:     }
151: 
152:     public void setMessageBox(MessageBox messageBox_){
153:         messageBox = messageBox_;
154:     }
155: 
156:     public MessageBox getMessageBox(){
157:         return messageBox;
158:     }
159:     */
160:     // setter,getterここまで
161: 
162:     /**
163:      * equals の定義。アカウントが同じなら true。
164:      */
165:     public boolean equals(Object obj){
166:         if( obj instanceof A/*Buddy*/ ){
167:             return StackMap/*etc*/[0]/*account*/.equals(
                                       ((A/*Buddy*/)obj).StackMap/*etc*/[0]/*account*/);
168:         } else{
169:             return false;
170:         }
171:     }
172: 
173:     /**
174:      * Buddyオブジェクトで内容を更新。
175:      */
176:     public void StackMap/*update*/(A/*Buddy*/ buddy){
177:         StackMap/*etc*/[1]/*nickname*/ = buddy.StackMap/*etc*/[1]/*nickname*/;
178:         StackMap/*etc*/[3]/*phoneNumber*/ = buddy.StackMap/*etc*/[3]/*phoneNumber*/;
179:         StackMap/*etc*/[2]/*description*/ = buddy.StackMap/*etc*/[2]/*description*/;
180:         Code/*idata*/[0]/*status*/ = buddy.Code/*idata*/[0]/*status*/;
181:     }
182: 
183:     /**
184:      * 選択状況に応じた画像の取得。
185:      */
186:     public Image StackMap/*getImage*/(boolean select){
187:         //downsize 即値の利用
188:         //Image image;
189:         switch( Code/*idata*/[0]/*status*/ ){
190:             case 3/*Constants.STATUS_BLUE*/:
191:                 return I/*ImproveMIDlet*//*ResourceManager*/.Code/*getImage*/(
192:                         (select) ? 8/*ResourceManager.IMAGE_SELECT_GREEN*/ :
193:                         4/*ResourceManager.IMAGE_NORMAL_GREEN*/);
194:             case 2/*Constants.STATUS_YELLOW*/:
195:                 return I/*ImproveMIDlet*//*ResourceManager*/.Code/*getImage*/(
196:                         (select) ? 9/*ResourceManager.IMAGE_SELECT_YELLOW*/ :
197:                         5/*ResourceManager.IMAGE_NORMAL_YELLOW*/);
198:             case 1/*Constants.STATUS_RED*/:
199:                 return I/*ImproveMIDlet*//*ResourceManager*/.Code/*getImage*/(
200:                         (select) ? 10/*ResourceManager.IMAGE_SELECT_RED*/ :
201:                         6/*ResourceManager.IMAGE_NORMAL_RED*/);
202:             //case STATUS_LOGOFF:
203:             default:
204:                 return I/*ImproveMIDlet*//*ResourceManager*/.Code/*getImage*/(
205:                 (select) ? 11/*ResourceManager.IMAGE_SELECT_OFF*/ :
206:                 7/*ResourceManager.IMAGE_NORMAL_OFF*/);
207:         }
208:     }
209: 
210:     /**
211:      * 名前・フォーカス・アイコンの描画
212:      */
213:     public void StackMap/*draw*/(
                      Graphics g, int width, int positionY, boolean focus, boolean left){
214:         //downsize アルゴリズム 未使用・・・フィールドじゃないですよね?
215:         //int color;
216:         int stringColor;
217:         //downsize 即値の利用
218:         //Image image = getImage(focus);
219: 
220:         switch( Code/*idata*/[1]/*attribute*/ ){
221:             case 0/*ATTRIBUTE_HIM*/:
222:                 stringColor = (focus) ? (255<<16) |   (0<<8) |   0/*
       COLOR_STRING_SELECT_HIM*/ : (255<<16) |   (0<<8) |   0/*COLOR_STRING_NORMAL_HIM*/;
223:                 break;
224:             //case ATTRIBUTE_FRIEND:
225:             default:
226:                 stringColor = (focus) ? ((255<<16) | (255<<8) | 255)/*
                                                             COLOR_STRING_SELECT_OTHER*/
227:             : ((0<<16) |   (0<<8) |   0)/*COLOR_STRING_NORMAL_OTHER*/;
228:                 break;
229:         }
230: 
231:         if( focus ){
232:             g.setColor((102<<16) |  (51<<8) | 255/*COLOR_COLUMN_SELECT*/);
233:             g.fillRect(1, positionY+1, width-2, 18/*COLUMN_HEIGHT*/-2);
234:         }
235:         if( left ){
236:             g.drawImage(setColor/*images*/[1]/*leftImage*/,4/*
                                                 IMAGE_ARROW_HORIZONTAL_LEFT_INTERVAL*/,
237:                         positionY+(18/*COLUMN_HEIGHT*/-7/*
                                                     IMAGE_ARROW_HORIZONTAL_HEIGHT*/)/2,
238:                         Graphics.LEFT | Graphics.TOP);
239:         } else if( L/*messageBox*/ != null ){
240:             g.drawImage(setColor/*images*/[0]/*rightImage*/,width-4/*
                                                        IMAGE_ARROW_HORIZONTAL_WIDTH*/-
241:                             4/*IMAGE_ARROW_HORIZONTAL_RIGHT_INTERVAL*/,
242:                         positionY+(18/*COLUMN_HEIGHT*/-7/*
                                                    IMAGE_ARROW_ HORIZONTAL_HEIGHT*/)/2,
243:                         Graphics.LEFT | Graphics.TOP);
244:         }
245:         g.setColor(stringColor);
246:         g.drawString(StackMap/*etc*/[0]/*nickname*/,
247:                      (left) ? 12/*STRING_LEFT_INTERVAL_ARROW*/ : 6/*
                                                                 STRING_LEFT_INTERVAL*/,
248:                      positionY+3/*HEIGHT_MARGIN*/, Graphics.LEFT | Graphics.TOP);
249:         g.drawImage(StackMap/*getImage*/(focus),width-14/*IMAGE_CIRCLE_WIDTH*/-11/*
                                                          IMAGE_CIRCLE_RIGHT_INTERVAL*/,
250:                     positionY+(18/*COLUMN_HEIGHT*/-14/*IMAGE_CIRCLE_HEIGHT*/)/2,
251:                     Graphics.LEFT | Graphics.TOP);
252:     }
253: }