UIController.java
上传用户:heyongping
上传日期:2022-07-01
资源大小:95k
文件大小:5k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  * 创建于 2009-12-04
  3.  * 实现控制屏幕及相关事件监听
  4.  * 
  5.  * 更改注释格式可以:Window - Preferences - Java - Code Style - Code Templates
  6.  */
  7. package net.garrey.util;
  8. import net.garrey.midlet.PhoneTest;
  9. import net.garrey.model.PhoneItem;
  10. import javax.microedition.lcdui.Displayable;
  11. import javax.microedition.lcdui.Alert;
  12. import net.garrey.util.PhoneRecordStore;
  13. import net.garrey.view.About;
  14. import net.garrey.view.PhoneAdd;
  15. import net.garrey.view.PhoneEdit;
  16. import net.garrey.view.PhoneFind;
  17. import net.garrey.view.PhoneList;
  18. import net.garrey.view.PhoneView;
  19. /**
  20.  * 作者: 张三
  21.  * 初始化,控制事件监听
  22.  */
  23. public class UIController {
  24. private PhoneTest phoneMidlet;
  25. private PhoneRecordStore phoneRecords;
  26. private PhoneList list;
  27. private PhoneAdd addForm;
  28. private PhoneView viewForm;
  29. private PhoneEdit editForm;
  30. private Alert alert;
  31. private About about;
  32. private PhoneFind findForm;
  33. public UIController(PhoneTest phone){
  34. phoneMidlet=phone;
  35. }
  36. public void init(){
  37. //PhoneRecordStore类中要使用UIController对象,要传一个当前对象
  38. phoneRecords=new PhoneRecordStore(this);
  39. System.out.println("bbbbbbbbbbbbbbbbbbbb:"+"init()方法");
  40. list=new PhoneList("列表",this,phoneRecords.getPhones());
  41. addForm=new PhoneAdd("添加",this);
  42. viewForm=new PhoneView("查看",this);
  43. editForm=new PhoneEdit("修改",this);
  44. about=new About("关于");
  45. findForm=new PhoneFind("查询",this);
  46. setCurrent(list); //默认第一个屏幕,查询并显示所有记录
  47. }
  48. //get method
  49. public PhoneRecordStore getPhoneRecords(){
  50. return phoneRecords;
  51. }
  52. public void setCurrent(Displayable disp){
  53. phoneMidlet.setCurrent(disp);
  54.     }
  55. public void setCurrent(Alert alert, Displayable disp){
  56. phoneMidlet.setCurrent(alert, disp);
  57.     }
  58. //定义事件ID内部类
  59.     public static class EventID{
  60.         private EventID(){
  61.         }
  62.         
  63.         public static final byte EVENT_EXIT=0;//退出
  64.         public static final byte EVENT_NEW_RECORD =1;//增加
  65.         public static final byte EVENT_NEW_SAVE =2;//保存记录
  66.         public static final byte EVENT_NEW_BACK =3;//保存记录
  67.         public static final byte EVENT_DELETE =4;//删除
  68.         public static final byte EVENT_VIEW_DETAIL =5;//察看详细
  69.         public static final byte EVENT_VIEW_BACK= 6;//返回察看
  70.         public static final byte EVENT_EDIT=7;//修改
  71.         public static final byte EVENT_EDIT_BACK=8;//修改返回
  72.         public static final byte EVENT_EDIT_SAVE=9;//保存修改
  73.         public static final byte EVENT_ABOUT=10;//保存修改
  74.         
  75.         public static final byte EVENT_FIND=11; //进入查找页面
  76.         public static final byte EVENT_VIEW_FINDOK=12; //开始查询
  77.     }
  78.     
  79.     //事件处理
  80.     public void handleEvent( int eventID,Object[] args){   
  81.      switch (eventID)
  82.         {   
  83.          case EventID.EVENT_EXIT:
  84.          {
  85.           phoneMidlet.exit(false);
  86.           break;
  87.          }
  88.          case EventID.EVENT_VIEW_DETAIL:
  89.          {
  90.              viewForm.setPhone((PhoneItem)args[0]);
  91.              setCurrent(viewForm);
  92.              break;
  93.          }
  94.          case EventID.EVENT_NEW_RECORD:
  95.          {
  96.           //添加新一条信息时,要先清除原来信息
  97.              addForm.clear();
  98.           setCurrent(addForm);
  99.           break;
  100.          }
  101.          case EventID.EVENT_NEW_BACK:
  102.          case EventID.EVENT_VIEW_BACK:    
  103.          case EventID.EVENT_EDIT_BACK:
  104.          {
  105.           setCurrent(list);
  106.           break;
  107.          }
  108.          case EventID.EVENT_NEW_SAVE:
  109.          {
  110.              PhoneItem item=new PhoneItem((String)args[0],(String)args[1]);
  111.              int id=phoneRecords.addPhone(item);
  112.              list.refresh(phoneRecords.getPhones());
  113.              setCurrent(list);
  114.              break;
  115.          }
  116.          case EventID.EVENT_EDIT:
  117.          {
  118.              editForm.setPhone((PhoneItem)args[0]);
  119.              setCurrent(editForm);
  120.              break;
  121.          }
  122.          case EventID.EVENT_EDIT_SAVE:
  123.          {
  124.              phoneRecords.updatePhone((PhoneItem)args[0]);
  125.              list.refresh(phoneRecords.getPhones());
  126.              setCurrent(list);
  127.              break;
  128.          }
  129.          case EventID.EVENT_DELETE:
  130.          {
  131.              phoneRecords.deletePhone(((PhoneItem)args[0]).getId());
  132.              list.refresh(phoneRecords.getPhones());
  133.              setCurrent(list);
  134.              break;
  135.          }
  136.          case EventID.EVENT_ABOUT:
  137.          {
  138.              setCurrent(about);
  139.              break;
  140.          }
  141.          case EventID.EVENT_FIND:
  142.          {
  143.              setCurrent(new PhoneFind("dd",this));
  144.              break;
  145.          }
  146.          case EventID.EVENT_VIEW_FINDOK:
  147.          {
  148.           findForm.refresh(phoneRecords.getContinutePhones());
  149.              setCurrent(findForm);
  150.              break;
  151.          }
  152.           default:
  153.               break;
  154.         }
  155.     }
  156.     
  157. }