List of usage examples for org.eclipse.jface.databinding.conformance.util ValueChangeEventTracker ValueChangeEventTracker
public ValueChangeEventTracker()
From source file:org.eclipse.core.tests.databinding.DatabindingContextTest.java
License:Open Source License
/** * Asserts that IStatus is populated and change events are fired when a * Binding that is associated with a context is in error. * /*from ww w . j a v a 2 s . c o m*/ * @throws Exception */ public void testValidationError() throws Exception { WritableValue targetObservable = WritableValue.withValueType(String.class); WritableValue modelObservable = WritableValue.withValueType(String.class); final String errorMessage = "error"; ValueChangeEventTracker errorCounter = new ValueChangeEventTracker(); ChangeEventTracker errorsCounter = new ChangeEventTracker(); IObservableValue error = new AggregateValidationStatus(dbc.getBindings(), AggregateValidationStatus.MAX_SEVERITY); error.addValueChangeListener(errorCounter); assertTrue(((IStatus) error.getValue()).isOK()); IObservableMap errors = dbc.getValidationStatusMap(); errors.addChangeListener(errorsCounter); assertEquals(0, errors.size()); IValidator validator = new IValidator() { public IStatus validate(Object value) { return ValidationStatus.error(errorMessage); } }; dbc.bindValue(targetObservable, modelObservable, new UpdateValueStrategy().setAfterGetValidator(validator), null); targetObservable.setValue(""); assertFalse(((IStatus) error.getValue()).isOK()); assertEquals(errorMessage, ((IStatus) error.getValue()).getMessage()); assertEquals(1, errors.size()); assertEquals(1, errorsCounter.count); assertEquals(1, errorCounter.count); error.dispose(); }