Example usage for org.eclipse.jface.databinding.conformance.util ValueChangeEventTracker ValueChangeEventTracker

List of usage examples for org.eclipse.jface.databinding.conformance.util ValueChangeEventTracker ValueChangeEventTracker

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.conformance.util ValueChangeEventTracker ValueChangeEventTracker.

Prototype

public ValueChangeEventTracker() 

Source Link

Usage

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();
}