Lines 38-43
Link Here
|
38 |
|
38 |
|
39 |
package org.netbeans.spi.project.support; |
39 |
package org.netbeans.spi.project.support; |
40 |
|
40 |
|
|
|
41 |
import java.util.Collection; |
42 |
import java.util.concurrent.atomic.AtomicInteger; |
41 |
import javax.swing.JButton; |
43 |
import javax.swing.JButton; |
42 |
import javax.swing.JCheckBox; |
44 |
import javax.swing.JCheckBox; |
43 |
import javax.swing.JComboBox; |
45 |
import javax.swing.JComboBox; |
Lines 138-141
Link Here
|
138 |
} |
140 |
} |
139 |
} |
141 |
} |
140 |
|
142 |
|
|
|
143 |
public void testNestedComposites() throws Exception { // #200711 |
144 |
final AtomicInteger count = new AtomicInteger(); |
145 |
final Runnable orig = new Runnable() { |
146 |
@Override public void run() { |
147 |
count.incrementAndGet(); |
148 |
} |
149 |
}; |
150 |
class RunnableMerger implements LookupMerger<Runnable> { |
151 |
@Override public Class<Runnable> getMergeableClass() {return Runnable.class;} |
152 |
@Override public Runnable merge(final Lookup lookup) { |
153 |
return new Runnable() { |
154 |
@Override public void run() { |
155 |
orig.run(); |
156 |
for (Runnable r : lookup.lookupAll(Runnable.class)) { |
157 |
assertFalse(r == orig); |
158 |
assertFalse(r == this); |
159 |
r.run(); |
160 |
} |
161 |
} |
162 |
}; |
163 |
} |
164 |
} |
165 |
Lookup base = Lookups.fixed(new RunnableMerger()); |
166 |
Lookup nested1 = new DelegatingLookupImpl(base, Lookup.EMPTY, null); |
167 |
assertEquals(1, nested1.lookupAll(Runnable.class).size()); |
168 |
Lookup nested2 = new DelegatingLookupImpl(nested1, Lookup.EMPTY, null); |
169 |
Collection<? extends Runnable> rs = nested2.lookupAll(Runnable.class); |
170 |
assertEquals(1, rs.size()); |
171 |
rs.iterator().next().run(); |
172 |
assertEquals(1, count.get()); |
173 |
} |
174 |
|
141 |
} |
175 |
} |