View | Details | Raw Unified | Return to bug 222991 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/core/tests/internal/databinding/beans/JavaBeanObservableMapTest.java (-9 / +18 lines)
Lines 64-69 Link Here
64
				model1.getValue(), map.get(model1));
64
				model1.getValue(), map.get(model1));
65
	}
65
	}
66
66
67
	public void testGetValue_KeyOutOfDomain() {
68
		Bean model3 = new Bean("3");
69
		assertFalse(map.containsKey(model3));
70
		assertFalse(model3.getValue().equals(map.get(model3)));
71
	}
72
67
	public void testSetValueNotifications() throws Exception {
73
	public void testSetValueNotifications() throws Exception {
68
		String oldValue = model1.getValue();
74
		String oldValue = model1.getValue();
69
		String newValue = model1.getValue() + model1.getValue();
75
		String newValue = model1.getValue() + model1.getValue();
Lines 127-160 Link Here
127
		assertTrue(listener.diff.getRemovedKeys().contains(model1));
133
		assertTrue(listener.diff.getRemovedKeys().contains(model1));
128
		assertEquals(1, map.size());
134
		assertEquals(1, map.size());
129
	}
135
	}
130
	
136
131
	public void testGetObserved() throws Exception {
137
	public void testGetObserved() throws Exception {
132
		assertEquals(set, map.getObserved());
138
		assertEquals(set, map.getObserved());
133
	}
139
	}
134
	
140
135
	public void testGetPropertyDescriptor() throws Exception {
141
	public void testGetPropertyDescriptor() throws Exception {
136
		assertEquals(propertyDescriptor, map.getPropertyDescriptor());
142
		assertEquals(propertyDescriptor, map.getPropertyDescriptor());
137
	}
143
	}
138
	
144
139
	public void testConstructor_SkipRegisterListeners() throws Exception {
145
	public void testConstructor_SkipRegisterListeners() throws Exception {
140
		Realm realm = new CurrentRealm(true);
146
		Realm realm = new CurrentRealm(true);
141
		WritableSet set = new WritableSet(realm);
147
		WritableSet set = new WritableSet(realm);
142
		Bean bean = new Bean();
148
		Bean bean = new Bean();
143
		set.add(bean);
149
		set.add(bean);
144
		
150
145
		JavaBeanObservableMap observable = new JavaBeanObservableMap(set, new PropertyDescriptor("value", Bean.class), false);
151
		JavaBeanObservableMap observable = new JavaBeanObservableMap(set,
152
				new PropertyDescriptor("value", Bean.class), false);
146
		ChangeEventTracker.observe(observable);
153
		ChangeEventTracker.observe(observable);
147
154
148
		assertFalse(bean.hasListeners("value"));
155
		assertFalse(bean.hasListeners("value"));
149
	}
156
	}
150
	
157
151
	public void testConstructor_RegistersListeners() throws Exception {
158
	public void testConstructor_RegistersListeners() throws Exception {
152
		Realm realm = new CurrentRealm(true);
159
		Realm realm = new CurrentRealm(true);
153
		WritableSet set = new WritableSet(realm);
160
		WritableSet set = new WritableSet(realm);
154
		Bean bean = new Bean();
161
		Bean bean = new Bean();
155
		set.add(bean);
162
		set.add(bean);
156
		
163
157
		JavaBeanObservableMap observable = new JavaBeanObservableMap(set, new PropertyDescriptor("value", Bean.class));
164
		JavaBeanObservableMap observable = new JavaBeanObservableMap(set,
165
				new PropertyDescriptor("value", Bean.class));
158
		ChangeEventTracker.observe(observable);
166
		ChangeEventTracker.observe(observable);
159
167
160
		assertTrue(bean.hasListeners("value"));
168
		assertTrue(bean.hasListeners("value"));
Lines 172-178 Link Here
172
	}
180
	}
173
181
174
	public static Test suite() {
182
	public static Test suite() {
175
		TestSuite suite = new TestSuite(JavaBeanObservableMapTest.class.getName());
183
		TestSuite suite = new TestSuite(JavaBeanObservableMapTest.class
184
				.getName());
176
		suite.addTestSuite(JavaBeanObservableMapTest.class);
185
		suite.addTestSuite(JavaBeanObservableMapTest.class);
177
		return suite;
186
		return suite;
178
	}
187
	}
(-)src/org/eclipse/core/internal/databinding/beans/JavaBeanObservableMap.java (-7 / +13 lines)
Lines 33-46 Link Here
33
		IBeanObservable {
33
		IBeanObservable {
34
34
35
	private PropertyDescriptor propertyDescriptor;
35
	private PropertyDescriptor propertyDescriptor;
36
	
36
37
	private PropertyChangeListener elementListener = new PropertyChangeListener() {
37
	private PropertyChangeListener elementListener = new PropertyChangeListener() {
38
		public void propertyChange(final java.beans.PropertyChangeEvent event) {
38
		public void propertyChange(final java.beans.PropertyChangeEvent event) {
39
			if (!updating) {
39
			if (!updating) {
40
				getRealm().exec(new Runnable() {
40
				getRealm().exec(new Runnable() {
41
					public void run() {
41
					public void run() {
42
						fireMapChange(Diffs.createMapDiffSingleChange(
42
						fireMapChange(Diffs.createMapDiffSingleChange(event
43
								event.getSource(), event.getOldValue(), event
43
								.getSource(), event.getOldValue(), event
44
								.getNewValue()));
44
								.getNewValue()));
45
					}
45
					}
46
				});
46
				});
Lines 94-100 Link Here
94
	}
94
	}
95
95
96
	protected Object doGet(Object key) {
96
	protected Object doGet(Object key) {
97
		if (key == null) {
97
		if (!containsKey(key)) {
98
			return null;
98
			return null;
99
		}
99
		}
100
		try {
100
		try {
Lines 126-140 Link Here
126
		}
126
		}
127
	}
127
	}
128
128
129
	/* (non-Javadoc)
129
	/*
130
	 * (non-Javadoc)
131
	 * 
130
	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getObserved()
132
	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getObserved()
131
	 */
133
	 */
132
	public Object getObserved() {
134
	public Object getObserved() {
133
		return keySet();
135
		return keySet();
134
	}
136
	}
135
137
136
	/* (non-Javadoc)
138
	/*
137
	 * @see org.eclipse.core.databinding.beans.IBeanObservable#getPropertyDescriptor()
139
	 * (non-Javadoc)
140
	 * 
141
	 * @see
142
	 * org.eclipse.core.databinding.beans.IBeanObservable#getPropertyDescriptor
143
	 * ()
138
	 */
144
	 */
139
	public PropertyDescriptor getPropertyDescriptor() {
145
	public PropertyDescriptor getPropertyDescriptor() {
140
		return propertyDescriptor;
146
		return propertyDescriptor;

Return to bug 222991