Example usage for org.apache.wicket.ajax.form OnChangeAjaxBehavior EVENT_NAME

List of usage examples for org.apache.wicket.ajax.form OnChangeAjaxBehavior EVENT_NAME

Introduction

In this page you can find the example usage for org.apache.wicket.ajax.form OnChangeAjaxBehavior EVENT_NAME.

Prototype

String EVENT_NAME

To view the source code for org.apache.wicket.ajax.form OnChangeAjaxBehavior EVENT_NAME.

Click Source Link

Document

'inputchange' event delegates to 'input', 'keyup', 'cut' and 'paste' events for text input form component depending on the browser.

Usage

From source file:biz.turnonline.ecosystem.origin.frontend.myaccount.page.MyAccountBasics.java

License:Apache License

public MyAccountBasics() {
    add(new FirebaseAppInit(firebaseConfig));

    final MyAccountModel accountModel = new MyAccountModel();
    final IModel<Map<String, Country>> countriesModel = new CountriesModel();

    setModel(accountModel);/* w w w  .  j  a v  a 2  s. c  om*/

    // form
    Form<Account> form = new Form<Account>("form", accountModel) {
        private static final long serialVersionUID = -938924956863034465L;

        @Override
        protected void onSubmit() {
            Account account = getModelObject();
            send(getPage(), Broadcast.BREADTH, new AccountUpdateEvent(account));
        }
    };
    add(form);

    PropertyModel<Boolean> companyModel = new PropertyModel<>(accountModel, "company");
    form.add(new CompanyPersonSwitcher("isCompanyRadioGroup", companyModel));

    // account email fieldset
    form.add(new Label("email", new PropertyModel<>(accountModel, "email")));

    // company basic info
    final CompanyBasicInfo<Account> basicInfo = new CompanyBasicInfo<Account>("companyData", accountModel) {
        private static final long serialVersionUID = -2992960490517951459L;

        @Override
        protected DropDownChoice<LegalForm> provideLegalForm(String componentId) {
            LegalFormListModel choices = new LegalFormListModel();
            return new IndicatingAjaxDropDown<>(componentId,
                    new LegalFormCodeModel(accountModel, "legalForm", choices), choices,
                    new LegalFormRenderer());
        }

        @Override
        protected void onConfigure() {
            super.onConfigure();
            Account account = getModelObject();
            this.setVisible(account.getCompany());
        }
    };
    form.add(basicInfo);

    // company basic info panel behaviors
    basicInfo.addLegalForm(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 6948210639258798921L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
        }
    });

    basicInfo.addVatId(new Behavior() {
        private static final long serialVersionUID = 100053137512632023L;

        @Override
        public void onConfigure(Component component) {
            super.onConfigure(component);
            Account account = basicInfo.getModelObject();
            boolean visible;
            if (account == null || account.getBusiness() == null) {
                visible = true;
            } else {
                Boolean vatPayer = account.getBusiness().getVatPayer();
                visible = vatPayer == null ? Boolean.FALSE : vatPayer;
            }

            component.setVisible(visible);
        }
    });

    final TextField taxId = basicInfo.getTaxId();
    final TextField vatId = basicInfo.getVatId();
    final CheckBox vatPayer = basicInfo.getVatPayer();

    basicInfo.addVatPayer(new AjaxFormSubmitBehavior(OnChangeAjaxBehavior.EVENT_NAME) {
        private static final long serialVersionUID = -1238082494184937003L;

        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            Account account = (Account) basicInfo.getDefaultModelObject();
            String rawTaxIdValue = taxId.getRawInput();
            AccountBusiness business = account.getBusiness();

            if (rawTaxIdValue != null && Strings.isEmpty(business == null ? null : business.getVatId())) {
                // VAT country prefix proposal
                String country = business == null ? "" : business.getDomicile();
                country = country.toUpperCase();
                //noinspection unchecked
                vatId.getModel().setObject(country + rawTaxIdValue);
            }

            // must be set manually as getDefaultProcessing() returns false
            vatPayer.setModelObject(!(business == null ? Boolean.FALSE : business.getVatPayer()));

            if (target != null) {
                target.add(vatId.getParent());
            }
        }

        @Override
        public boolean getDefaultProcessing() {
            return false;
        }
    });

    // personal data panel
    PersonalDataPanel<Account> personalData = new PersonalDataPanel<Account>("personalData", accountModel) {
        private static final long serialVersionUID = -2808922906891760016L;

        @Override
        protected void onConfigure() {
            super.onConfigure();
            Account account = getModelObject();
            this.setVisible(!account.getCompany());
        }
    };
    form.add(personalData);

    // personal address panel
    PersonalAddressPanel<Account> address = new PersonalAddressPanel<Account>("personalAddress", accountModel) {
        private static final long serialVersionUID = 3481146248010938807L;

        @Override
        protected DropDownChoice<Country> provideCountry(String componentId) {
            return new IndicatingAjaxDropDown<>(componentId,
                    new PersonalAddressCountryModel(accountModel, countriesModel), new CountryRenderer(),
                    countriesModel);
        }

        @Override
        protected void onConfigure() {
            super.onConfigure();
            Account account = getModelObject();
            this.setVisible(!account.getCompany());
        }
    };
    form.add(address);

    address.addCountry(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = -1016447969591778948L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
        }
    });

    // company address panel
    CompanyAddressPanel<Account> companyAddress;
    companyAddress = new CompanyAddressPanel<Account>("companyAddress", accountModel, false, false) {
        private static final long serialVersionUID = -6760545061622186549L;

        @Override
        protected DropDownChoice<Country> provideCountry(String componentId) {
            return new IndicatingAjaxDropDown<>(componentId,
                    new CompanyDomicileModel(accountModel, countriesModel), new CountryRenderer(),
                    countriesModel);
        }

        @Override
        protected void onConfigure() {
            super.onConfigure();
            Account account = getModelObject();
            this.setVisible(account.getCompany());
        }
    };
    form.add(companyAddress);

    companyAddress.addCountry(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = -5476413125490349124L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
        }
    });

    IModel<AccountPostalAddress> postalAddressModel = new PropertyModel<>(accountModel, "postalAddress");
    IModel<Boolean> hasAddress = new PropertyModel<>(accountModel, "hasPostalAddress");
    PostalAddressPanel<AccountPostalAddress> postalAddress;
    postalAddress = new PostalAddressPanel<AccountPostalAddress>("postal-address", postalAddressModel,
            hasAddress) {
        private static final long serialVersionUID = -930960688138308527L;

        @Override
        protected DropDownChoice<Country> provideCountry(String componentId) {
            return new IndicatingAjaxDropDown<>(componentId,
                    new PostalAddressCountryModel(accountModel, countriesModel), new CountryRenderer(),
                    countriesModel);
        }
    };
    form.add(postalAddress);

    postalAddress.addStreet(new OnChangeAjaxBehavior() {
        private static final long serialVersionUID = 4050800366443676166L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
        }
    });

    PropertyModel<Object> billingContactModel = PropertyModel.of(accountModel, "billingContact");
    form.add(new SimplifiedContactFieldSet<>("contact", billingContactModel));
    // save button
    form.add(new IndicatingAjaxButton("save", new I18NResourceModel("button.save"), form));
}

From source file:org.projectforge.plugins.ffp.wicket.FFPEventEditForm.java

License:Open Source License

@Override
protected void init() {
    super.init();
    currentUser = ThreadLocalUserContext.getUser();
    if (data.getOrganizer() == null) {
        if (currentUser == null) {
            error(I18nHelper.getLocalizedMessage("plugins.ffp.validate.noUser"));
            return;
        } else {/*from  w  w w  .j av  a 2s  . co  m*/
            data.setOrganizer(currentUser);
        }
    }

    if (isNew()) {
        if (currentUser != null) {
            this.accountingList.add(getNewFfpAccountingDO(currentUser));
        }
    }

    IFormValidator formValidator = new IFormValidator() {

        // Components for form validation.
        private final FormComponent<?>[] dependentFormComponents = new FormComponent[1];

        @Override
        public FormComponent<?>[] getDependentFormComponents() {
            return dependentFormComponents;
        }

        @Override
        public void validate(Form<?> form) {
            Select2MultiChoice<PFUserDO> attendeesSelect2 = (Select2MultiChoice<PFUserDO>) dependentFormComponents[0];
            Collection<PFUserDO> attendeeList = attendeesSelect2.getConvertedInput();
            if (attendeeList != null && attendeeList.size() < 2) {
                error(I18nHelper.getLocalizedMessage("plugins.ffp.validate.minAttendees"));
            }
        }
    };

    add(formValidator);

    gridBuilder.newSplitPanel(GridSize.COL50, true).newSubSplitPanel(GridSize.COL100);
    {
        // Organizer
        final FieldsetPanel fs = gridBuilder.newFieldset(FFPEventDO.class, "organizer");
        fs.add(new DivTextPanel(fs.newChildId(), data.getOrganizer().getFullname()));
    }
    {
        // Event date
        final FieldsetPanel fs = gridBuilder.newFieldset(FFPEventDO.class, "eventDate");
        DatePanel eventDate = new DatePanel(fs.newChildId(), new PropertyModel<>(data, "eventDate"),
                DatePanelSettings.get().withTargetType(java.sql.Date.class), true);
        eventDate.setRequired(true);
        eventDate.setMarkupId("eventDate").setOutputMarkupId(true);
        eventDate.setEnabled(getData().getFinished() == false);
        fs.add(eventDate);
    }
    {
        // Division
        final FieldsetPanel fs = gridBuilder.newFieldset(FFPEventDO.class, "title");
        MaxLengthTextField titel = new MaxLengthTextField(InputPanel.WICKET_ID,
                new PropertyModel<>(data, "title"));
        titel.setRequired(true);
        titel.setMarkupId("eventTitel").setOutputMarkupId(true);
        titel.setEnabled(getData().getFinished() == false);
        fs.add(titel);
    }
    {
        // ATTENDEES
        final FieldsetPanel fieldSet = gridBuilder.newFieldset(getString("plugins.ffp.attendees"));
        assignAttendeesListHelper = new MultiChoiceListHelper<PFUserDO>()
                .setComparator(new Comparator<PFUserDO>() {

                    @Override
                    public int compare(PFUserDO o1, PFUserDO o2) {
                        return o1.getPk().compareTo(o2.getPk());
                    }

                }).setFullList(userDao.getList(new PFUserFilter().setDeactivatedUser(false)));

        if (this.data.getAttendeeList() != null && this.data.getAttendeeList().size() > 0) {
            for (final PFUserDO attendee : this.data.getAttendeeList()) {
                assignAttendeesListHelper.addOriginalAssignedItem(attendee).assignItem(attendee);
            }
        }
        if (this.accountingList != null && this.accountingList.size() > 0) {
            for (final FFPAccountingDO accounting : this.accountingList) {
                assignAttendeesListHelper.assignItem(accounting.getAttendee());
            }
        }

        final Select2MultiChoice<PFUserDO> attendees = new Select2MultiChoice<PFUserDO>(
                fieldSet.getSelect2MultiChoiceId(),
                new PropertyModel<Collection<PFUserDO>>(this.assignAttendeesListHelper, "assignedItems"),
                new UsersProvider(userDao));
        attendees.setRequired(true).setMarkupId("attendees").setOutputMarkupId(true);
        attendees.add(new AjaxEventBehavior(OnChangeAjaxBehavior.EVENT_NAME) {
            protected final FormComponent<?> getFormComponent() {
                return (FormComponent<?>) getComponent();
            }

            @Override
            protected void onEvent(AjaxRequestTarget target) {
                final FormComponent<?> formComponent = getFormComponent();
                try {
                    formComponent.inputChanged();
                    formComponent.validate();
                    if (formComponent.hasErrorMessage()) {
                        formComponent.invalid();
                        accountingList.clear();
                        assignAttendeesListHelper.getAssignedItems().clear();
                    } else {
                        formComponent.valid();
                        formComponent.updateModel();
                    }
                    dataTable = createDataTable(createColumns(), "attendee.fullname", SortOrder.ASCENDING,
                            getData());
                    tablePanel.addOrReplace(dataTable);
                    target.add(dataTable);
                } catch (RuntimeException e) {
                    throw e;
                }
            }
        });
        attendees.setEnabled(getData().getFinished() == false);
        formValidator.getDependentFormComponents()[0] = attendees;
        fieldSet.add(attendees);
    }

    //Transactions
    createDataTable(gridBuilder);

    {
        Button finishButton = new Button("button", new Model<String>("plugins.ffp.finishEvent")) {
            @Override
            public final void onSubmit() {
                try {
                    getData().setFinished(true);
                    parentPage.createOrUpdate();
                } catch (final UserException ex) {
                    error(parentPage.translateParams(ex));
                }
            }
        };
        finishButton.setMarkupId("finishEvent").setOutputMarkupId(true);
        finishButtonPanel = new SingleButtonPanel(actionButtons.newChildId(), finishButton,
                getString("plugins.ffp.finishEvent"), SingleButtonPanel.SUCCESS);
        finishButtonPanel.setVisible(false);
        actionButtons.add(finishButtonPanel);
    }
}