Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 178439
Collapse All | Expand All

(-)src/org/eclipse/core/databinding/observable/list/WritableList.java (-1 / +1 lines)
Lines 155-161 Link Here
155
			int removeIndex = wrappedList.indexOf(element);
155
			int removeIndex = wrappedList.indexOf(element);
156
			if (removeIndex != -1) {
156
			if (removeIndex != -1) {
157
				wrappedList.remove(removeIndex);
157
				wrappedList.remove(removeIndex);
158
				entries.add(Diffs.createListDiffEntry(removeIndex, true,
158
				entries.add(Diffs.createListDiffEntry(removeIndex, false,
159
						element));
159
						element));
160
			}
160
			}
161
		}
161
		}
(-)src/org/eclipse/jface/tests/databinding/observable/list/WritableListTest.java (+39 lines)
Lines 12-22 Link Here
12
12
13
package org.eclipse.jface.tests.databinding.observable.list;
13
package org.eclipse.jface.tests.databinding.observable.list;
14
14
15
import java.util.Arrays;
15
import java.util.Collections;
16
import java.util.Collections;
16
17
17
import junit.framework.TestCase;
18
import junit.framework.TestCase;
18
19
19
import org.eclipse.core.databinding.observable.Realm;
20
import org.eclipse.core.databinding.observable.Realm;
21
import org.eclipse.core.databinding.observable.list.IListChangeListener;
22
import org.eclipse.core.databinding.observable.list.ListChangeEvent;
23
import org.eclipse.core.databinding.observable.list.ListDiffEntry;
20
import org.eclipse.core.databinding.observable.list.WritableList;
24
import org.eclipse.core.databinding.observable.list.WritableList;
21
import org.eclipse.jface.databinding.swt.SWTObservables;
25
import org.eclipse.jface.databinding.swt.SWTObservables;
22
import org.eclipse.jface.tests.databinding.observable.ThreadRealm;
26
import org.eclipse.jface.tests.databinding.observable.ThreadRealm;
Lines 43-48 Link Here
43
		writableList.clear();
47
		writableList.clear();
44
		assertEquals(0, writableList.size());
48
		assertEquals(0, writableList.size());
45
	}
49
	}
50
    
51
    public void testRemoveAllChangeEvent() throws Exception {
52
        CurrentRealm realm = new CurrentRealm(true);
53
        
54
        WritableList list = new WritableList(realm);
55
        String element = "element";
56
        
57
        list.add(element);
58
        
59
        class ListChangeListener implements IListChangeListener {
60
            int count;
61
            ListChangeEvent event;
62
            
63
            /* (non-Javadoc)
64
             * @see org.eclipse.core.databinding.observable.list.IListChangeListener#handleListChange(org.eclipse.core.databinding.observable.list.ListChangeEvent)
65
             */
66
            public void handleListChange(ListChangeEvent event) {
67
                count++;
68
                this.event = event;
69
            }
70
        }
71
        
72
        ListChangeListener listener = new ListChangeListener();
73
        list.addListChangeListener(listener);
74
        assertEquals(0, listener.count);
75
        
76
        list.removeAll(Arrays.asList(new String[] {element}));
77
        assertEquals(1, listener.count);
78
        
79
        assertEquals(1, listener.event.diff.getDifferences().length);
80
        ListDiffEntry diffEntry = listener.event.diff.getDifferences()[0];
81
        assertFalse("addition", diffEntry.isAddition());
82
        assertEquals("element", element, diffEntry.getElement());
83
        assertEquals("position", 0, diffEntry.getPosition());
84
    }
46
85
47
	public void testSetRealmChecks() throws Exception {
86
	public void testSetRealmChecks() throws Exception {
48
		RealmTester.exerciseCurrent(new Runnable() {
87
		RealmTester.exerciseCurrent(new Runnable() {

Return to bug 178439