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

通讯/手机编程

开发平台:

Java

  1. package Hiisi;
  2. import javax.microedition.lcdui.ChoiceGroup;
  3. import javax.microedition.lcdui.Command;
  4. import javax.microedition.lcdui.CommandListener;
  5. import javax.microedition.lcdui.Display;
  6. import javax.microedition.lcdui.Displayable;
  7. import javax.microedition.lcdui.Form;
  8. import javax.microedition.lcdui.List;
  9. import javax.microedition.lcdui.TextField;
  10. import java.util.Vector;
  11. public class SettingForm extends Form implements CommandListener{
  12. private Command[] command = new Command[2];
  13. private ChoiceGroup modeSetting;
  14. private ChoiceGroup checkConnection;
  15. private ChoiceGroup logSetting;
  16. private ChoiceGroup uaSetting;
  17. private ChoiceGroup filtering;
  18. private TextField filteringURL;
  19. final int BLUETOOTH_MODE = 0;
  20. final int WAP_MODE = 1;
  21. private int gatewayMode = BLUETOOTH_MODE;
  22. private boolean logEnable = false;
  23. private int uaId = 0;
  24. private boolean filter = false;
  25. private String filterURL = HiisiMIDlet.hiisiMIDlet.getAppProperty("Filter");
  26. private String defaultUrl = null;
  27. int getGatewayMode() {
  28. return gatewayMode;
  29. }
  30. int setGatewayMode(int mode) {
  31. gatewayMode = mode;
  32. modeSetting.setSelectedIndex(gatewayMode, true);
  33. return gatewayMode;
  34. }
  35. String getGatewayModeString() {
  36. if(gatewayMode == BLUETOOTH_MODE) return "[Bluetooth Mode]";
  37. else return "[W-CDMA / GSM Mode]";
  38. }
  39. void uncheckCheckConnection() {
  40. checkConnection.setSelectedIndex(0, false);
  41. }
  42. boolean isLogEnable() {
  43. return logEnable;
  44. }
  45. boolean setLogEnable(boolean log) {
  46. logEnable = log;
  47. if(logEnable) logSetting.setSelectedIndex(0, true);
  48. else logSetting.setSelectedIndex(1, true);
  49. return logEnable;
  50. }
  51. int getUaId() {
  52. return uaId;
  53. }
  54. int setUaId(int ua) {
  55. uaId = ua;
  56. uaSetting.setSelectedIndex(uaId, true);
  57. return uaId;
  58. }
  59. boolean isFilter() {
  60. return filter;
  61. }
  62. boolean setFilter(boolean filt) {
  63. filter = filt;
  64. filtering.setSelectedIndex(0, filter);
  65. return filter;
  66. }
  67. String getFilterURL() {
  68. return filterURL;
  69. }
  70. String setFilterURL(String url) {
  71. filterURL = url;
  72. return filterURL;
  73. }
  74. String getDefaultUrl() {
  75. return defaultUrl;
  76. }
  77. String setDefaultUrl(String addr) {
  78. defaultUrl = "btspp://" + addr + ":1;authenticate=false;encrypt=false;master=false";
  79. return defaultUrl;
  80. }
  81. SettingForm() {
  82. super(HiisiMIDlet.hiisiMIDlet.proxyName);
  83. if(!HiisiMIDlet.hiisiMIDlet.getAppProperty("Default-Device").equals("000000000000")) {
  84. setDefaultUrl(HiisiMIDlet.hiisiMIDlet.getAppProperty("Default-Device"));
  85. }
  86. command[0] = new Command("Cancel", Command.EXIT, 1);
  87. command[1] = new Command("OK", Command.SCREEN, 2);
  88. addCommand(command[0]);
  89. addCommand(command[1]);
  90. setCommandListener(this);
  91. modeSetting = new ChoiceGroup("Mode", ChoiceGroup.EXCLUSIVE);
  92. append(modeSetting);
  93. modeSetting.append("Bluetooth", null);
  94. modeSetting.append("W-CDMA / GSM", null);
  95. setGatewayMode(gatewayMode);
  96. checkConnection = new ChoiceGroup("Bluetooth Connection", ChoiceGroup.MULTIPLE);
  97. append(checkConnection);
  98. checkConnection.append("Check now", null);
  99. checkConnection.setSelectedIndex(0, false);
  100. logSetting = new ChoiceGroup("Log", ChoiceGroup.EXCLUSIVE);
  101. append(logSetting);
  102. logSetting.append("Enable", null);
  103. logSetting.append("Recent 5 only", null);
  104. setLogEnable(logEnable);
  105. uaSetting = new ChoiceGroup("User Agent", ChoiceGroup.EXCLUSIVE);
  106. append(uaSetting);
  107. uaSetting.append(HiisiMIDlet.hiisiMIDlet.getAppProperty("User-Agent"), null);
  108. uaSetting.append(HiisiMIDlet.hiisiMIDlet.getAppProperty("User-Agent2"), null);
  109. uaSetting.append(HiisiMIDlet.hiisiMIDlet.getAppProperty("User-Agent3"), null);
  110. setUaId(uaId);
  111. filtering = new ChoiceGroup("Filtering", ChoiceGroup.MULTIPLE);
  112. append(filtering);
  113. filtering.append("Enable", null);
  114. setFilter(filter);
  115. filteringURL = new TextField("Filter's URL", filterURL, 100, TextField.URL);
  116. append(filteringURL);
  117. }
  118. private void makeReinquireGUI() {
  119. final List choice = new List("Select a device", List.IMPLICIT);
  120. if(HiisiMIDlet.hiisiMIDlet.bluetoothConnection.getSelectedDevice() != null && HiisiMIDlet.hiisiMIDlet.bluetoothConnection.getUrl() != null) {
  121. choice.append(HiisiMIDlet.hiisiMIDlet.bluetoothConnection.getSelectedDevice(), null);
  122. }
  123. choice.append("Inquire new device", null);
  124. if(HiisiMIDlet.settingForm.getDefaultUrl() != null) {
  125. choice.append("Use default device", null);
  126. }
  127. choice.setCommandListener(
  128. new CommandListener() {
  129. public void commandAction(Command c, Displayable d) {
  130. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.mainForm);
  131. if(choice.getString(choice.getSelectedIndex()).equals("Inquire new device"))
  132. HiisiMIDlet.bluetoothConnection.startDeviceInquiry();
  133. if(choice.getString(choice.getSelectedIndex()).equals("Use default device"))
  134. HiisiMIDlet.bluetoothConnection.setUrl(HiisiMIDlet.settingForm.getDefaultUrl());
  135. }
  136. }
  137. );
  138. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(choice);
  139. }
  140. public void commandAction(Command c,Displayable d) {
  141. if(c == command[0]) {
  142. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.mainForm);
  143. }
  144. if(c == command[1]) {
  145. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.mainForm);
  146. if(logSetting.getSelectedIndex() == 0) setLogEnable(true);
  147. else setLogEnable(false);
  148. setUaId(uaSetting.getSelectedIndex());
  149. if(filtering.isSelected(0) && modeSetting.getSelectedIndex() == 0) setFilter(true);
  150. else setFilter(false);
  151. setFilterURL(filteringURL.getString());
  152. if(gatewayMode == BLUETOOTH_MODE && modeSetting.getSelectedIndex() == BLUETOOTH_MODE) {
  153. setGatewayMode(modeSetting.getSelectedIndex());
  154. if(checkConnection.isSelected(0)) {
  155. HiisiMIDlet.gateway.checkConnection();
  156. } else {
  157. HiisiMIDlet.mainForm.log("Hiisi Proxy " + getGatewayModeString() + " is idling...");
  158. }
  159. } else if(gatewayMode == WAP_MODE && modeSetting.getSelectedIndex() == BLUETOOTH_MODE) {
  160. setGatewayMode(modeSetting.getSelectedIndex());
  161. if(checkConnection.isSelected(0)) {
  162. HiisiMIDlet.mainForm.log("Cannnot check bluetooth connection.nHiisi Proxy "
  163. + getGatewayModeString() + " is idling...");
  164. } else {
  165. HiisiMIDlet.mainForm.log("Hiisi Proxy " + getGatewayModeString() + " is idling...");
  166. }
  167. makeReinquireGUI();
  168. } else {
  169. setGatewayMode(modeSetting.getSelectedIndex());
  170. if(checkConnection.isSelected(0)) {
  171. HiisiMIDlet.mainForm.log("Cannnot check bluetooth connection.nHiisi Proxy "
  172. + getGatewayModeString() + " is idling...");
  173. } else {
  174. HiisiMIDlet.mainForm.log("Hiisi Proxy " + getGatewayModeString() + " is idling...");
  175. }
  176. }
  177. }
  178. }
  179. }