List of usage examples for org.eclipse.jface.databinding.conformance.util ChangeEventTracker ChangeEventTracker
public ChangeEventTracker()
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); }