@Override protected void onAction(AjaxRequestTarget target, Form<?> form) { boolean mustHide = true; boolean mustProcessForm = viewMode.isEdition(); if (mustProcessForm && viewSupplier.get().isEnforceValidationOnAdd()) { boolean invalid = WicketFormProcessing.validateErrors(MasterDetailModal.this.getBodyContainer(), target, MasterDetailModal.this.getModel().getObject(), false); mustHide = !invalid; mustProcessForm = !invalid; if (invalid && viewSupplier.get().getEnforcedValidationMessage() != null) { new ToastrHelper(MasterDetailModal.this.getBodyContainer()).addToastrMessage(ToastrType.ERROR, viewSupplier.get().getEnforcedValidationMessage()); } } if (mustProcessForm) { WicketFormProcessing.processDependentTypes(this.getPage(), target, model.getObject()); WicketFormProcessing.onFormSubmit((WebMarkupContainer) table, target, MasterDetailModal.this.getModel(), true); } if (mustHide) { MasterDetailModal.this.hide(target); target.add(table); } } };