Lines 47-57
Link Here
|
47 |
import java.beans.PropertyChangeListener; |
47 |
import java.beans.PropertyChangeListener; |
48 |
import java.util.ArrayList; |
48 |
import java.util.ArrayList; |
49 |
import java.util.Arrays; |
49 |
import java.util.Arrays; |
|
|
50 |
import java.util.Collection; |
50 |
import java.util.Collections; |
51 |
import java.util.Collections; |
51 |
import java.util.HashMap; |
52 |
import java.util.HashMap; |
52 |
import java.util.HashSet; |
53 |
import java.util.HashSet; |
53 |
import java.util.List; |
54 |
import java.util.List; |
54 |
import java.util.Map; |
55 |
import java.util.Map; |
|
|
56 |
import java.util.concurrent.atomic.AtomicInteger; |
55 |
import javax.swing.Icon; |
57 |
import javax.swing.Icon; |
56 |
import javax.swing.JButton; |
58 |
import javax.swing.JButton; |
57 |
import javax.swing.JCheckBox; |
59 |
import javax.swing.JCheckBox; |
Lines 230-235
Link Here
|
230 |
Collections.sort(names); |
232 |
Collections.sort(names); |
231 |
assertEquals("[group1, group2, group3]", names.toString()); |
233 |
assertEquals("[group1, group2, group3]", names.toString()); |
232 |
} |
234 |
} |
|
|
235 |
|
236 |
public void testNestedComposites2() throws Exception { // #200711 |
237 |
final AtomicInteger count = new AtomicInteger(); |
238 |
final Runnable orig = new Runnable() { |
239 |
@Override public void run() { |
240 |
count.incrementAndGet(); |
241 |
} |
242 |
}; |
243 |
class RunnableMerger implements LookupMerger<Runnable> { |
244 |
@Override public Class<Runnable> getMergeableClass() {return Runnable.class;} |
245 |
@Override public Runnable merge(final Lookup lookup) { |
246 |
return new Runnable() { |
247 |
@Override public void run() { |
248 |
orig.run(); |
249 |
for (Runnable r : lookup.lookupAll(Runnable.class)) { |
250 |
assertFalse(r == orig); |
251 |
assertFalse(r == this); |
252 |
r.run(); |
253 |
} |
254 |
} |
255 |
}; |
256 |
} |
257 |
} |
258 |
Lookup base = Lookups.fixed(new RunnableMerger()); |
259 |
Lookup nested1 = new LookupProviderSupport.DelegatingLookupImpl(base, Lookup.EMPTY, null); |
260 |
assertEquals(1, nested1.lookupAll(Runnable.class).size()); |
261 |
Lookup nested2 = new LookupProviderSupport.DelegatingLookupImpl(nested1, Lookup.EMPTY, null); |
262 |
Collection<? extends Runnable> rs = nested2.lookupAll(Runnable.class); |
263 |
assertEquals(1, rs.size()); |
264 |
rs.iterator().next().run(); |
265 |
assertEquals(1, count.get()); |
266 |
} |
233 |
|
267 |
|
234 |
private class LookupProviderImpl implements LookupProvider { |
268 |
private class LookupProviderImpl implements LookupProvider { |
235 |
InstanceContent ic = new InstanceContent(); |
269 |
InstanceContent ic = new InstanceContent(); |