private FormPanel getFrmpnlCreateJob() { if (frmpnlCreateJob == null) { frmpnlCreateJob = new FormPanel(); frmpnlCreateJob.setBodyBorder(false); frmpnlCreateJob.setHeading("Create job"); frmpnlCreateJob.setSize("744px", "530px"); frmpnlCreateJob.setLabelAlign(LabelAlign.LEFT); frmpnlCreateJob.setCollapsible(false); frmpnlCreateJob.setLayout(new RowLayout(Orientation.VERTICAL)); frmpnlCreateJob.add(getFirstRow(), new RowData(Style.DEFAULT, -1.0, new Margins(0, 0, 0, 0))); frmpnlCreateJob.add(getThirdRow(), new RowData(Style.DEFAULT, -1.0, new Margins(0, 0, 0, 0))); frmpnlCreateJob.add( getSecondRow(), new RowData(Style.DEFAULT, Style.DEFAULT, new Margins(0, 0, 0, 0))); frmpnlCreateJob.addButton(getSubmitButton()); FormButtonBinding binding = new FormButtonBinding(frmpnlCreateJob); binding.addButton(getSubmitButton()); frmpnlCreateJob.add(getHorizontalPanel()); } return frmpnlCreateJob; }
@Override public Widget asWidget() { // show window window.setSize(400, 310); window.setPlain(true); window.setModal(true); window.setClosable(false); window.setResizable(false); window.setHeading(AppController.Lang.AddNew(AppController.Lang.RunValue().toLowerCase())); window.setLayout(new FitLayout()); // form final FormData formData = new FormData("-20"); FormPanel simple = new FormPanel(); simple.setHeaderVisible(false); simple.setFrame(true); simple.setAutoWidth(true); simple.setLabelWidth(100); // run cbName.setDisplayField("n"); cbName.setFieldLabel(AppController.Lang.Run()); cbName.setStore(storeName); cbName.setEnabled(false); cbName.setMinLength(Constants.LIMIT_NAME_MIN); cbName.setMaxLength(Constants.LIMIT_NAME_MAX); cbName.setAllowBlank(false); cbName.setTriggerAction(TriggerAction.ALL); simple.add(cbName, formData); // date final DateField tfDate = CommonUtils.getDateField(date); simple.add(tfDate, formData); // time final TimeSelectFieldView tfTime = new TimeSelectFieldView(0, null); tfTime.setFieldLabel(AppController.Lang.Time()); simple.add(tfTime); // duration final MySpinnerField tfDuration = CommonUtils.getDurationSpinner(); simple.add(tfDuration, formData); // pulse final SpinnerField tfPulse = CommonUtils.getPulseSpinner(); simple.add(tfPulse, formData); // pulse max final SpinnerField tfPulseMax = CommonUtils.getPulseSpinner(); tfPulseMax.setFieldLabel(AppController.Lang.MaxPulse()); simple.add(tfPulseMax, formData); // calories final SpinnerField tfCalories = CommonUtils.getCaloriesSpinner(); simple.add(tfCalories, formData); // info final TextArea tfInfo = new TextArea(); tfInfo.setPreventScrollbars(true); tfInfo.setFieldLabel(AppController.Lang.Info()); simple.add(tfInfo, formData); // buttons eventhandler Button btnAdd = new Button(AppController.Lang.Add()); btnAdd.setScale(ButtonScale.MEDIUM); btnAdd.addSelectionListener( new SelectionListener<ButtonEvent>() { @SuppressWarnings("deprecation") @Override public void componentSelected(ButtonEvent ce) { try { // return model if (handler != null) { final int pulse = (int) tfPulse.getValue().doubleValue(); final int pulseMax = (int) tfPulseMax.getValue().doubleValue(); final int calories = (int) tfCalories.getValue().doubleValue(); // date and time Date date = tfDate.getValue(); final double time = CommonUtils.getTimeToSeconds(tfTime.getValue()); date.setHours((int) (time / 3600)); date.setMinutes((int) ((time % 3600) / 60)); date = CommonUtils.trimDateToDatabase(date, false); final String info = tfInfo.getValue(); final long duration = tfDuration.getValue().intValue(); RunValueModel value = new RunValueModel(); value.setCalories(calories); value.setDate(date); value.setDuration(duration); value.setInfo(info); value.setPulse(pulse); value.setPulseMax(pulseMax); // get run RunModel run = null; // if no values if (cbName.getValue() == null) { final String str = cbName.getRawValue(); run = new RunModel(0L, str); } // if user typed new value else if (!cbName.getRawValue().equals(cbName.getValue().getNameClient())) { final String str = cbName.getRawValue(); run = new RunModel(0L, str); } // value selected from list else { run = cbName.getValue(); } handler.newValue(run, value); } } catch (Exception e) { Motiver.showException(e); } } }); simple.addButton(btnAdd); Button btnCancel = new Button(AppController.Lang.Cancel()); btnCancel.setScale(ButtonScale.MEDIUM); // hide window btnCancel.addSelectionListener( new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { handler.cancel(); } }); simple.addButton(btnCancel); simple.setButtonAlign(HorizontalAlignment.CENTER); FormButtonBinding binding = new FormButtonBinding(simple); binding.addButton(btnAdd); window.add(simple); window.show(); return this; }
private void createNewUSerDialog() { setButtons(""); setLayout(new FitLayout()); setHeading(HarvesterUI.CONSTANTS.addUser()); setIcon(HarvesterUI.ICONS.add16()); setResizable(false); setModal(true); setSize(600, 200); setBodyBorder(false); FormData formData = new FormData("95%"); newUserFormPanel = new DefaultFormPanel(); newUserFormPanel.setHeaderVisible(false); newUserFormPanel.setLayout(new EditableFormLayout(175)); userNameField = new TextField<String>(); userNameField.setFieldLabel(HarvesterUI.CONSTANTS.username() + HarvesterUI.REQUIRED_STR); userNameField.setId("userNameField"); userNameField.setMinLength(4); userNameField.setAllowBlank(false); newUserFormPanel.add(userNameField, formData); Validator usernameValidator = new Validator() { public String validate(Field<?> field, String s) { if (!s.matches("^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$")) return HarvesterUI.CONSTANTS.usernameValidateMessage(); return null; } }; userNameField.setValidator(usernameValidator); emailField = new TextField<String>(); emailField.setFieldLabel(HarvesterUI.CONSTANTS.email() + HarvesterUI.REQUIRED_STR); emailField.setId("emailField"); emailField.setAllowBlank(false); newUserFormPanel.add(emailField, formData); Validator emailValidator = new Validator() { public String validate(Field<?> field, String s) { if (!s.matches("[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}")) return HarvesterUI.CONSTANTS.emailValidateMessage(); return null; } }; emailField.setValidator(emailValidator); roleCombo = new SimpleComboBox<String>(); roleCombo.setEditable(false); roleCombo.setFieldLabel(HarvesterUI.CONSTANTS.role() + HarvesterUI.REQUIRED_STR); roleCombo.setTriggerAction(ComboBox.TriggerAction.ALL); for (UserRole userRole : UserRole.values()) { if (userRole != UserRole.ANONYMOUS) roleCombo.add(userRole.name()); } roleCombo.setValue(roleCombo.getStore().getAt(0)); newUserFormPanel.add(roleCombo, formData); saveButton = new Button( HarvesterUI.CONSTANTS.save(), HarvesterUI.ICONS.save_icon(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent be) { AsyncCallback<User> callback = new AsyncCallback<User>() { public void onFailure(Throwable caught) { new ServerExceptionDialog( "Failed to get response from server", caught.getMessage()) .show(); } public void onSuccess(User user) { AsyncCallback<ResponseState> callback = new AsyncCallback<ResponseState>() { public void onFailure(Throwable caught) { new ServerExceptionDialog( "Failed to get response from server", caught.getMessage()) .show(); } public void onSuccess(ResponseState result) { unmask(); if (result == ResponseState.USER_ALREADY_EXISTS) { HarvesterUI.UTIL_MANAGER.getErrorBox( HarvesterUI.CONSTANTS.newUser(), HarvesterUI.CONSTANTS.usernameAlreadyExists()); return; } hide(); userManagementGrid.getStore().add(newUser); HarvesterUI.UTIL_MANAGER.getSaveBox( HarvesterUI.CONSTANTS.newUser(), HarvesterUI.CONSTANTS.saveNewUserSuccess()); Dispatcher.get().dispatch(AppEvents.ViewUserManagementForm); } }; mask(HarvesterUI.CONSTANTS.saveUserMask()); newUserFormPanel.submit(); String role = roleCombo.getValue().getValue().trim(); String userName = userNameField.getValue().trim(); String email = emailField.getValue().trim(); String password = "******"; newUser = new User(userName, password, role, email, 15); service.saveNewUser(newUser, callback); } }; String userName = userNameField.getValue(); service.getUser(userName, callback); } }); newUserFormPanel.addButton(saveButton); newUserFormPanel.addButton( new Button( HarvesterUI.CONSTANTS.cancel(), HarvesterUI.ICONS.cancel_icon(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent be) { hide(); Dispatcher.get().dispatch(AppEvents.ViewUserManagementForm); } })); newUserFormPanel.setButtonAlign(Style.HorizontalAlignment.CENTER); FormButtonBinding binding = new FormButtonBinding(newUserFormPanel); binding.addButton(saveButton); add(newUserFormPanel); }