/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.fx.ui;
import com.fx.MIDlet.PhoneBookMIDlet;
import com.fx.Model.Account;
import com.fx.Model.ApplicationException;
import com.fx.Model.Index;
import com.fx.Model.Model;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
/**
*
* @author fangxin
*/
public class UIController implements DialogListener
{
private Display display;
private Alert alert;
private PhoneBookMIDlet phoneBookMIDlet;
private Model model;
private WaitCanvas waitCanvas;
private IndexFunctionUI indexFunctionUI;
private WelcomeUI infomationUI;
private NewPhoneUI newPhoneUI;
private ListPhoneUI listPhoneUI;
private SearchPhoneUI searchPhoneUI;
private DetailInfoUI detailInfoUI;
private ConfirmationDialog dialog;
public static class EventID
{
private EventID()
{
}
public static final byte EVENT_NEW_RECORD_SELECTED = 1;
public static final byte EVENT_SAVE_RECORD_SELECTED = 2;
public static final byte EVENT_NEWPHONE_BACK_MAINUI = 3;
public static final byte EVENT_LISTPHONE_BACK_MAINUI = 4;
public static final byte EVENT_SEARCHUI_BACK_MAINNUI = 5;
public static final byte EVENT_CLEAR_RECORD_YES = 6;
public static final byte EVENT_CLEAR_RECORD_NO = 7;
public static final byte EVENT_DELETE_RECORD = 8;
public static final byte EVENT_DELETE_RECORD_YES = 9;
public static final byte EVENT_DELETE_RECORD_NO = 10;
public static final byte EVENT_DISPLAY_INFOMATION = 11;
public static final byte EVENT_DETAIL_BACK_LIST = 12;
public static final byte EVENT_SEARCH_RECORD = 13;
public static final byte EVENT_SEARCH_RECORD_ANYWAY = 14;
public static final byte ADD_NEW_RECORD = 100;
public static final byte SEARCH_RECORD = 101;
public static final byte CLEAR_RECORD = 102;
public static final byte LIST_RECORD = 103;
public static final byte HELP = 104;
}
public UIController(PhoneBookMIDlet pbm)
{
this.phoneBookMIDlet = pbm;
}
public void init(Model model)
{
this.display = Display.getDisplay(phoneBookMIDlet);
this.model = model;
waitCanvas = new WaitCanvas("", true);
indexFunctionUI = new IndexFunctionUI(this);
infomationUI = new WelcomeUI();
newPhoneUI = new NewPhoneUI(this);
listPhoneUI = new ListPhoneUI(this);
searchPhoneUI = new SearchPhoneUI(this);
detailInfoUI = new DetailInfoUI(this);
dialog = new ConfirmationDialog(display, null);
dialog.setDialogListener(this);
displayWelcome();
}
public void setCurrent(Displayable disp)
{
display.setCurrent(disp);
}
public void setCurrent(Alert alert, Displayable disp)
{
display.setCurrent(alert, disp);
}
public void displayWelcome()
{
setCurrent(infomationUI);
try
{
Thread.sleep(2000);
} catch (InterruptedException e)
{
}
setCurrent(indexFunctionUI);
}
public void showAlert(String message, Displayable next, AlertType type)
{
alert = new Alert(Title.alertTitle, message, null, type);
alert.setTimeout(1500);
setCurrent(alert, next);
}
public void handleEvent(int eventID)
{
switch (eventID)
{
case EventID.ADD_NEW_RECORD:
{
newPhoneUI.clear();
display.setCurrent(newPhoneUI);
break;
}
case EventID.CLEAR_RECORD:
{
dialog.setMessage(Title.delete_phonebook);
dialog.display(EventID.CLEAR_RECORD);
break;
}
case EventID.EVENT_CLEAR_RECORD_YES:
{
try
{
model.clearAllRecord();
display.setCurrent(indexFunctionUI);
} catch (ApplicationException e)
{
e.printStackTrace();
}
break;
}
case EventID.LIST_RECORD:
{
new Thread()
{
public void run()
{
try
{
waitCanvas.setMMessage(Title.gettingList);
display.setCurrent(waitCanvas);
Index[] index = model.listRecord();
listPhoneUI.init(index);
display.setCurrent(listPhoneUI);
} catch (ApplicationException e)
{
e.printStackTrace();
}
}
}.start();
break;
}
case EventID.SEARCH_RECORD:
{
searchPhoneUI.init();
display.setCurrent(searchPhoneUI);
break;
}
case EventID.EVENT_NEWPHONE_BACK_MAINUI:
{
display.setCurrent(indexFunctionUI);
break;
}
case EventID.EVENT_LISTPHONE_BACK_MAINUI:
{
display.setCurrent(indexFunctionUI);
break;
}
case EventID.EVENT_SEARCHUI_BACK_MAINNUI:
{
display.setCurrent(indexFunctionUI);
break;
}
case EventID.EVENT_DETAIL_BACK_LIST:
{
display.setCurrent(listPhoneUI);
break;
}
default:
break;
}
}
public void handleEvent(int eventID, Object[] obj)
{
switch (eventID)
{
case EventID.EVENT_SAVE_RECORD_SELECTED:
{
try
{
Account account = (Account) obj[0];
if (model.isRecordExist(account.getUserName()))
{
showAlert(Title.record_exist, indexFunctionUI,
AlertType.WARNING);
} else
{
model.addRecord(account);
showAlert(Title.record_added, indexFunctionUI,
AlertType.CONFIRMATION);
}
}
catch (ApplicationException e)
{
e.printStackTrace();
}
break;
}
case EventID.EVENT_DELETE_RECORD:
{
String userName = (String) obj[0];
dialog.setMessage(Title.DELETE_RECORD + userName + "?");
dialog.display(EventID.EVENT_DELETE_RECORD, obj);
break;
}
case EventID.EVENT_DELETE_RECORD_YES:
{
try
{
String userName = (String) obj[0];
model.deleteRecord(userName);
int i = ((Integer)obj[1]).intValue();
listPhoneUI.delete(i);
//listPhoneUI.subLastSize();
} catch (ApplicationException e)
{
e.printStackTrace();
}
break;
}
case EventID.EVENT_DISPLAY_INFOMATION:
{
String userName = (String) obj[0];
try
{
Account account = model.getAccount(userName);
detailInfoUI.in
没有合适的资源?快使用搜索试试~ 我知道了~
J2ME中实现电话通讯录的源代码
共126个文件
class:69个
java:34个
png:9个
需积分: 3 74 下载量 51 浏览量
2008-04-26
09:57:23
上传
评论
收藏 223KB RAR 举报
温馨提示
在J2ME中运用MVC模式,建立了一个完整的电话通讯录
资源推荐
资源详情
资源评论
收起资源包目录
J2ME中实现电话通讯录的源代码 (126个子文件)
UIController.class 7KB
UIController.class 7KB
UIController.class 7KB
Model.class 6KB
Model.class 5KB
Model.class 5KB
NewPhoneUI.class 4KB
NewPhoneUI.class 3KB
NewPhoneUI.class 3KB
Account.class 3KB
Account.class 3KB
Account.class 3KB
ListPhoneUI.class 3KB
DetailInfoUI.class 3KB
ConfirmationDialog.class 2KB
ListPhoneUI.class 2KB
ListPhoneUI.class 2KB
Dialog.class 2KB
DetailInfoUI.class 2KB
DetailInfoUI.class 2KB
SearchPhoneUI.class 2KB
WaitCanvas.class 2KB
Dialog.class 2KB
Dialog.class 2KB
WaitCanvas.class 2KB
WaitCanvas.class 2KB
SearchPhoneUI.class 2KB
SearchPhoneUI.class 2KB
Index.class 2KB
ConfirmationDialog.class 2KB
ConfirmationDialog.class 2KB
Index.class 2KB
Index.class 2KB
IndexFunctionUI.class 2KB
Title.class 2KB
Title.class 2KB
Title.class 2KB
WelcomeUI.class 2KB
IndexFunctionUI.class 1KB
IndexFunctionUI.class 1KB
UIController$1.class 1KB
WelcomeUI.class 1KB
WelcomeUI.class 1KB
PhoneBookMIDlet.class 1KB
UIController$1.class 1KB
UIController$1.class 1KB
PhoneBookMIDlet.class 1KB
PhoneBookMIDlet.class 1KB
UIController$EventID.class 1KB
UIController$EventID.class 1KB
UIController$EventID.class 1KB
Model$IndexFilter.class 1KB
Model$IndexFilter.class 1KB
Model$IndexFilter.class 1KB
ApplicationException.class 1002B
ApplicationException.class 1002B
ApplicationException.class 1002B
Model$AccountFilter.class 827B
Model$AccountFilter.class 790B
Model$AccountFilter.class 790B
WaitCanvas$1.class 694B
WaitCanvas$1.class 694B
WaitCanvas$1.class 694B
IndexFunctionUI$ListIndex.class 578B
IndexFunctionUI$ListIndex.class 578B
IndexFunctionUI$ListIndex.class 578B
DialogListener.class 170B
DialogListener.class 170B
DialogListener.class 170B
Thumbs.db 18KB
Thumbs.db 18KB
Thumbs.db 18KB
ImprovePhoneBook.jad 267B
ImprovePhoneBook.jar 46KB
UIController.java 10KB
UIController.java 10KB
Model.java 10KB
Model.java 10KB
NewPhoneUI.java 4KB
NewPhoneUI.java 4KB
Account.java 3KB
Account.java 3KB
Dialog.java 3KB
Dialog.java 3KB
ListPhoneUI.java 3KB
ListPhoneUI.java 3KB
DetailInfoUI.java 2KB
DetailInfoUI.java 2KB
SearchPhoneUI.java 2KB
SearchPhoneUI.java 2KB
WaitCanvas.java 2KB
WaitCanvas.java 2KB
Index.java 2KB
Index.java 2KB
IndexFunctionUI.java 2KB
IndexFunctionUI.java 2KB
ConfirmationDialog.java 2KB
ConfirmationDialog.java 2KB
WelcomeUI.java 2KB
WelcomeUI.java 2KB
共 126 条
- 1
- 2
资源评论
yyl8114
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功