📄 uicontroller.java
字号:
package com.hziee.phone_book.ui;
import com.hziee.phone_book.model.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import com.hziee.phone_book.PhoneBookMIDlet;
/**界面UI设计*/
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 MerchantGroupDetailInfoUI merchantGroupDetailInfoUI;//商业园详细信息
private ConfirmationDialog dialog;
private ListMerchantGroupUI listMerchantGroupUI;//商业园菜单
private LoginUI loginUI;//登陆界面
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_LISTPHONE_BACK_WELCOME = 18;
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 EVENT_DISPLAY_MERCHANT_INFOMATION = 15;
public static final byte EVENT_DETAIL_BACK_MERCHANT_LIST =16;
public static final byte EVENT_MODIFY_RECORD =17;
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 static final byte ListMerchantGroup = 105;
}
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(this);
newPhoneUI = new NewPhoneUI(this);
listPhoneUI = new ListPhoneUI(this);
loginUI = new LoginUI(this);
listMerchantGroupUI = new ListMerchantGroupUI(this);
searchPhoneUI = new SearchPhoneUI(this);
detailInfoUI = new DetailInfoUI(this);
merchantGroupDetailInfoUI = new MerchantGroupDetailInfoUI(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);
this.handleEvent(EventID.LIST_RECORD);
setCurrent(loginUI);
*/
}
public void showAlert(String message, Displayable next, AlertType type)
{//简短的信息提示alert,
alert = new Alert(Title.alertTitle, message, null, type);
alert.setTimeout(1500);//设定间隔时间
setCurrent(alert, next);
}
/**通过事件来判断做出的相应操作 参数设为INT型,主菜单调用*/
public void handleEvent(int eventID)
{
System.out.println("eventID"+eventID);
switch (eventID)
{
case EventID.ADD_NEW_RECORD://添加新记录
{
newPhoneUI.clear();//最新的记录界面,使用clear方法将各项内容设为空
display.setCurrent(newPhoneUI);//显示.......
break;
}
case EventID.CLEAR_RECORD://清除通讯录
{
dialog.setMessage(Title.delete_phonebook);
dialog.display(EventID.CLEAR_RECORD);
break;
}
case EventID.EVENT_LISTPHONE_BACK_WELCOME:
{
display.setCurrent(infomationUI);
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.ListMerchantGroup://浏览商业圈。。
{
// new Thread()
// {
// public void run()
// {
try
{
Index[] index = model.listRecord();
listMerchantGroupUI.init(index);
display.setCurrent(listMerchantGroupUI);
}catch (Exception 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;
}
case EventID.EVENT_DETAIL_BACK_MERCHANT_LIST:
{
display.setCurrent(listMerchantGroupUI);
break;
}
default:
break;
}
}
public void handleEvent(int eventID, Object[] obj)
{
System.out.println("eventID"+eventID);
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.init(account);
display.setCurrent(detailInfoUI);
} catch (ApplicationException e)
{
e.printStackTrace();
}
break;
}
case EventID.EVENT_DISPLAY_MERCHANT_INFOMATION:
{
try
{
// Account account = model.getAccount(userName);
String merchantGroupName = (String) obj[0];
merchantGroupDetailInfoUI.init(merchantGroupName);
display.setCurrent(merchantGroupDetailInfoUI);
} catch (Exception e)
{
e.printStackTrace();
}
break;
}
case EventID.EVENT_SEARCH_RECORD://搜索记录存在执行以下代码
{
try
{
String userName = (String)obj[0];
Index[] index = model.searchIndex(userName);
if(index.length>5 || index.length ==0)
{
setCurrent(searchPhoneUI);
}
else
{
listPhoneUI.init(index);
display.setCurrent(listPhoneUI);
}
}
catch(ApplicationException e)
{
e.printStackTrace();
}
break;
}
case EventID.EVENT_SEARCH_RECORD_ANYWAY:
{
try
{
String userName = (String)obj[0];
Index[] index = model.searchIndex(userName);
if(index.length == 0)
{
showAlert("无匹配纪录!",searchPhoneUI,AlertType.INFO);
}
else
{
listPhoneUI.init(index);
display.setCurrent(listPhoneUI);
}
}
catch(ApplicationException e)
{
e.printStackTrace();
}
}
default:
break;
}
}
public void dialogDismissed(Dialog d, int code)
{
if (d == dialog)
{
if (code == ConfirmationDialog.YES)
{
switch (dialog.getEventID())
{
case EventID.CLEAR_RECORD:
{
handleEvent(EventID.EVENT_CLEAR_RECORD_YES);
break;
}
case EventID.EVENT_DELETE_RECORD:
{
handleEvent(EventID.EVENT_DELETE_RECORD_YES, dialog
.getObj());
break;
}
}
} else if (code == ConfirmationDialog.NO)
{
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -