/*
* Created on 2005-2-3
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package net.garrey.util;
import net.garrey.midlet.PhoneTest;
import net.garrey.model.PhoneItem;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Alert;
import net.garrey.util.PhoneRecordStore;
import net.garrey.view.About;
import net.garrey.view.PhoneAdd;
import net.garrey.view.PhoneEdit;
import net.garrey.view.PhoneList;
import net.garrey.view.PhoneView;
/**
* @author Administrator
*/
public class UIController {
private PhoneTest phoneMidlet;
private PhoneRecordStore phoneRecords;
private PhoneList list;
private PhoneAdd addForm;
private PhoneView viewForm;
private PhoneEdit editForm;
private Alert alert;
private About about;
public UIController(PhoneTest phone){
phoneMidlet=phone;
}
public void init(){
phoneRecords=new PhoneRecordStore(this);
//init ui
list=new PhoneList("列表",this,phoneRecords.getPhones());
addForm=new PhoneAdd("添加",this);
viewForm=new PhoneView("查看",this);
editForm=new PhoneEdit("修改",this);
about=new About("关于");
setCurrent(list);
}
//get method
public PhoneRecordStore getPhoneRecords(){
return phoneRecords;
}
public void setCurrent(Displayable disp){
phoneMidlet.setCurrent(disp);
}
public void setCurrent(Alert alert, Displayable disp){
phoneMidlet.setCurrent(alert, disp);
}
//定义事件ID内部类
public static class EventID{
private EventID(){
}
public static final byte EVENT_EXIT=0;//退出
public static final byte EVENT_NEW_RECORD =1;//增加
public static final byte EVENT_NEW_SAVE =2;//保存记录
public static final byte EVENT_NEW_BACK =3;//保存记录
public static final byte EVENT_DELETE =4;//删除
public static final byte EVENT_VIEW_DETAIL =5;//察看详细
public static final byte EVENT_VIEW_BACK= 6;//返回察看
public static final byte EVENT_EDIT=7;//修改
public static final byte EVENT_EDIT_BACK=8;//修改返回
public static final byte EVENT_EDIT_SAVE=9;//保存修改
public static final byte EVENT_ABOUT=10;//保存修改
}
//事件处理
public void handleEvent( int eventID,Object[] args){
switch (eventID)
{
case EventID.EVENT_EXIT:
{
phoneMidlet.exit(false);
break;
}
case EventID.EVENT_VIEW_DETAIL:
{
viewForm.setPhone((PhoneItem)args[0]);
setCurrent(viewForm);
break;
}
case EventID.EVENT_NEW_RECORD:
{
addForm.clear();
setCurrent(addForm);
break;
}
case EventID.EVENT_NEW_BACK:
case EventID.EVENT_VIEW_BACK:
case EventID.EVENT_EDIT_BACK:
{
setCurrent(list);
break;
}
case EventID.EVENT_NEW_SAVE:
{
PhoneItem item=new PhoneItem((String)args[0],(String)args[1]);
int id=phoneRecords.addPhone(item);
list.refresh(phoneRecords.getPhones());
setCurrent(list);
break;
}
case EventID.EVENT_EDIT:
{
editForm.setPhone((PhoneItem)args[0]);
setCurrent(editForm);
break;
}
case EventID.EVENT_EDIT_SAVE:
{
phoneRecords.updatePhone((PhoneItem)args[0]);
list.refresh(phoneRecords.getPhones());
setCurrent(list);
break;
}
case EventID.EVENT_DELETE:
{
phoneRecords.deletePhone(((PhoneItem)args[0]).getId());
list.refresh(phoneRecords.getPhones());
setCurrent(list);
break;
}
case EventID.EVENT_ABOUT:
{
setCurrent(about);
break;
}
default:
break;
}
}
}