Exemplo n.º 1
0
  public void show(long stime, long etime) {
    final Shell dialog = new Shell(display, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
    dialog.setLayout(new GridLayout(4, false));
    dialog.setText("Time Range");
    UIUtil.setDialogDefaultFunctions(dialog);

    Label label = new Label(dialog, SWT.NONE);
    label.setText("From");
    final DateTime startTime = new DateTime(dialog, SWT.TIME | SWT.SHORT);
    startTime.setHours(DateUtil.getHour(stime));
    startTime.setMinutes(DateUtil.getMin(stime));

    label = new Label(dialog, SWT.NONE);
    label.setText("To");
    final DateTime endTime = new DateTime(dialog, SWT.TIME | SWT.SHORT);
    endTime.setHours(DateUtil.getHour(etime));
    endTime.setMinutes(DateUtil.getMin(etime));

    Button okButton = new Button(dialog, SWT.PUSH);
    okButton.setText("&OK");
    okButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
    okButton.addListener(
        SWT.Selection,
        new Listener() {
          public void handleEvent(Event event) {
            switch (event.type) {
              case SWT.Selection:
                try {
                  String fromTime =
                      yyyymmdd
                          + (startTime.getHours() < 10 ? "0" : "")
                          + startTime.getHours()
                          + (startTime.getMinutes() < 10 ? "0" : "")
                          + startTime.getMinutes();
                  String toTime =
                      yyyymmdd
                          + (endTime.getHours() < 10 ? "0" : "")
                          + endTime.getHours()
                          + (endTime.getMinutes() < 10 ? "0" : "")
                          + endTime.getMinutes();
                  long stime = DateUtil.getTime(fromTime, "yyyyMMddHHmm");
                  long etime = DateUtil.getTime(toTime, "yyyyMMddHHmm");
                  if (etime <= stime) {
                    MessageDialog.openWarning(
                        dialog,
                        "Warning",
                        "Time range is incorrect. "
                            + DateUtil.timestamp(stime)
                            + " ~ "
                            + DateUtil.timestamp(etime));
                  } else {
                    callback.setTimeRange(stime, etime);
                    dialog.close();
                  }
                } catch (Exception e) {
                  e.printStackTrace();
                  MessageDialog.openError(dialog, "Error", "Date format error:" + e.getMessage());
                }
                break;
            }
          }
        });

    Button cancelButton = new Button(dialog, SWT.PUSH);
    cancelButton.setText("&Cancel");
    cancelButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
    cancelButton.addListener(
        SWT.Selection,
        new Listener() {
          public void handleEvent(Event event) {
            switch (event.type) {
              case SWT.Selection:
                dialog.close();
                break;
            }
          }
        });

    dialog.setDefaultButton(okButton);
    dialog.pack();
    dialog.open();
  }