List of usage examples for org.eclipse.jface.databinding.conformance.util ListChangeEventTracker observe
public static <E> ListChangeEventTracker<E> observe(IObservableList<E> observable)
From source file:org.eclipse.core.tests.databinding.observable.list.ComputedListTest.java
License:Open Source License
public void testDependency_ListChangeEventFiresOnlyWhenNotDirty() { ListChangeEventTracker tracker = ListChangeEventTracker.observe(list); list.dependency.fireChange();//from w w w .j a v a 2 s. com assertEquals("ComputedList should fire list change event when its dependency changes", 1, tracker.count); list.dependency.fireChange(); assertEquals("ComputedList should not fire list change events when dirty", 1, tracker.count); list.size(); // Force list to recompute. list.dependency.fireChange(); assertEquals("ComputedList should fire list change event when its dependency changes", 2, tracker.count); }
From source file:org.eclipse.core.tests.databinding.observable.list.MultiListTest.java
License:Open Source License
public void testModifySubList_FiresListChangeEventFromMultiList() { ListChangeEventTracker tracker = ListChangeEventTracker.observe(multiList); ListDiffEntry[] differences;//from www. j a v a 2 s . c o m // Object element0 = new Object(); multiList.subLists[0].add(element0); assertEquals(1, tracker.count); differences = tracker.event.diff.getDifferences(); assertEquals(1, differences.length); assertEntry(differences[0], 0, true, element0); // Object element1 = new Object(); multiList.subLists[1].add(element1); assertEquals(2, tracker.count); differences = tracker.event.diff.getDifferences(); assertEquals(1, differences.length); assertEntry(differences[0], 1, true, element1); // Object element2 = new Object(); multiList.subLists[0].add(element2); assertEquals(3, tracker.count); differences = tracker.event.diff.getDifferences(); assertEquals(1, differences.length); assertEntry(differences[0], 1, true, element2); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableArrayBasedListTest.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.setArray(new Object[] { "old" }); IObservableList observable = BeansObservables.observeList(new CurrentRealm(true), bean, "array"); ListChangeEventTracker tracker = ListChangeEventTracker.observe(observable); bean.setArray(new Object[] { "new" }); assertEquals(1, tracker.count);//from w w w .j a v a 2 s. c o m List list = new ArrayList(); list.add("old"); tracker.event.diff.applyTo(list); assertEquals(Collections.singletonList("new"), list); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableArrayBasedListTest.java
License:Open Source License
public void testModifyObservableList_FiresListChange() { Bean bean = new Bean(new Object[] { "old" }); IObservableList observable = BeansObservables.observeList(bean, "array"); ListChangeEventTracker tracker = ListChangeEventTracker.observe(observable); observable.set(0, "new"); assertEquals(1, tracker.count);//from w w w. j a v a 2 s . c om assertDiff(tracker.event.diff, Collections.singletonList("old"), Collections.singletonList("new")); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableArrayBasedListTest.java
License:Open Source License
public void testSetBeanPropertyOutsideRealm_FiresEventInsideRealm() { Bean bean = new Bean(new Object[0]); CurrentRealm realm = new CurrentRealm(true); IObservableList observable = BeansObservables.observeList(realm, bean, "array"); ListChangeEventTracker tracker = ListChangeEventTracker.observe(observable); realm.setCurrent(false);/*w ww . j av a2 s . com*/ bean.setArray(new Object[] { "element" }); assertEquals(0, tracker.count); realm.setCurrent(true); assertEquals(1, tracker.count); assertDiff(tracker.event.diff, Collections.EMPTY_LIST, Collections.singletonList("element")); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableListTest.java
License:Open Source License
public void testSetListChangeEvent() throws Exception { String oldElement = "old"; String newElement = "new"; list.add(oldElement);//from w ww . j a v a 2 s . c o m ListChangeEventTracker listener = ListChangeEventTracker.observe(list); assertEquals(0, listener.count); list.set(0, newElement); assertEquals(1, listener.count); ListChangeEvent event = listener.event; assertSame(list, event.getObservableList()); assertDiff(event.diff, Collections.singletonList(oldElement), Collections.singletonList(newElement)); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableListTest.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.setList(Collections.singletonList("old")); IObservableList observable = BeansObservables.observeList(new CurrentRealm(true), bean, "list"); ListChangeEventTracker tracker = ListChangeEventTracker.observe(observable); bean.setList(Collections.singletonList("new")); assertEquals(1, tracker.count);/*from ww w . j a v a 2 s. c o m*/ List list = new ArrayList(); list.add("old"); tracker.event.diff.applyTo(list); assertEquals(Collections.singletonList("new"), list); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableListTest.java
License:Open Source License
public void testModifyObservableList_FiresListChange() { Bean bean = new Bean(new ArrayList()); IObservableList observable = BeansObservables.observeList(bean, "list"); ListChangeEventTracker tracker = ListChangeEventTracker.observe(observable); Object element = new Object(); observable.add(element);//w w w . j av a 2 s .co m assertEquals(1, tracker.count); assertDiff(tracker.event.diff, Collections.EMPTY_LIST, Collections.singletonList(element)); }
From source file:org.eclipse.core.tests.internal.databinding.beans.JavaBeanObservableListTest.java
License:Open Source License
public void testSetBeanPropertyOutsideRealm_FiresEventInsideRealm() { Bean bean = new Bean(Collections.EMPTY_LIST); CurrentRealm realm = new CurrentRealm(true); IObservableList observable = BeansObservables.observeList(realm, bean, "list"); ListChangeEventTracker tracker = ListChangeEventTracker.observe(observable); realm.setCurrent(false);//from w ww. j a v a2 s. co m bean.setList(Collections.singletonList("element")); assertEquals(0, tracker.count); realm.setCurrent(true); assertEquals(1, tracker.count); assertDiff(tracker.event.diff, Collections.EMPTY_LIST, Collections.singletonList("element")); }
From source file:org.eclipse.core.tests.internal.databinding.observable.masterdetail.ListDetailValueObservableListTest.java
License:Open Source License
public void testDuplicateMasterElements() { WritableList masterList = new WritableList(); ListDetailValueObservableList ldol = new ListDetailValueObservableList(masterList, BeansObservables.valueFactory("name"), String.class); SimplePerson master = new SimplePerson(); master.setName("name1"); // Add the same master twice. masterList.add(master);//from w w w . j a v a 2 s . co m masterList.add(master); // Attach the change listener to the detail list. ListChangeEventTracker changeTracker = ListChangeEventTracker.observe(ldol); // Setting the name on master should trigger an event on both // occurrences of in the master list. master.setName("name2"); // We should have 2 replace diffs, i.e. 4 diff entries. assertEquals(1, changeTracker.count); assertEquals(4, changeTracker.event.diff.getDifferences().length); assertReplaceDiffAt(changeTracker.event.diff, 0, 0, "name1", "name2"); assertReplaceDiffAt(changeTracker.event.diff, 2, 0, "name1", "name2"); // Remove one instance of the master (one will remain). masterList.remove(master); // It should still be possible to work on the remaining master instance. ldol.set(0, "name3"); assertEquals("name3", master.getName()); }