MainForm.java
上传用户:kyckim
上传日期:2007-12-11
资源大小:332k
文件大小:5k
源码类别:

通讯/手机编程

开发平台:

Java

  1. package Hiisi;
  2. import javax.microedition.lcdui.Alert;
  3. import javax.microedition.lcdui.AlertType;
  4. import javax.microedition.lcdui.Command;
  5. import javax.microedition.lcdui.CommandListener;
  6. import javax.microedition.lcdui.Display;
  7. import javax.microedition.lcdui.Displayable;
  8. import javax.microedition.lcdui.Form;
  9. import javax.microedition.lcdui.List;
  10. public class MainForm extends Form implements CommandListener{
  11. // main menues
  12. private Command[] command = new Command[6];
  13. // constructor
  14. MainForm() {
  15. super(HiisiMIDlet.hiisiMIDlet.proxyName);
  16. command[0] = new Command("Exit", Command.EXIT, 1);
  17. command[1] = new Command("Restart", Command.SCREEN, 2);
  18. command[2] = new Command("View Log", Command.SCREEN, 3);
  19. command[3] = new Command("Setting", Command.SCREEN, 4);
  20. command[4] = new Command("About", Command.SCREEN, 5);
  21. command[5] = new Command("Exit", Command.SCREEN, 6);
  22. addCommand(command[0]);
  23. addCommand(command[1]);
  24. addCommand(command[2]);
  25. addCommand(command[3]);
  26. addCommand(command[4]);
  27. addCommand(command[5]);
  28. setCommandListener(this);
  29. // Application starts with mode selection.
  30. makeModeSelectionGUI();
  31. }
  32. // message on main
  33. synchronized void log(String msg) {
  34. deleteAll();
  35. append(msg+"n");
  36. }
  37. // error message on main
  38. synchronized void log(Throwable e) {
  39. log(e.getMessage());
  40. }
  41. // mode selection (bluetooth mode or W-CDMA / GSM mode)
  42. // starts server
  43. // sets SettingForm#gatewayMode
  44. // bluetooth mode: calls BluetoothConnection#startDeviceInquiry()
  45. private void makeModeSelectionGUI() {
  46. final List modes = new List("Select a mode", List.IMPLICIT);
  47. if(HiisiMIDlet.settingForm.getDefaultUrl() != null) {
  48. modes.append("Bluetooth Mode [default]", null);
  49. modes.append("Bluetooth Mode [other]", null);
  50. } else {
  51. modes.append("Bluetooth Mode", null);
  52. }
  53. modes.append("W-CDMA / GSM Mode", null);
  54. modes.setCommandListener(
  55. new CommandListener() {
  56. public void commandAction(Command c, Displayable d) {
  57. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.mainForm);
  58. if(modes.getString(modes.getSelectedIndex()).equals("Bluetooth Mode [default]")) {
  59. HiisiMIDlet.settingForm.setGatewayMode(HiisiMIDlet.settingForm.BLUETOOTH_MODE);
  60. log("Hiisi Proxy " + HiisiMIDlet.settingForm.getGatewayModeString() + " is idling...");
  61. HiisiMIDlet.bluetoothConnection.setUrl(HiisiMIDlet.settingForm.getDefaultUrl());
  62. }
  63. if(modes.getString(modes.getSelectedIndex()).equals("Bluetooth Mode [other]")
  64. || modes.getString(modes.getSelectedIndex()).equals("Bluetooth Mode")) {
  65. HiisiMIDlet.settingForm.setGatewayMode(HiisiMIDlet.settingForm.BLUETOOTH_MODE);
  66. log("Hiisi Proxy " + HiisiMIDlet.settingForm.getGatewayModeString() + " is idling...");
  67. HiisiMIDlet.bluetoothConnection.startDeviceInquiry();
  68. }
  69. if(modes.getString(modes.getSelectedIndex()).equals("W-CDMA / GSM Mode")) {
  70. HiisiMIDlet.settingForm.setGatewayMode(HiisiMIDlet.settingForm.WAP_MODE);
  71. log("Hiisi Proxy " + HiisiMIDlet.settingForm.getGatewayModeString() + " is idling...");
  72. }
  73. }
  74. }
  75. );
  76. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(modes);
  77. HiisiMIDlet.gateway.start();
  78. }
  79. // about MIDlet
  80. private void makeAboutAlert() {
  81. Alert about = new Alert("About " + HiisiMIDlet.hiisiMIDlet.proxyName,
  82. HiisiMIDlet.hiisiMIDlet.proxyName + " (" + HiisiMIDlet.hiisiMIDlet.version +"), Created 2007 by Hiisi (hiisi.proxy@gmail.com), Visit http://hiisi-proxy.blogspot.com/ for details.", null, AlertType.INFO);
  83. about.setTimeout(Alert.FOREVER);
  84. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(about);
  85. }
  86. // actions of main menus
  87. public void commandAction(Command c,Displayable d) {
  88. // exits MIDlet
  89. if(c == command[0]) {
  90. HiisiMIDlet.gateway.exitGateway();
  91. HiisiMIDlet.hiisiMIDlet.exitApp();
  92. }
  93. // restarts server
  94. if(c == command[1]) {
  95. HiisiMIDlet.gateway.running = false;
  96. HiisiMIDlet.gateway.exitGateway();
  97. log("Restarting...");
  98. try {
  99. Thread.sleep(1 * 1000);
  100. } catch(InterruptedException e) {
  101. }
  102. HiisiMIDlet.gateway = new Gateway();
  103. HiisiMIDlet.gateway.running = true;
  104. HiisiMIDlet.gateway.start();
  105. }
  106. // displays HTTP log
  107. if(c == command[2]) {
  108. HiisiMIDlet.logForm.totalLog(HiisiMIDlet.logForm.getSentByte(), HiisiMIDlet.logForm.getRecvdByte());
  109. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.logForm);
  110. }
  111. // settings
  112. if(c == command[3]) {
  113. HiisiMIDlet.settingForm.uncheckCheckConnection();
  114. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.settingForm);
  115. }
  116. // about MIDlet
  117. if(c == command[4]) {
  118. makeAboutAlert();
  119. }
  120. // exits MIDlet
  121. if(c == command[5]) {
  122. HiisiMIDlet.gateway.exitGateway();
  123. HiisiMIDlet.hiisiMIDlet.exitApp();
  124. }
  125. }
  126. }