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

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

Introduction

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

Prototype

public ChangeEventTracker() 

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   w w  w .  ja  v a  2  s . co 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();
}

From source file:org.eclipse.core.tests.databinding.observable.AbstractObservableTest.java

License:Open Source License

public void testChangeListener() throws Exception {
    assertFalse(observable.hasListeners());

    ChangeEventTracker listener1 = new ChangeEventTracker();

    assertFalse(observable.firstListenerAdded);
    observable.addChangeListener(listener1);
    assertTrue(observable.firstListenerAdded);
    observable.firstListenerAdded = false;

    assertTrue(observable.hasListeners());
    assertEquals(0, listener1.count);/* ww w  .  j  a  v  a  2  s.c  om*/

    observable.fireChange();

    assertEquals(1, listener1.count);
    assertSame(observable, listener1.event.getSource());

    // Add a second listener as the 1 vs. 2 listener code is different.
    ChangeEventTracker listener2 = new ChangeEventTracker();
    observable.addChangeListener(listener2);
    assertEquals(0, listener2.count);

    observable.fireChange();
    assertEquals(2, listener1.count);
    assertEquals(1, listener2.count);

    // Add a third listener as the 2 vs. 3 or greater code is different.
    ChangeEventTracker listener3 = new ChangeEventTracker();
    observable.addChangeListener(listener3);
    assertEquals(0, listener3.count);

    observable.fireChange();

    assertEquals(3, listener1.count);
    assertEquals(2, listener2.count);
    assertEquals(1, listener3.count);

    assertFalse(observable.lastListenerRemoved);
    observable.removeChangeListener(listener1);
    observable.removeChangeListener(listener2);
    observable.removeChangeListener(listener3);
    assertTrue(observable.lastListenerRemoved);

    assertFalse(observable.hasListeners());
}

From source file:org.eclipse.core.tests.databinding.observable.AbstractObservableTest.java

License:Open Source License

public void testHasListenersWithChangeAndStaleListeners() throws Exception {
    ChangeEventTracker changeListener = new ChangeEventTracker();
    StaleEventTracker staleListener = new StaleEventTracker();

    assertFalse(observable.hasListeners());
    assertFalse(observable.firstListenerAdded);
    assertFalse(observable.lastListenerRemoved);

    observable.addChangeListener(changeListener);
    assertTrue(observable.hasListeners());
    assertTrue(observable.firstListenerAdded);
    assertFalse(observable.lastListenerRemoved);

    // reset/*from  ww w  .j a  v a  2  s  .c  om*/
    observable.firstListenerAdded = false;
    observable.lastListenerRemoved = false;

    observable.addStaleListener(staleListener);
    assertTrue(observable.hasListeners());
    assertFalse(observable.firstListenerAdded);
    assertFalse(observable.lastListenerRemoved);

    observable.removeChangeListener(changeListener);
    assertTrue(observable.hasListeners());
    assertFalse(observable.firstListenerAdded);
    assertFalse(observable.lastListenerRemoved);

    observable.removeStaleListener(staleListener);
    assertFalse(observable.hasListeners());
    assertFalse(observable.firstListenerAdded);
    assertTrue(observable.lastListenerRemoved);
}

From source file:org.eclipse.core.tests.internal.databinding.observable.UnmodifiableObservableListTest.java

License:Open Source License

public void testFiresChangeEvents() throws Exception {
    ChangeEventTracker mutableListener = new ChangeEventTracker();
    ChangeEventTracker unmodifiableListener = new ChangeEventTracker();

    mutable.addChangeListener(mutableListener);
    unmodifiable.addChangeListener(unmodifiableListener);

    assertEquals(0, mutableListener.count);
    assertEquals(0, unmodifiableListener.count);
    mutable.add("3");
    assertEquals(1, mutableListener.count);
    assertEquals(1, unmodifiableListener.count);
}