List of usage examples for org.eclipse.jface.databinding.conformance.util StaleEventTracker observe
public static StaleEventTracker observe(IObservable observable)
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 w w w .j a v a 2 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.databinding.validation.MultiValidatorTest.java
License:Open Source License
public void testValidationStatusBecomesStaleThroughNewDependency() { final DependencyObservableValue nonStaleDependency = new DependencyObservableValue(ValidationStatus.ok(), IStatus.class); nonStaleDependency.setStale(false);/*from w w w . j a v a 2s. c o m*/ final DependencyObservableValue staleDependency = new DependencyObservableValue(ValidationStatus.ok(), IStatus.class); staleDependency.setStale(true); validator = new MultiValidator() { protected IStatus validate() { if (nonStaleDependency.getValue() != null) { return (IStatus) nonStaleDependency.getValue(); } return (IStatus) staleDependency.getValue(); } }; validationStatus = validator.getValidationStatus(); assertFalse(validationStatus.isStale()); StaleEventTracker validationStaleCounter = StaleEventTracker.observe(validationStatus); assertEquals(0, validationStaleCounter.count); // Setting the status of the non-stale dependency to null leads to the // new stale dependency being accessed which in turn should trigger a // stale event. nonStaleDependency.setValue(null); assertTrue(validationStatus.isStale()); assertEquals(1, validationStaleCounter.count); }