@Override protected BindingBuilder<BEAN, ?> configureBinding( BindingBuilder<BEAN, ?> binding, PropertyDefinition<BEAN, ?> definition) { Class<?> actualBeanType = findBeanType(beanType, definition); BeanValidator validator = new BeanValidator(actualBeanType, definition.getTopLevelName()); if (requiredConfigurator != null) { configureRequired(binding, definition, validator); } return binding.withValidator(validator); }
protected Binder<ET> instantiateBinder(Class<ET> elementClass) { return new BeanValidationBinder<>(elementClass); }
public AbstractForm(Class<T> entityType) { addAttachListener(new AttachListener() { private static final long serialVersionUID = 3193438171004932112L; @Override public void attach(AttachEvent event) { lazyInit(); } }); binder = new BeanValidationBinder<>(entityType); binder.addValueChangeListener(e -> { // binder.hasChanges is not really usefull so track it manually if (!settingBean) { hasChanges = true; } }); binder.addStatusChangeListener(e -> { // TODO optimize this // TODO see if explicitly calling writeBean would write also invalid // values -> would make functionality more logical and easier for // users to do validation and error reporting // Eh, value change listener is called after status change listener, so // ensure flag is on... if (!settingBean) { hasChanges = true; } adjustResetButtonState(); adjustSaveButtonState(); }); }