Example usage for org.apache.wicket.markup.html.panel ComponentFeedbackPanel ComponentFeedbackPanel

List of usage examples for org.apache.wicket.markup.html.panel ComponentFeedbackPanel ComponentFeedbackPanel

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.panel ComponentFeedbackPanel ComponentFeedbackPanel.

Prototype

public ComponentFeedbackPanel(String id, Component filter) 

Source Link

Document

Constructor.

Usage

From source file:ca.travelagency.config.CompanyPage.java

License:Apache License

private Form<Void> uploadForm() {
    Form<Void> form = new Form<Void>(UPLOAD_FORM) {
        private static final long serialVersionUID = 1L;

        @Override/*from   w ww .  ja  va  2 s  .  c o  m*/
        protected void onSubmit() {
            FileUpload fileUpload = fileUploadField.getFileUpload();
            if (fileUpload == null) {
                return;
            }
            String code = ApplicationProperties.make().getCode();
            File companyLogoFile = UploadUtils.getCompanyLogoFile(code);
            try {
                companyLogoFile.createNewFile();
                fileUpload.writeTo(companyLogoFile);
            } catch (Exception e) {
                throw new RuntimeException("Unable to write logo image", e);
            }
        }
    };
    form.setMultiPart(true);
    form.setMaxSize(Bytes.kilobytes(100));

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    fileUploadField = new FileUploadField(UPLOAD_FIELD, new ListModel<FileUpload>());
    form.add(fileUploadField);

    return form;
}

From source file:ca.travelagency.config.CompanyPage.java

License:Apache License

private Form<Company> companyForm(IModel<Company> model) {
    Form<Company> form = new Form<Company>(COMPANY_FORM, model);
    form.setOutputMarkupId(true);/*from  ww w  .  jav a2  s  .  co  m*/

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    form.add(new RequiredTextField<String>(DaoEntity.PROPERTY_NAME).setLabel(new ResourceModel("company.name"))
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.address.name())
            .setLabel(new ResourceModel("company.address")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CityField(Company.Properties.city.name()).setLabel(new ResourceModel("company.city"))
            .add(StringFieldHelper.maxLenFieldValidator()).setRequired(true)
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new ProvinceField(Company.Properties.province.name())
            .setLabel(new ResourceModel("company.province")).setRequired(true)
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.postalCode.name())
            .setLabel(new ResourceModel("company.postalCode")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CountryField(Company.Properties.country.name()).setLabel(new ResourceModel("company.country"))
            .setRequired(true).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.email.name())
            .setLabel(new ResourceModel("company.email")).add(StringFieldHelper.maxLenFieldValidator())
            .add(EmailAddressValidator.getInstance()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.phoneNumber.name())
            .setLabel(new ResourceModel("company.phone")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new PhoneNumberValidator(), new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.faxNumber.name())
            .setLabel(new ResourceModel("company.fax")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new PhoneNumberValidator(), new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.taxNumber.name())
            .setLabel(new ResourceModel("company.HSTNumber")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new RequiredTextField<String>(Company.Properties.ticoNumber.name())
            .setLabel(new ResourceModel("company.TICONumber")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    form.add(new SavePanel<Company>(SAVE_BUTTON, form));
    form.add(new ResetPanel<Company>(RESET_BUTTON, form));

    return form;
}

From source file:ca.travelagency.customer.CustomerPage.java

License:Apache License

public CustomerPage(Customer customer) {
    final Form<Customer> form = new Form<Customer>(FORM, DaoEntityModelFactory.make(customer, Customer.class));
    form.setOutputMarkupId(true);//from  ww  w.j  ava 2 s  .  co  m
    add(form);

    initialize(form);

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    form.add(new DropDownChoice<CustomerStatus>(Customer.Properties.status.name(),
            Arrays.asList(CustomerStatus.values())).setRequired(true)
                    .setLabel(new ResourceModel("customer.status")).setEnabled(hasRole(Role.ADMIN))
                    .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new SalutationField(Customer.Properties.salutation.name())
            .setLabel(new ResourceModel("customer.salutation")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    LastNameField lastNameField = new LastNameField(Customer.Properties.lastName.name());
    form.add(lastNameField.setLabel(new ResourceModel("customer.lastName")).setRequired(true)
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    FirstNameField firstNameField = new FirstNameField(Customer.Properties.firstName.name());
    form.add(firstNameField.setLabel(new ResourceModel("customer.firstName")).setRequired(true)
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CompanyNameField(Customer.Properties.companyName.name())
            .setLabel(new ResourceModel("customer.companyName")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(Customer.Properties.address.name())
            .setLabel(new ResourceModel("customer.address")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CityField(Customer.Properties.city.name()).setLabel(new ResourceModel("customer.city"))
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new ProvinceField(Customer.Properties.province.name())
            .setLabel(new ResourceModel("customer.province")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(Customer.Properties.postalCode.name())
            .setLabel(new ResourceModel("customer.postalCode")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CountryField(Customer.Properties.country.name())
            .setLabel(new ResourceModel("customer.country")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(Customer.Properties.email.name())
            .setLabel(new ResourceModel("customer.email")).add(StringFieldHelper.maxLenFieldValidator())
            .add(EmailAddressValidator.getInstance()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    RequiredTextField<String> primaryPhoneNumber = new RequiredTextField<String>(
            Customer.Properties.primaryPhone.name());
    form.add(primaryPhoneNumber.setLabel(new ResourceModel("customer.primaryPhone"))
            .add(StringFieldHelper.maxLenFieldValidator())
            .add(new PhoneNumberValidator(), new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(Customer.Properties.secondaryPhone.name())
            .setLabel(new ResourceModel("customer.secondaryPhone"))
            .add(StringFieldHelper.maxLenFieldValidator())
            .add(new PhoneNumberValidator(), new FieldDecorator(), new AjaxOnBlurBehavior()));
    DateField dateOfBirthField = new BirthDateField(Customer.Properties.dateOfBirth.name());
    form.add(dateOfBirthField.setLabel(new ResourceModel("customer.dateOfBirth")).add(new FieldDecorator(),
            new AjaxOnBlurBehavior()));
    form.add(new TextArea<String>(Customer.Properties.notes.name())
            .setLabel(new ResourceModel("customer.notes")).add(StringFieldHelper.maxLenAreaValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new SystemUserField(Customer.Properties.systemUser.name())
            .setLabel(new ResourceModel("customer.agent")).setVisible(hasRole(Role.ADMIN))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TravelDocumentField(Customer.Properties.travelDocumentType.name())
            .setLabel(new ResourceModel("customer.travelDocumentType"))
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(Customer.Properties.travelDocumentNumber.name())
            .setLabel(new ResourceModel("customer.travelDocumentNumber"))
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    form.add(new CustomerDuplicateValidator(lastNameField, firstNameField, primaryPhoneNumber,
            dateOfBirthField));

    form.add(new SavePanel<Customer>(SAVE_BUTTON, form) {
        private static final long serialVersionUID = 1L;

        @Override
        public void preSubmit(AjaxRequestTarget target, Customer daoEntity, boolean newDaoEntity) {
            if (newDaoEntity && !hasRole(Role.ADMIN)) {
                daoEntity.setSystemUser(getSignedInSystemUser());
            }
        }

        @Override
        public void postSubmit(AjaxRequestTarget target, Customer daoEntity, boolean newDaoEntity) {
            if (newDaoEntity || hasRole(Role.ADMIN)) {
                setResponsePage(new CustomerPage(daoEntity));
            }
        }
    });

    form.add(new ResetPanel<Customer>(RESET_BUTTON, form));

    form.add(new Link<String>(CREATE_INVOICE_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            setResponsePage(new InvoicePage(form.getModelObject()));
        }
    }.setVisible(form.getModelObject().isActive() && isVisible(form.getModelObject())));

    add(createInvoicePanel(form));
}

From source file:ca.travelagency.customer.CustomersPage.java

License:Apache License

private Form<CustomerFilter> makeSearchForm(IModel<CustomerFilter> model) {
    final Form<CustomerFilter> form = new Form<CustomerFilter>(SEARCH_FORM,
            new CompoundPropertyModel<CustomerFilter>(model));

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    form.add(new TextField<String>(CustomerFilter.Properties.searchText.name())
            .setLabel(new ResourceModel("customer.searchText")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new DropDownChoice<CustomerStatus>(CustomerFilter.Properties.status.name(),
            Arrays.asList(CustomerStatus.values())).setLabel(new ResourceModel("customer.status"))
                    .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new SystemUserField(CustomerFilter.Properties.systemUser.name())
            .setLabel(new ResourceModel("customer.agent")).setVisible(hasRole(Role.ADMIN))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    form.add(new Button(SEARCH_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override/*w w w. j a va2 s .  co  m*/
        public void onSubmit() {
            setResponsePage(new CustomersPage());
        }
    });

    form.add(new Button(CLEAR_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            getAuthenticatedSession().clearCustomerFilter();
            setResponsePage(new CustomersPage());
        }
    }.setDefaultFormProcessing(false));

    return form;
}

From source file:ca.travelagency.identity.ResetPasswordPanel.java

License:Apache License

public ResetPasswordPanel(String id, IModel<SystemUser> model) {
    super(id);//from w w w.  ja va  2 s . c om

    Form<SystemUser> form = new Form<SystemUser>(FORM, model);
    form.setOutputMarkupId(true);
    add(form);

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    final PasswordTextField newPasswordField = new PasswordTextField(NEW_PASSWORD, new Model<String>());
    newPasswordField.setLabel(new ResourceModel("password")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator());
    form.add(newPasswordField);

    PasswordTextField confirmPasswordField = new PasswordTextField(CONFIRM_PASSWORD, new Model<String>());
    confirmPasswordField.setLabel(new ResourceModel("confirmPassword"))
            .add(StringFieldHelper.maxLenFieldValidator()).add(new FieldDecorator());
    form.add(confirmPasswordField);

    form.add(new EqualPasswordInputValidator(newPasswordField, confirmPasswordField));

    form.add(new SavePanel<SystemUser>(SAVE_BUTTON, form) {
        private static final long serialVersionUID = 1L;

        @Override
        public void preSubmit(AjaxRequestTarget target, SystemUser daoEntity, boolean newDaoEntity) {
            daoEntity.setPassword(newPasswordField.getConvertedInput());
        }

        @Override
        public void setMessage(SystemUser daoEntity) {
            String message = getLocalizer().getString("passwordReset.message", ResetPasswordPanel.this);
            getSession().success(message + " " + daoEntity.getName());
        }
    });
}

From source file:ca.travelagency.identity.roles.RoleFormPanel.java

License:Apache License

public RoleFormPanel(String id, final RolesPanel rolesPanel) {
    super(id);//from   w  w w.  j  ava 2  s .c  o  m
    IModel<SystemUserRole> model = DaoEntityModelFactory.make(SystemUserRole.class);
    Form<SystemUserRole> roleForm = new Form<SystemUserRole>(FORM, model);
    roleForm.setOutputMarkupId(true);

    roleForm.add(new ComponentFeedbackPanel(FEEDBACK, roleForm));

    roleForm.add(new DropDownChoice<Role>(SystemUserRole.Properties.role.name(), Arrays.asList(Role.values()))
            .setLabel(new ResourceModel("systemUser.role"))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    roleForm.add(new SavePanelDetail<SystemUserRole>(SAVE_BUTTON, roleForm) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit(AjaxRequestTarget target, Form<SystemUserRole> form) {
            SystemUserRole systemUserRole = form.getModelObject();
            rolesPanel.update(target, systemUserRole);
            form.setDefaultModel(DaoEntityModelFactory.make(SystemUserRole.class));
        }
    });

    roleForm.add(new ResetPanel<SystemUserRole>(RESET_BUTTON, roleForm));

    add(roleForm);
}

From source file:ca.travelagency.identity.SystemUserPage.java

License:Apache License

private Form<SystemUser> makeSystemUserForm(SystemUser systemUser) {
    final Form<SystemUser> form = new Form<SystemUser>(FORM,
            DaoEntityModelFactory.make(systemUser, SystemUser.class));
    form.setOutputMarkupId(true);//from ww  w .  j a  v  a2 s.c o  m

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    RequiredTextField<String> name = new RequiredTextField<String>(DaoEntity.PROPERTY_NAME);
    name.setLabel(new ResourceModel("systemUser.name")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior(), new DuplicateValidator<SystemUser>(form));
    form.add(name);
    form.add(new TextField<String>(SystemUser.Properties.lastName.name())
            .setLabel(new ResourceModel("systemUser.lastName")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(SystemUser.Properties.firstName.name())
            .setLabel(new ResourceModel("systemUser.firstName")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(SystemUser.Properties.email.name())
            .setLabel(new ResourceModel("systemUser.email")).add(StringFieldHelper.maxLenFieldValidator())
            .add(EmailAddressValidator.getInstance()).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(SystemUser.Properties.primaryPhone.name())
            .setLabel(new ResourceModel("systemUser.primaryPhone"))
            .add(StringFieldHelper.maxLenFieldValidator())
            .add(new PhoneNumberValidator(), new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new TextField<String>(SystemUser.Properties.secondaryPhone.name())
            .setLabel(new ResourceModel("systemUser.secondaryPhone"))
            .add(StringFieldHelper.maxLenFieldValidator())
            .add(new PhoneNumberValidator(), new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CheckBox(SystemUser.Properties.active.name()).setLabel(new ResourceModel("systemUser.active"))
            .setVisible(hasRole(Role.ADMIN)).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new NumberTextField<Double>(SystemUser.Properties.commissionRate.name()).setMinimum(0.00)
            .setMaximum(999.99).setLabel(new ResourceModel("systemUser.commissionRate"))
            .setVisible(hasRole(Role.ADMIN)).add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    addPasswordFields(form);

    form.add(new SavePanel<SystemUser>(SAVE_BUTTON, form) {
        private static final long serialVersionUID = 1L;

        @Override
        public void preSubmit(AjaxRequestTarget target, SystemUser daoEntity, boolean newDaoEntity) {
            if (!newDaoEntity) {
                return;
            }
            daoEntity.addSystemUserRole(SystemUserRole.make(Role.AGENT));
        }

        @Override
        public void postSubmit(AjaxRequestTarget target, SystemUser daoEntity, boolean newDaoEntity) {
            if (!newDaoEntity) {
                return;
            }
            setResponsePage(new SystemUserPage(daoEntity));
        }
    });

    form.add(new ResetPanel<SystemUser>(RESET_BUTTON, form));

    return form;
}

From source file:ca.travelagency.invoice.destinations.DestinationFormPanel.java

License:Apache License

public DestinationFormPanel(final String id, InvoiceDestination invoiceDestination,
        final DestinationsPanel destinationsPanel) {
    super(id);/*ww w.  j av  a2s  . c om*/
    Validate.notNull(destinationsPanel);

    setOutputMarkupId(true);

    IModel<InvoiceDestination> model = DaoEntityModelFactory.make(invoiceDestination, InvoiceDestination.class);
    initialize(destinationsPanel, model.getObject());

    final Form<InvoiceDestination> destinationForm = new Form<InvoiceDestination>(FORM, model);
    destinationForm.setOutputMarkupId(true);

    destinationForm.add(new ComponentFeedbackPanel(FEEDBACK, destinationForm));

    destinationForm.add(new CityField(InvoiceDestination.Properties.departurePlace.name()).setRequired(true)
            .setLabel(new ResourceModel("invoice.departurePlace")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    destinationForm.add(new DateField(InvoiceDestination.Properties.departureDate.name()).setRequired(true)
            .setLabel(new ResourceModel("invoice.departureDate"))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    destinationForm.add(new CityField(InvoiceDestination.Properties.arrivalPlace.name()).setRequired(true)
            .setLabel(new ResourceModel("invoice.arrivalPlace")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    destinationForm.add(new DateField(InvoiceDestination.Properties.arrivalDate.name())
            .setLabel(new ResourceModel("invoice.arrivalDate"))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    destinationForm.add(new SavePanelDetail<InvoiceDestination>(SAVE_BUTTON, destinationForm) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit(AjaxRequestTarget target, Form<InvoiceDestination> form) {
            destinationsPanel.update(target, form.getModelObject());
            IModel<InvoiceDestination> model = DaoEntityModelFactory.make(InvoiceDestination.class);
            form.setModel(model);
            initialize(destinationsPanel, model.getObject());
        }
    });

    destinationForm.add(new ResetPanel<InvoiceDestination>(RESET_BUTTON, destinationForm) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit(AjaxRequestTarget target, Form<InvoiceDestination> form) {
            initialize(destinationsPanel, form.getModelObject());
        }
    }.setResetModel(!DaoEntityModelFactory.isPersisted(model.getObject())));

    destinationForm.add(new CancelPanel(CANCEL_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick(AjaxRequestTarget target) {
            DestinationRowPanel destinationRowPanel = new DestinationRowPanel(id, destinationForm.getModel(),
                    destinationsPanel);
            DestinationFormPanel.this.replaceWith(destinationRowPanel);
            target.add(destinationRowPanel);
        }
    }.setVisible(invoiceDestination != null));

    add(destinationForm);
}

From source file:ca.travelagency.invoice.InvoicePage.java

License:Apache License

private Form<Invoice> invoiceForm(Customer customer, Invoice invoice) {
    final IModel<Invoice> invoiceModel = DaoEntityModelFactory.make(invoice, Invoice.class);
    boolean isPersisted = DaoEntityModelFactory.isPersisted(invoiceModel.getObject());

    Form<Invoice> form = new Form<Invoice>(FORM, invoiceModel);
    form.setOutputMarkupId(true);//from  w w w .  jav  a 2  s .  c om

    form.add(customerPanel);
    form.add(totalsPanel);

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    form.add(new RequiredTextField<String>(Invoice.Properties.invoiceNumber.name())
            .setLabel(new ResourceModel("invoice.number")).setVisible(isPersisted).setEnabled(false)
            .add(new FieldDecorator()));
    form.add(new DateField(Invoice.Properties.date.name()).setRequired(true)
            .setLabel(new ResourceModel("invoice.date")).setEnabled(invoiceModel.getObject().isActive())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new DateField(Invoice.Properties.totalDueDate.name()).setRequired(true)
            .setLabel(new ResourceModel("invoice.totalDueDate")).setEnabled(invoiceModel.getObject().isActive())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new SystemUserField(Invoice.Properties.systemUser.name()).setRequired(true)
            .setLabel(new ResourceModel("invoice.agent")).setEnabled(invoiceModel.getObject().isActive())
            .setVisible(hasRole(Role.ADMIN)).add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new DropDownChoice<InvoiceStatus>(Invoice.Properties.status.name(),
            Arrays.asList(InvoiceStatus.values())).setRequired(true)
                    .setLabel(new ResourceModel("invoice.status")).setEnabled(hasRole(Role.ADMIN))
                    .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CheckBox(Invoice.Properties.billCompany.name())
            .setLabel(new ResourceModel("invoice.billCompany"))
            .setVisible(StringUtils.isNotEmpty(customerPanel.getModelObject().getCompanyName()))
            .setEnabled(invoiceModel.getObject().isActive())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    form.add(new SavePanel<Invoice>(SAVE_BUTTON, form) {
        private static final long serialVersionUID = 1L;

        @Override
        public void preSubmit(AjaxRequestTarget target, Invoice daoEntity, boolean newDaoEntity) {
            if (!newDaoEntity) {
                return;
            }
            initialize(daoEntity);
            if (!hasRole(Role.ADMIN)) {
                daoEntity.setSystemUser(getSignedInSystemUser());
            }
        }

        @Override
        public void postSubmit(AjaxRequestTarget target, Invoice daoEntity, boolean newDaoEntity) {
            if (newDaoEntity || hasRole(Role.ADMIN)) {
                setResponsePage(new InvoicePage(daoEntity));
            }
        }

        private void initialize(Invoice daoEntity) {
            Customer customer = customerPanel.getModelObject();
            daoEntity.initialize(customer);
            daoEntity.addInvoiceTraveler(InvoiceTraveler.make(customer));

            List<String> defaultInvoiceNotes = parameterRepository.getDefaultInvoiceNotes();
            for (int i = 0; i < defaultInvoiceNotes.size(); i++) {
                InvoiceNote invoiceNote = InvoiceNote.make(defaultInvoiceNotes.get(i));
                invoiceNote.setDate(DateUtils.addSeconds(invoiceNote.getDate(), i));
                daoEntity.addInvoiceNote(invoiceNote);
            }
        }
    });

    form.add(new ResetPanel<Invoice>(RESET_BUTTON, form));

    form.add(new Link<String>(PREVIEW_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            setResponsePage(new InvoicePreviewPage(invoiceModel.getObject()));
        }
    }.setVisible(isPersisted));

    return form;
}

From source file:ca.travelagency.invoice.InvoicesPage.java

License:Apache License

private Form<InvoiceFilter> makeSearchForm(IModel<InvoiceFilter> model) {
    final Form<InvoiceFilter> form = new Form<InvoiceFilter>(SEARCH_FORM,
            new CompoundPropertyModel<InvoiceFilter>(model));

    form.add(new ComponentFeedbackPanel(FEEDBACK, form));

    form.add(new TextField<String>(InvoiceFilter.Properties.searchText.name())
            .setLabel(new ResourceModel("invoice.searchText")).add(StringFieldHelper.maxLenFieldValidator())
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new CheckBox(InvoiceFilter.Properties.showUnpaidInvoicesOnly.name())
            .setLabel(new ResourceModel("invoice.showUnpaidInvoicesOnly"))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new DropDownChoice<InvoiceStatus>(InvoiceFilter.Properties.status.name(),
            Arrays.asList(InvoiceStatus.values())).setLabel(new ResourceModel("invoice.status"))
                    .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new SystemUserField(InvoiceFilter.Properties.systemUser.name())
            .setLabel(new ResourceModel("invoice.agent")).setVisible(hasRole(Role.ADMIN))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new DateField(InvoiceFilter.Properties.invoiceDateFrom.name())
            .setLabel(new ResourceModel("invoice.dateFrom"))
            .add(new FieldDecorator(), new AjaxOnBlurBehavior()));
    form.add(new DateField(InvoiceFilter.Properties.invoiceDateTo.name())
            .setLabel(new ResourceModel("invoice.dateTo")).add(new FieldDecorator(), new AjaxOnBlurBehavior()));

    form.add(new Button(SEARCH_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override/*from w  ww  .ja  v  a  2 s.com*/
        public void onSubmit() {
            setResponsePage(new InvoicesPage());
        }
    });

    form.add(new Button(CLEAR_BUTTON) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onSubmit() {
            getAuthenticatedSession().clearInvoiceFilter();
            setResponsePage(new InvoicesPage());
        }
    }.setDefaultFormProcessing(false));

    return form;
}