/** * Creates validation support instance. <br> * If initial decoration is desired invoke {@link #initInitialDecoration()}. */ public ValidationSupport() { validationResultProperty().addListener( (o, oldValue, validationResult) -> { invalidProperty.set(!validationResult.getErrors().isEmpty()); redecorate(); }); // notify validation result observers validationResults.addListener( (MapChangeListener.Change<? extends Control, ? extends ValidationResult> change) -> validationResultProperty.set(ValidationResult.fromResults(validationResults.values())) ); }