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(); }