예제 #1
0
  /**
   * Display the connecting form to the user, let call set actions.
   *
   * @param action action to put in the form's title
   * @param name name to in the form's title
   * @param url URL of a JAD
   * @param size 0 if unknown, else size of object to download in K bytes
   * @param gaugeLabel label for progress gauge
   * @return displayed form
   */
  private Form displayProgressForm(
      String action, String name, String url, int size, String gaugeLabel) {
    Gauge progressGauge;
    StringItem urlItem;

    progressForm = new Form(null);

    progressForm.setTitle(action + " " + name);

    if (size <= 0) {
      progressGauge = new Gauge(gaugeLabel, false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING);
    } else {
      progressGauge = new Gauge(gaugeLabel, false, size, 0);
    }

    progressGaugeIndex = progressForm.append(progressGauge);

    if (url == null) {
      urlItem = new StringItem("", "");
    } else {
      urlItem = new StringItem(Resource.getString(ResourceConstants.AMS_WEBSITE) + ": ", url);
    }

    progressUrlIndex = progressForm.append(urlItem);

    display.setCurrent(progressForm);
    lastDisplayChange = System.currentTimeMillis();

    return progressForm;
  }
예제 #2
0
 public void addRecordForm() {
   fmAddRecord = new Form("Add Record");
   txfName = new TextField("Name", "", 10, TextField.ANY);
   txfNumber = new TextField("Number", "", 10, TextField.NUMERIC);
   fmAddRecord.append(txfName);
   fmAddRecord.append(txfNumber);
   fmAddRecord.addCommand(cmdAdd);
   fmAddRecord.addCommand(cmdMenu);
   fmAddRecord.setCommandListener(this);
   dsp.setCurrent(fmAddRecord);
 }
예제 #3
0
  public void showAllRecordForm() {
    fmAllRecords = new Form("All records");
    try {
      RecordEnumeration recEnum = rs.enumerateRecords(null, null, false);
      while (recEnum.hasNextElement()) {
        try {
          // System.out.println(new String(recEnum.nextRecord()));
          String name = "Nenacetl jsem";
          int number = 0;
          try {
            byte[] record = recEnum.nextRecord();
            ByteArrayInputStream buffer = new ByteArrayInputStream(record);
            DataInputStream dis = new DataInputStream(buffer);
            name = dis.readUTF();
            number = dis.readInt();
            dis.close();
          } catch (Exception e) {
          }

          fmAllRecords.append(name + " " + String.valueOf(number) + "\n");
        } catch (Exception e) {
          System.out.println(e.getMessage());
        }

        //
      }
    } catch (Exception ex) {
      System.out.println(ex.getMessage());
    }
    fmAllRecords.addCommand(cmdMenu);
    fmAllRecords.setCommandListener(this);
    dsp.setCurrent(fmAllRecords);
  }
  public void commandAction(Command c, Displayable d) {
    if (c == startCmd) {
      form.deleteAll();
      form.removeCommand(startCmd);
      form.addCommand(byeCmd);

      Thread t =
          new Thread() {

            public void run() {
              startSession();
            }
          };
      t.start();

      //	    startSession();
      return;
    } else if (c == exitCmd) {
      destroyApp(true);
      return;
    } else if (c == byeCmd) {
      form.removeCommand(byeCmd);
      form.addCommand(restartCmd);
      sendBYE();
      return;
    } else if (c == restartCmd) {
      stopListener();
      form.removeCommand(restartCmd);
      form.addCommand(startCmd);
      form.deleteAll();
      form.append(address);
      return;
    }
  }
 public void notifyRequest(SipConnectionNotifier sn) {
   try {
     ssc = scn.acceptAndOpen(); // <i><b>blocking</b></i>
     if (ssc.getMethod().equals("BYE")) {
       // <i><b>respond 200 OK to BYE</b></i>
       ssc.initResponse(200);
       ssc.send();
       str = new StringItem("Other side hang-up!", "");
       form.append(str);
     }
     form.append("Closing notifier...");
     form.removeCommand(byeCmd);
     form.addCommand(restartCmd);
     scn.close();
   } catch (IOException ex) {
     // <i><b>handle IOException</b></i>
   }
 }
예제 #6
0
 public void getNumberRecord() {
   fmNumbers = new Form("Number of Records");
   int number = 0;
   try {
     number = rs.getNumRecords();
   } catch (Exception e) {
   }
   fmNumbers.append("Numbers of Records: " + number);
   dsp.setCurrent(fmNumbers);
   fmNumbers.setCommandListener(this);
   fmNumbers.addCommand(cmdMenu);
 }
예제 #7
0
 public void editRecord(int record_num) {
   fmEditRecord = new Form("Edit Record");
   String name = "Nenacetl jsem";
   int number = 0;
   try {
     byte[] record = rs.getRecord(record_num);
     ByteArrayInputStream buffer = new ByteArrayInputStream(record);
     DataInputStream dis = new DataInputStream(buffer);
     name = dis.readUTF();
     number = dis.readInt();
     dis.close();
   } catch (Exception e) {
   }
   txfName = new TextField("Name", name, 10, TextField.ANY);
   txfNumber = new TextField("Number", String.valueOf(number), 10, TextField.NUMERIC);
   fmEditRecord.append(txfName);
   fmEditRecord.append(txfNumber);
   fmEditRecord.addCommand(cmdEdit);
   fmEditRecord.addCommand(cmdMenu);
   fmEditRecord.setCommandListener(this);
   dsp.setCurrent(fmEditRecord);
 }
 public OriginatingINVITE() {
   // <i><b>Initialize MIDlet display</b></i>
   display = Display.getDisplay(this);
   // <i><b>create a Form for progess info printings</b></i>
   form = new Form("Session example");
   address = new TextField("INVITE:", "sip:[email protected]:5070", 40, TextField.LAYOUT_LEFT);
   form.append(address);
   byeCmd = new Command("Bye", Command.ITEM, 1);
   restartCmd = new Command("Restart", Command.ITEM, 1);
   startCmd = new Command("Start", Command.ITEM, 1);
   form.addCommand(startCmd);
   exitCmd = new Command("Exit", Command.EXIT, 1);
   form.addCommand(exitCmd);
   form.setCommandListener(this);
 }
예제 #9
0
  public void showFirstRecord() {
    fmFirstRecord = new Form("First Record");
    String name = "Nenacetl jsem";
    int number = 0;
    try {
      byte[] record = rs.getRecord(1);
      ByteArrayInputStream buffer = new ByteArrayInputStream(record);
      DataInputStream dis = new DataInputStream(buffer);
      name = dis.readUTF();
      number = dis.readInt();
      dis.close();
    } catch (Exception e) {
    }

    fmFirstRecord.append(name + " " + String.valueOf(number));
    // fmFirstRecord.append(String.valueOf(number));
    fmFirstRecord.setCommandListener(this);
    fmFirstRecord.addCommand(cmdMenu);
    dsp.setCurrent(fmFirstRecord);
  }
예제 #10
0
 private void startSession() {
   SipClientConnection scc = null;
   try {
     // <i><b>start a listener for incoming requests</b></i>
     startListener();
     // <i><b>open SIP connection with remote user</b></i>
     scc = (SipClientConnection) Connector.open(address.getString());
     scc.setListener(this);
     // <i><b>initialize INVITE request</b></i>
     scc.initRequest("INVITE", scn);
     scc.setHeader("Content-Length", "" + sdp.length());
     scc.setHeader("Content-Type", "application/sdp");
     OutputStream os = scc.openContentOutputStream();
     os.write(sdp.getBytes());
     os.close(); // <i><b>close and send</b></i>
     str = new StringItem("Inviting... ", scc.getHeader("To"));
     form.append(str);
   } catch (Exception ex) {
     ex.printStackTrace();
     // <i><b>handle IOException</b></i>
   }
 }
예제 #11
0
  /** Handle incoming response here */
  public void notifyResponse(SipClientConnection scc) {
    int statusCode = 0;
    boolean received = false;
    try {
      scc.receive(0); // <i><b>fetch resent response</b></i>
      statusCode = scc.getStatusCode();
      str = new StringItem("Response: ", statusCode + " " + scc.getReasonPhrase());
      form.append(str);
      if (statusCode < 200) {
        dialog = scc.getDialog();
        form.append("Early-Dialog state: " + dialog.getState());
      }
      if (statusCode == 200) {
        String contentType = scc.getHeader("Content-Type");
        String contentLength = scc.getHeader("Content-Length");
        int length = Integer.parseInt(contentLength);
        if (contentType.equals("application/sdp")) {
          //
          // <i><b>handle SDP here</b></i>
          //
        }
        dialog = scc.getDialog(); // <i><b>save dialog info</b></i>
        form.append("Dialog state: " + dialog.getState());

        scc.initAck(); // <i><b>initialize and send ACK</b></i>
        scc.send();
        str = new StringItem("Session established: ", scc.getHeader("Call-ID"));
        form.append(str);
        scc.close();
      } else if (statusCode >= 300) {
        str = new StringItem("Session failed: ", scc.getHeader("Call-ID"));
        form.append(str);
        form.removeCommand(byeCmd);
        form.addCommand(restartCmd);
        scc.close();
      }
    } catch (IOException ioe) {
      // <i><b>handle e.g. transaction timeout here</b></i>
      str = new StringItem("No answer: ", ioe.getMessage());
      form.append(str);
      form.removeCommand(byeCmd);
      form.addCommand(restartCmd);
    }
  }
예제 #12
0
 /** end session with BYE */
 private void sendBYE() {
   if (dialog != null) {
     try {
       SipClientConnection sc = dialog.getNewClientConnection("BYE");
       sc.send();
       str = new StringItem("user hang-up: ", "BYE sent...");
       form.append(str);
       boolean gotit = sc.receive(10000);
       if (gotit) {
         if (sc.getStatusCode() == 200) {
           form.append("Session closed successfully...");
           form.append("Dialog state: " + dialog.getState());
         } else form.append("Error: " + sc.getReasonPhrase());
       }
       sc.close();
     } catch (IOException iox) {
       form.append("Exception: " + iox.getMessage());
     }
   } else {
     form.append("No dialog information!");
   }
 }
예제 #13
0
  public void commandAction(Command command, Displayable displayable) {
    if (command == camList) {
      controller.setCurrentScreen(this);
      controller.setCurrentScreen(this);
    }
    if (command == refreshList) {
      controller.showProgressBar();
      refreshCamList();
    }
    if (command == cmBack) {
      controller.getDisp().setCurrent(LiveCameras);
    }
    if (command == RefreshImage) {
      refreshImage();
    }
    if (command == viewImage) {

      refreshImage();
    }
    if (command == TrafOption) {
      if (this.getString(this.getSelectedIndex()).equals("Cameras")) {
        LiveCameras();

      } else if (this.getString(this.getSelectedIndex()).equals("Traffic Fines")) {

        if (VehicleNoForm == null) {

          VehicleNoForm = new Form("Traffic Fines");
          vehNo = new TextField("Vehicle Number", "", 100, TextField.ANY);

          VehicleNoForm.append(vehNo);
          VehicleNoForm.addCommand(Vehicleback);
          VehicleNoForm.addCommand(VehicleOk);

          VehicleNoForm.setCommandListener(this);
        }

        controller.setCurrentScreen(VehicleNoForm);

      } else {
        new Thread() {
          public void run() {
            getTrafficSpots();
          }
        }.start();
      }
    }
    if (command == bckMenu) {
      controller.MainMenu();
    }

    if (command == Vehicleback) {
      controller.setCurrentScreen(this);
    }
    if (command == VehicleOk) {
      if (vehNo.getString().equals("")) {

        controller.showAlert("Enter the vehicle number", 0, AlertType.ERROR);
      } else {

        controller.showProgressBar();
        new Thread() {
          public void run() {

            Downloader dwn = new Downloader(controller);
            String message =
                dwn.requestForData(
                    "http://125.17.140.50/notices/vehiclefinedetails.aspx?veh_no="
                        + vehNo.getString());
            vehNo.setString("");
            controller.showAlert(message, 0, AlertType.INFO);
          }
        }.start();

        new Thread() {
          public void run() {

            controller.setCurrentScreen(VehicleNoForm);
          }
        }.start();
      }
    }
  }