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

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

Introduction

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

Prototype

public static <T> ValueChangeEventTracker<T> observe(IObservableValue<T> observable) 

Source Link

Document

Convenience method to register a new listener.

Usage

From source file:org.eclipse.core.tests.databinding.validation.MultiValidatorTest.java

License:Open Source License

public void testValidationStaleness() {
    ValueChangeEventTracker validationChangeCounter = ValueChangeEventTracker.observe(validationStatus);

    StaleEventTracker validationStaleCounter = StaleEventTracker.observe(validationStatus);

    // Assert initial state.
    assertFalse(validationStatus.isStale());
    assertEquals(0, validationChangeCounter.count);
    assertEquals(0, validationStaleCounter.count);

    // Change to a stale state.
    dependency.setStale(true);/*from www.  j a  v  a2  s. c  o m*/
    assertTrue(validationStatus.isStale());
    assertEquals(0, validationChangeCounter.count);
    assertEquals(1, validationStaleCounter.count); // +1

    // The validation status is already stale so even if it gets another
    // stale event from its dependencies, it should not propagate that
    // event.
    dependency.fireStale();
    assertTrue(validationStatus.isStale());
    assertEquals(0, validationChangeCounter.count);
    assertEquals(1, validationStaleCounter.count);

    // Change the validation status while remaining stale.
    dependency.setValue(ValidationStatus.error("e1"));
    assertTrue(validationStatus.isStale());
    assertEquals(1, validationChangeCounter.count); // +1
    assertEquals(1, validationStaleCounter.count);

    // Move back to a non-stale state.
    dependency.setStale(false);
    assertFalse(dependency.isStale());
    assertFalse(validationStatus.isStale());
    assertEquals(2, validationChangeCounter.count); // +1
    assertEquals(1, validationStaleCounter.count);
}

From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableValueTest.java

License:Open Source License

public void testSetBeanProperty_CorrectForNullOldAndNewValues() {
    // The java bean spec allows the old and new values in a
    // PropertyChangeEvent to
    // be null, which indicates that an unknown change occured.

    // This test ensures that JavaBeanObservableValue fires the correct
    // value diff
    // even if the bean implementor is lazy :-P

    Bean bean = new AnnoyingBean();
    bean.setValue("old");
    IObservableValue observable = BeansObservables.observeValue(bean, "value");
    ValueChangeEventTracker tracker = ValueChangeEventTracker.observe(observable);
    bean.setValue("new");
    assertEquals(1, tracker.count);/*ww w .  ja va2 s . c om*/
    assertEquals("old", tracker.event.diff.getOldValue());
    assertEquals("new", tracker.event.diff.getNewValue());
}

From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableValueTest.java

License:Open Source License

public void testSetBeanPropertyOutsideRealm_FiresEventInsideRealm() {
    Bean bean = new Bean("old");
    CurrentRealm realm = new CurrentRealm(true);
    IObservableValue observable = BeansObservables.observeValue(realm, bean, "value");
    ValueChangeEventTracker tracker = ValueChangeEventTracker.observe(observable);

    realm.setCurrent(false);/*  ww w.ja  va 2  s  .  c o  m*/
    bean.setValue("new");
    assertEquals(0, tracker.count);

    realm.setCurrent(true);
    assertEquals(1, tracker.count);
    assertEquals(Diffs.createValueDiff("old", "new"), tracker.event.diff);
}

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

License:Open Source License

public void testSetValue_FiresValueChangeEvent() {
    ValueChangeEventTracker targetTracker = ValueChangeEventTracker.observe(target);
    ValueChangeEventTracker delayedTracker = ValueChangeEventTracker.observe(delayed);

    delayed.setValue(newValue);//from  w w  w . j a  va2s  . c om

    assertEquals(1, targetTracker.count);
    assertEquals(oldValue, targetTracker.event.diff.getOldValue());
    assertEquals(newValue, targetTracker.event.diff.getNewValue());

    assertEquals(1, delayedTracker.count);
    assertEquals(oldValue, delayedTracker.event.diff.getOldValue());
    assertEquals(newValue, delayedTracker.event.diff.getNewValue());
}

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

License:Open Source License

private void assertFiresPendingValueChange(Runnable runnable) {
    ValueChangeEventTracker tracker = ValueChangeEventTracker.observe(delayed);

    target.setValue(newValue);//from  w  w w.  j  a  v a2 s.  c o  m
    assertTrue(delayed.isStale());
    assertEquals(0, tracker.count);

    runnable.run();

    assertFalse(delayed.isStale());
    assertEquals(1, tracker.count);
    assertEquals(oldValue, tracker.event.diff.getOldValue());
    assertEquals(newValue, tracker.event.diff.getNewValue());
}

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

License:Open Source License

public void testSetValue_SingleValueChangeEvent() {
    ValueChangeEventTracker tracker = ValueChangeEventTracker.observe(validated);

    validated.setValue(newValue);//from w ww  .ja va2  s  . c om
    assertEquals(1, tracker.count);
    assertEquals(oldValue, tracker.event.diff.getOldValue());
    assertEquals(newValue, tracker.event.diff.getNewValue());
}

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

License:Open Source License

public void testSetValue_SingleValueChangeEventWhileInvalid() {
    ValueChangeEventTracker tracker = ValueChangeEventTracker.observe(validated);

    validationStatus.setValue(ValidationStatus.error("error"));
    validated.setValue(newValue);//from  w  w  w.j  a  va 2 s  . c o  m
    assertEquals(1, tracker.count);
    assertEquals(oldValue, tracker.event.diff.getOldValue());
    assertEquals(newValue, tracker.event.diff.getNewValue());
}

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

License:Open Source License

public void testSetValue_FiresSingleValueChangeEventWithTargetOverride() {
    ValueChangeEventTracker tracker = ValueChangeEventTracker.observe(validated);

    Object overrideValue = new Object();
    target.overrideValue = overrideValue;
    validated.setValue(newValue);/*from  w w  w  .j  a  va  2 s.  c  om*/

    assertEquals(1, tracker.count);
    assertEquals(oldValue, tracker.event.diff.getOldValue());
    assertEquals(overrideValue, tracker.event.diff.getNewValue());
}

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

License:Open Source License

public void testSetValue_FiresValueChangeEvent() {
    ValueChangeEventTracker targetTracker = ValueChangeEventTracker.observe(target);
    ValueChangeEventTracker validatedTracker = ValueChangeEventTracker.observe(validated);

    validated.setValue(newValue);/*from  w  ww .j a  v  a2  s  .  c om*/

    assertEquals(1, targetTracker.count);
    assertEquals(oldValue, targetTracker.event.diff.getOldValue());
    assertEquals(newValue, targetTracker.event.diff.getNewValue());

    assertEquals(1, validatedTracker.count);
    assertEquals(oldValue, validatedTracker.event.diff.getOldValue());
    assertEquals(newValue, validatedTracker.event.diff.getNewValue());
}