Search in sources :

Example 1 with GwtAccountCreator

use of org.eclipse.kapua.app.console.shared.model.GwtAccountCreator in project kapua by eclipse.

the class AccountForm method onRender.

protected void onRender(Element parent, int index) {
    super.onRender(parent, index);
    FormData formData = new FormData("-30");
    m_formPanel = new FormPanel();
    m_formPanel.setFrame(false);
    m_formPanel.setBodyBorder(true);
    m_formPanel.setHeaderVisible(false);
    m_formPanel.setScrollMode(Scroll.AUTOY);
    m_formPanel.setLayout(new FlowLayout());
    // //////////////////////////////////////////
    // Account Information field set
    // //////////////////////////////////////////
    FieldSet fieldSet = new FieldSet();
    fieldSet.setHeading(MSGS.accountFormInformation());
    FormLayout layoutAccount = new FormLayout();
    layoutAccount.setLabelWidth(LABEL_WIDTH_FORM);
    fieldSet.setLayout(layoutAccount);
    // 
    // Show parent account name
    // 
    final LabelField parentAccountName = new LabelField();
    parentAccountName.setName("parentAccountName");
    parentAccountName.setFieldLabel(MSGS.accountFormParentAccount());
    parentAccountName.setLabelSeparator(":");
    fieldSet.add(parentAccountName, formData);
    // 
    // Account name field
    // 
    final LabelField accountNameLabel = new LabelField();
    accountNameLabel.setName("accountNameLabel");
    accountNameLabel.setFieldLabel(MSGS.accountFormName());
    accountNameLabel.setLabelSeparator(":");
    fieldSet.add(accountNameLabel, formData);
    final TextField<String> accountNameField = new TextField<String>();
    accountNameField.setAllowBlank(false);
    accountNameField.setName("accountName");
    accountNameField.setFieldLabel("* " + MSGS.accountFormName());
    accountNameField.setValidator(new TextFieldValidator(accountNameField, FieldType.SIMPLE_NAME));
    fieldSet.add(accountNameField, formData);
    // 
    // passwords
    // 
    final TextField<String> accountPassword = new TextField<String>();
    accountPassword.setAllowBlank(false);
    accountPassword.setName("accountPassword");
    accountPassword.setFieldLabel("* " + MSGS.accountFormPassword());
    accountPassword.setValidator(new TextFieldValidator(accountPassword, FieldType.PASSWORD));
    accountPassword.setPassword(true);
    fieldSet.add(accountPassword, formData);
    // 
    // Confirm password
    // 
    final TextField<String> confirmPassword = new TextField<String>();
    confirmPassword.setAllowBlank(false);
    confirmPassword.setName("confirmPassword");
    confirmPassword.setFieldLabel("* " + MSGS.accountFormConfirmPassword());
    confirmPassword.setValidator(new ConfirmPasswordFieldValidator(confirmPassword, accountPassword));
    confirmPassword.setPassword(true);
    fieldSet.add(confirmPassword, formData);
    m_formPanel.add(fieldSet);
    // //////////////////////////////////////////
    // Deployment Information field set
    // //////////////////////////////////////////
    FieldSet fieldSetDeployment = new FieldSet();
    fieldSetDeployment.setHeading(MSGS.accountFormDeploymentInformation());
    FormLayout layoutDeployment = new FormLayout();
    layoutDeployment.setLabelWidth(LABEL_WIDTH_FORM);
    fieldSetDeployment.setLayout(layoutDeployment);
    // 
    // broker cluster
    // 
    final LabelField accountClusterLabel = new LabelField();
    accountClusterLabel.setName("accountBrokerLabel");
    accountClusterLabel.setFieldLabel(MSGS.accountFormBrokerCluster());
    accountClusterLabel.setLabelSeparator(":");
    fieldSetDeployment.add(accountClusterLabel, formData);
    final NumberField optlock = new NumberField();
    optlock.setName("optlock");
    optlock.setEditable(false);
    optlock.setVisible(false);
    fieldSetDeployment.add(optlock, formData);
    // add the field set and reset
    m_formPanel.add(fieldSetDeployment);
    // //////////////////////////////////////////
    // Organization Information field set
    // //////////////////////////////////////////
    FieldSet fieldSetOrg = new FieldSet();
    fieldSetOrg.setHeading(MSGS.accountFormOrgInformation());
    FormLayout layoutOrg = new FormLayout();
    layoutOrg.setLabelWidth(LABEL_WIDTH_FORM);
    fieldSetOrg.setLayout(layoutOrg);
    // 
    // Organization name
    // 
    final TextField<String> organizationName = new TextField<String>();
    organizationName.setAllowBlank(false);
    organizationName.setName("organizationName");
    organizationName.setFieldLabel("* " + MSGS.accountFormOrgName());
    fieldSetOrg.add(organizationName, formData);
    // 
    // Organization email
    // 
    final TextField<String> organizationEmail = new TextField<String>();
    organizationEmail.setAllowBlank(false);
    organizationEmail.setName("organizationEmail");
    organizationEmail.setFieldLabel("* " + MSGS.accountFormOrgEmail());
    organizationEmail.setValidator(new TextFieldValidator(organizationEmail, FieldType.EMAIL));
    fieldSetOrg.add(organizationEmail, formData);
    // //////////////////////////////////////////
    // Organization Information sub field set
    // //////////////////////////////////////////
    FieldSet organizationSubFieldSet = new FieldSet();
    organizationSubFieldSet.setHeading(MSGS.accountFormOrgMoreInformation());
    organizationSubFieldSet.setBorders(false);
    organizationSubFieldSet.setCollapsible(true);
    organizationSubFieldSet.setWidth(515);
    FormLayout organizationSubLayout = new FormLayout();
    organizationSubLayout.setLabelWidth(LABEL_WIDTH_FORM - 11);
    organizationSubFieldSet.setLayout(organizationSubLayout);
    // 
    // Other organization data
    // 
    FormData subFieldsetFormData = new FormData("-7");
    final TextField<String> organizationPersonName = new TextField<String>();
    organizationPersonName.setName("organizationPersonName");
    organizationPersonName.setFieldLabel(MSGS.accountFormOrgPersonName());
    organizationSubFieldSet.add(organizationPersonName, subFieldsetFormData);
    final TextField<String> organizationPhoneNumber = new TextField<String>();
    organizationPhoneNumber.setName("organizationPhoneNumber");
    organizationPhoneNumber.setFieldLabel(MSGS.accountFormOrgPhoneNumber());
    organizationSubFieldSet.add(organizationPhoneNumber, subFieldsetFormData);
    final TextField<String> organizationAddressLine1 = new TextField<String>();
    organizationAddressLine1.setName("organizationAddressLine1");
    organizationAddressLine1.setFieldLabel(MSGS.accountFormOrgAddress1());
    organizationSubFieldSet.add(organizationAddressLine1, subFieldsetFormData);
    final TextField<String> organizationAddressLine2 = new TextField<String>();
    organizationAddressLine2.setName("organizationAddressLine2");
    organizationAddressLine2.setFieldLabel(MSGS.accountFormOrgAddress2());
    organizationSubFieldSet.add(organizationAddressLine2, subFieldsetFormData);
    final TextField<String> organizationZipPostCode = new TextField<String>();
    organizationZipPostCode.setName("organizationZipPostCode");
    organizationZipPostCode.setFieldLabel(MSGS.accountFormOrgZipPostCode());
    organizationSubFieldSet.add(organizationZipPostCode, subFieldsetFormData);
    final TextField<String> organizationCity = new TextField<String>();
    organizationCity.setName("organizationCity");
    organizationCity.setFieldLabel(MSGS.accountFormOrgCity());
    organizationSubFieldSet.add(organizationCity, subFieldsetFormData);
    final TextField<String> organizationStateProvinceCounty = new TextField<String>();
    organizationStateProvinceCounty.setName("organizationStateProvinceCounty");
    organizationStateProvinceCounty.setFieldLabel(MSGS.accountFormOrgState());
    organizationSubFieldSet.add(organizationStateProvinceCounty, subFieldsetFormData);
    final TextField<String> organizationCountry = new TextField<String>();
    organizationCountry.setName("organizationCountry");
    organizationCountry.setFieldLabel(MSGS.accountFormOrgCountry());
    organizationSubFieldSet.add(organizationCountry, subFieldsetFormData);
    // add the field set and reset
    fieldSetOrg.add(organizationSubFieldSet);
    m_formPanel.add(fieldSetOrg);
    // 
    if (m_existingAccount == null) {
        // Show editable name, password, confirm password
        accountNameLabel.setVisible(false);
        accountClusterLabel.setVisible(false);
    } else // 
    // If is an update of an existing account
    // 
    {
        // Show parent account name and account name
        accountNameField.setVisible(false);
        accountPassword.setVisible(false);
        confirmPassword.setVisible(false);
    }
    m_status = new Status();
    m_status.setBusy(MSGS.waitMsg());
    m_status.hide();
    m_status.setAutoWidth(true);
    m_formPanel.setButtonAlign(HorizontalAlignment.LEFT);
    m_formPanel.getButtonBar().add(m_status);
    m_formPanel.getButtonBar().add(new FillToolItem());
    // 
    // Behave of Submit Button
    // 
    m_formPanel.addButton(new Button(MSGS.submitButton(), new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            // make sure all visible fields are valid before performing the action
            for (Field<?> field : m_formPanel.getFields()) {
                if (field.isVisible() && !field.isValid()) {
                    MessageBox.alert(MSGS.error(), MSGS.formErrors(), null);
                    return;
                }
            }
            // 
            // Hold the dialog until the action comes back
            m_status.show();
            m_formPanel.getButtonBar().disable();
            // 
            if (m_existingAccount == null) {
                final GwtAccountCreator gwtAccountCreator = new GwtAccountCreator();
                gwtAccountCreator.setParentAccountId(m_currentSession.getSelectedAccount().getId());
                gwtAccountCreator.setAccountName(accountNameField.getValue());
                gwtAccountCreator.setAccountPassword(accountPassword.getValue());
                // Organization data
                gwtAccountCreator.setOrganizationName(organizationName.getValue());
                gwtAccountCreator.setOrganizationPersonName(organizationPersonName.getValue());
                gwtAccountCreator.setOrganizationEmail(organizationEmail.getValue());
                gwtAccountCreator.setOrganizationPhoneNumber(organizationPhoneNumber.getValue());
                gwtAccountCreator.setOrganizationAddressLine1(organizationAddressLine1.getValue());
                gwtAccountCreator.setOrganizationAddressLine2(organizationAddressLine2.getValue());
                gwtAccountCreator.setOrganizationCity(organizationCity.getValue());
                gwtAccountCreator.setOrganizationZipPostCode(organizationZipPostCode.getValue());
                gwtAccountCreator.setOrganizationStateProvinceCounty(organizationStateProvinceCounty.getValue());
                gwtAccountCreator.setOrganizationCountry(organizationCountry.getValue());
                // 
                // Call to create an account
                // Getting XSRF token
                gwtXSRFService.generateSecurityToken(new AsyncCallback<GwtXSRFToken>() {

                    @Override
                    public void onFailure(Throwable ex) {
                        FailureHandler.handle(ex);
                    }

                    @Override
                    public void onSuccess(GwtXSRFToken token) {
                        gwtAccountService.create(token, gwtAccountCreator, new AsyncCallback<GwtAccount>() {

                            public void onFailure(Throwable caught) {
                                FailureHandler.handleFormException(m_formPanel, caught);
                                m_status.hide();
                                m_formPanel.getButtonBar().enable();
                            }

                            public void onSuccess(GwtAccount account) {
                                ConsoleInfo.display(MSGS.info(), MSGS.accountCreatedConfirmation(account.getUnescapedName()));
                                m_newAccount = account;
                                // gwtAccountUtils.loadChildAccounts();
                                hide();
                            }
                        });
                    }
                });
            } else // 
            // Update the account
            // 
            {
                // Organization data
                GwtOrganization gwtOrganization = new GwtOrganization();
                gwtOrganization.setName(organizationName.getValue());
                gwtOrganization.setPersonName(organizationPersonName.getValue());
                gwtOrganization.setEmailAddress(organizationEmail.getValue());
                gwtOrganization.setPhoneNumber(organizationPhoneNumber.getValue());
                gwtOrganization.setAddressLine1(organizationAddressLine1.getValue());
                gwtOrganization.setAddressLine2(organizationAddressLine2.getValue());
                gwtOrganization.setZipPostCode(organizationZipPostCode.getValue());
                gwtOrganization.setCity(organizationCity.getValue());
                gwtOrganization.setStateProvinceCounty(organizationStateProvinceCounty.getValue());
                gwtOrganization.setCountry(organizationCountry.getValue());
                m_existingAccount.setGwtOrganization(gwtOrganization);
                // 
                // Call to update the account
                // Getting XSRF token
                gwtXSRFService.generateSecurityToken(new AsyncCallback<GwtXSRFToken>() {

                    @Override
                    public void onFailure(Throwable ex) {
                        FailureHandler.handle(ex);
                    }

                    @Override
                    public void onSuccess(GwtXSRFToken token) {
                        gwtAccountService.update(token, m_existingAccount, new AsyncCallback<GwtAccount>() {

                            public void onFailure(Throwable caught) {
                                FailureHandler.handleFormException(m_formPanel, caught);
                                m_status.hide();
                                m_formPanel.getButtonBar().enable();
                            }

                            public void onSuccess(GwtAccount account) {
                                ConsoleInfo.display(MSGS.info(), MSGS.accountUpdatedConfirmation(account.getUnescapedName()));
                                m_existingAccount = account;
                                hide();
                            }
                        });
                    }
                });
            }
        }
    }));
    // 
    // Cancel Button
    // 
    m_formPanel.addButton(new Button(MSGS.cancelButton(), new SelectionListener<ButtonEvent>() {

        @Override
        public void componentSelected(ButtonEvent ce) {
            hide();
        }
    }));
    m_formPanel.setButtonAlign(HorizontalAlignment.CENTER);
    // 
    // Populate field if necessary
    // 
    parentAccountName.setValue(m_currentSession.getSelectedAccount().getName());
    if (m_existingAccount != null) {
        gwtAccountService.find(m_existingAccount.getId(), new AsyncCallback<GwtAccount>() {

            public void onFailure(Throwable caught) {
                FailureHandler.handle(caught);
            }

            public void onSuccess(GwtAccount account) {
                // set value and original value as we want to track the Dirty state
                accountNameLabel.setValue(account.getName());
                accountNameField.setValue(account.getName());
                accountNameField.setOriginalValue(account.getName());
                accountClusterLabel.setValue(account.getBrokerURL());
                organizationName.setValue(account.getGwtOrganization().getName());
                organizationName.setOriginalValue(account.getGwtOrganization().getName());
                organizationPersonName.setValue(account.getGwtOrganization().getPersonName());
                organizationPersonName.setOriginalValue(account.getGwtOrganization().getPersonName());
                organizationEmail.setValue(account.getGwtOrganization().getEmailAddress());
                organizationEmail.setOriginalValue(account.getGwtOrganization().getEmailAddress());
                organizationPhoneNumber.setValue(account.getGwtOrganization().getPhoneNumber());
                organizationPhoneNumber.setOriginalValue(account.getGwtOrganization().getPhoneNumber());
                organizationAddressLine1.setValue(account.getGwtOrganization().getAddressLine1());
                organizationAddressLine1.setOriginalValue(account.getGwtOrganization().getAddressLine1());
                organizationAddressLine2.setValue(account.getGwtOrganization().getAddressLine2());
                organizationAddressLine2.setOriginalValue(account.getGwtOrganization().getAddressLine2());
                organizationZipPostCode.setValue(account.getGwtOrganization().getZipPostCode());
                organizationZipPostCode.setOriginalValue(account.getGwtOrganization().getZipPostCode());
                organizationCity.setValue(account.getGwtOrganization().getCity());
                organizationCity.setOriginalValue(account.getGwtOrganization().getCity());
                organizationStateProvinceCounty.setValue(account.getGwtOrganization().getStateProvinceCounty());
                organizationStateProvinceCounty.setOriginalValue(account.getGwtOrganization().getStateProvinceCounty());
                organizationCountry.setValue(account.getGwtOrganization().getCountry());
                organizationCountry.setOriginalValue(account.getGwtOrganization().getCountry());
                optlock.setValue(account.getOptlock());
            }
        });
    }
    add(m_formPanel);
}
Also used : FlowLayout(com.extjs.gxt.ui.client.widget.layout.FlowLayout) AsyncCallback(com.google.gwt.user.client.rpc.AsyncCallback) GwtXSRFToken(org.eclipse.kapua.app.console.shared.model.GwtXSRFToken) FieldSet(com.extjs.gxt.ui.client.widget.form.FieldSet) Button(com.extjs.gxt.ui.client.widget.button.Button) GwtOrganization(org.eclipse.kapua.app.console.shared.model.GwtOrganization) ConfirmPasswordFieldValidator(org.eclipse.kapua.app.console.client.util.ConfirmPasswordFieldValidator) TextField(com.extjs.gxt.ui.client.widget.form.TextField) LabelField(com.extjs.gxt.ui.client.widget.form.LabelField) FormData(com.extjs.gxt.ui.client.widget.layout.FormData) FormLayout(com.extjs.gxt.ui.client.widget.layout.FormLayout) Status(com.extjs.gxt.ui.client.widget.Status) GwtAccount(org.eclipse.kapua.app.console.shared.model.GwtAccount) NumberField(com.extjs.gxt.ui.client.widget.form.NumberField) FormPanel(com.extjs.gxt.ui.client.widget.form.FormPanel) ButtonEvent(com.extjs.gxt.ui.client.event.ButtonEvent) GwtAccountCreator(org.eclipse.kapua.app.console.shared.model.GwtAccountCreator) TextFieldValidator(org.eclipse.kapua.app.console.client.util.TextFieldValidator) FillToolItem(com.extjs.gxt.ui.client.widget.toolbar.FillToolItem) SelectionListener(com.extjs.gxt.ui.client.event.SelectionListener)

Example 2 with GwtAccountCreator

use of org.eclipse.kapua.app.console.shared.model.GwtAccountCreator in project kapua by eclipse.

the class GwtAccountServiceImpl method create.

public GwtAccount create(GwtXSRFToken xsrfToken, GwtAccountCreator gwtAccountCreator) throws GwtKapuaException {
    // 
    // Checking validity of the given XSRF Token
    checkXSRFToken(xsrfToken);
    GwtAccount gwtAccount = null;
    KapuaId parentAccountId = KapuaEid.parseShortId(gwtAccountCreator.getParentAccountId());
    try {
        KapuaLocator locator = KapuaLocator.getInstance();
        AccountFactory accountFactory = locator.getFactory(AccountFactory.class);
        AccountCreator accountCreator = accountFactory.newAccountCreator(parentAccountId, gwtAccountCreator.getAccountName());
        accountCreator.setAccountPassword(gwtAccountCreator.getAccountPassword());
        accountCreator.setOrganizationName(gwtAccountCreator.getOrganizationName());
        accountCreator.setOrganizationPersonName(gwtAccountCreator.getOrganizationPersonName());
        accountCreator.setOrganizationEmail(gwtAccountCreator.getOrganizationEmail());
        accountCreator.setOrganizationPhoneNumber(gwtAccountCreator.getOrganizationPhoneNumber());
        accountCreator.setOrganizationAddressLine1(gwtAccountCreator.getOrganizationAddressLine1());
        accountCreator.setOrganizationAddressLine2(gwtAccountCreator.getOrganizationAddressLine2());
        accountCreator.setOrganizationCity(gwtAccountCreator.getOrganizationCity());
        accountCreator.setOrganizationZipPostCode(gwtAccountCreator.getOrganizationZipPostCode());
        accountCreator.setOrganizationStateProvinceCounty(gwtAccountCreator.getOrganizationStateProvinceCounty());
        accountCreator.setOrganizationCountry(gwtAccountCreator.getOrganizationCountry());
        // create the Account
        AccountService accountService = locator.getService(AccountService.class);
        Account account = accountService.create(accountCreator);
        // convert to GwtAccount and return
        gwtAccount = KapuaGwtConverter.convert(account);
    } catch (Throwable t) {
        KapuaExceptionHandler.handle(t);
    }
    return gwtAccount;
}
Also used : GwtAccountCreator(org.eclipse.kapua.app.console.shared.model.GwtAccountCreator) AccountCreator(org.eclipse.kapua.service.account.AccountCreator) KapuaLocator(org.eclipse.kapua.locator.KapuaLocator) AccountFactory(org.eclipse.kapua.service.account.AccountFactory) Account(org.eclipse.kapua.service.account.Account) GwtAccount(org.eclipse.kapua.app.console.shared.model.GwtAccount) GwtAccount(org.eclipse.kapua.app.console.shared.model.GwtAccount) KapuaId(org.eclipse.kapua.model.id.KapuaId) AccountService(org.eclipse.kapua.service.account.AccountService) GwtAccountService(org.eclipse.kapua.app.console.shared.service.GwtAccountService)

Aggregations

GwtAccount (org.eclipse.kapua.app.console.shared.model.GwtAccount)2 GwtAccountCreator (org.eclipse.kapua.app.console.shared.model.GwtAccountCreator)2 ButtonEvent (com.extjs.gxt.ui.client.event.ButtonEvent)1 SelectionListener (com.extjs.gxt.ui.client.event.SelectionListener)1 Status (com.extjs.gxt.ui.client.widget.Status)1 Button (com.extjs.gxt.ui.client.widget.button.Button)1 FieldSet (com.extjs.gxt.ui.client.widget.form.FieldSet)1 FormPanel (com.extjs.gxt.ui.client.widget.form.FormPanel)1 LabelField (com.extjs.gxt.ui.client.widget.form.LabelField)1 NumberField (com.extjs.gxt.ui.client.widget.form.NumberField)1 TextField (com.extjs.gxt.ui.client.widget.form.TextField)1 FlowLayout (com.extjs.gxt.ui.client.widget.layout.FlowLayout)1 FormData (com.extjs.gxt.ui.client.widget.layout.FormData)1 FormLayout (com.extjs.gxt.ui.client.widget.layout.FormLayout)1 FillToolItem (com.extjs.gxt.ui.client.widget.toolbar.FillToolItem)1 AsyncCallback (com.google.gwt.user.client.rpc.AsyncCallback)1 ConfirmPasswordFieldValidator (org.eclipse.kapua.app.console.client.util.ConfirmPasswordFieldValidator)1 TextFieldValidator (org.eclipse.kapua.app.console.client.util.TextFieldValidator)1 GwtOrganization (org.eclipse.kapua.app.console.shared.model.GwtOrganization)1 GwtXSRFToken (org.eclipse.kapua.app.console.shared.model.GwtXSRFToken)1