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

通讯/手机编程

开发平台:

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.Item;
  10. import javax.microedition.lcdui.Spacer;
  11. import javax.microedition.lcdui.StringItem;
  12. public class LogForm extends Form implements CommandListener{
  13. private long sentByte = 0;
  14. private long recvdByte = 0;
  15. long getSentByte() {
  16. return sentByte;
  17. }
  18. long addSentByte(int b) {
  19. sentByte += b;
  20. return sentByte;
  21. }
  22. long getRecvdByte() {
  23. return recvdByte;
  24. }
  25. long addRecvdByte(int b) {
  26. recvdByte += b;
  27. return recvdByte;
  28. }
  29. // opeiton metus
  30. private Command[] command = new Command[2];
  31. // constructor
  32. LogForm() {
  33. super(HiisiMIDlet.hiisiMIDlet.proxyName);
  34. totalLog(0, 0);
  35. command[0] = new Command("Back", Command.EXIT, 1);
  36. command[1] = new Command("Clear", Command.SCREEN, 2);
  37. addCommand(command[0]);
  38. addCommand(command[1]);
  39. setCommandListener(this);
  40. }
  41. // adds HTTP log
  42. synchronized void log(String msg) {
  43. int logSize = size();
  44. if(logSize > 6 && !HiisiMIDlet.settingForm.isLogEnable()) {
  45. for(int i = logSize; i > 6; i--) delete(i - 1);
  46. }
  47. insert(2, new StringItem("", msg));
  48. }
  49. synchronized void totalLog(long sent, long recvd) {
  50. if(size() == 0) {
  51. append("Sent: " + sent/1024 + "KB, Recvd.: " + recvd/1024 + "KBn");
  52. Spacer spacer = new Spacer(5, 5);
  53. spacer.setLayout(Item.LAYOUT_2|Item.LAYOUT_NEWLINE_AFTER);
  54. append(spacer);
  55. } else {
  56. set(0, new StringItem("","Sent: " + sent/1024 + "KB, Recvd.: " + recvd/1024 + "KBn"));
  57. }
  58. }
  59. // comfirmation for delete log
  60. private void makeConfirmationAlert() {
  61. final Command[] cmd = new Command[2];
  62. Alert confirm = new Alert("Clear log",
  63. "You are about to delete your entire proxy log. Do you wish to continue?", null, AlertType.WARNING);
  64. confirm.setTimeout(Alert.FOREVER);
  65. cmd[0] = new Command("Yes", Command.OK, 1);
  66. cmd[1] = new Command("No", Command.CANCEL, 2);
  67. confirm.addCommand(cmd[0]);
  68. confirm.addCommand(cmd[1]);
  69. confirm.setCommandListener(
  70. new CommandListener() {
  71. public void commandAction(Command c, Displayable d) {
  72. if(c == cmd[0]) {
  73. deleteAll();
  74. totalLog(getSentByte(), getRecvdByte());
  75. }
  76. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.logForm);
  77. }
  78. }
  79. );
  80. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(confirm);
  81. }
  82. // actions of option menus
  83. public void commandAction(Command c,Displayable d) {
  84. // back
  85. if(c == command[0]) {
  86. Display.getDisplay(HiisiMIDlet.hiisiMIDlet).setCurrent(HiisiMIDlet.mainForm);
  87. }
  88. // clears log
  89. if(c == command[1]) {
  90. makeConfirmationAlert();
  91. }
  92. }
  93. }