Lines 355-396
Link Here
|
355 |
assertEquals(new HashSet<FileObject>(Arrays.asList(k1, k2, k3)), fs.badgedFiles); |
355 |
assertEquals(new HashSet<FileObject>(Arrays.asList(k1, k2, k3)), fs.badgedFiles); |
356 |
} |
356 |
} |
357 |
|
357 |
|
358 |
public void testIconAnnotated() throws IOException, Exception { |
358 |
public void testIconAnnotatedDefaultLookup() throws IOException, Exception { |
359 |
final Image icon1 = ImageUtilities.loadImage("org/netbeans/modules/project/ui/resources/icon-1.png"); |
|
|
360 |
final Image icon2 = ImageUtilities.loadImage("org/netbeans/modules/project/ui/resources/icon-2.png"); |
361 |
final Image icon3 = ImageUtilities.loadImage("org/netbeans/modules/project/ui/resources/icon-3.png"); |
362 |
class ProjectIconAnnotatorImpl implements ProjectIconAnnotator { |
363 |
private final ChangeSupport cs = new ChangeSupport(this); |
364 |
boolean enabled = true; |
365 |
public @Override Image annotateIcon(Project p, Image original, boolean openedNode) { |
366 |
if (!enabled) { |
367 |
return icon1; |
368 |
} else if (openedNode) { |
369 |
return icon2; |
370 |
} else { |
371 |
return icon3; |
372 |
} |
373 |
} |
374 |
public @Override void addChangeListener(ChangeListener listener) { |
375 |
cs.addChangeListener(listener); |
376 |
} |
377 |
public @Override void removeChangeListener(ChangeListener listener) { |
378 |
cs.removeChangeListener(listener); |
379 |
} |
380 |
void disable() { |
381 |
enabled = false; |
382 |
cs.fireChange(); |
383 |
} |
384 |
} |
385 |
Project prj = new TestProject(FileUtil.createMemoryFileSystem().getRoot(), null); |
359 |
Project prj = new TestProject(FileUtil.createMemoryFileSystem().getRoot(), null); |
386 |
ProjectIconAnnotatorImpl annotator = new ProjectIconAnnotatorImpl(); |
360 |
ProjectIconAnnotatorImpl annotator = new ProjectIconAnnotatorImpl(); |
387 |
MockLookup.setInstances(annotator); |
361 |
MockLookup.setInstances(annotator); |
|
|
362 |
final MockPropertyChangeListener listener = new MockPropertyChangeListener(); |
363 |
|
364 |
ProjectsRootNode.BadgingNode node = testBadgingNode(prj, annotator, listener); |
365 |
MockLookup.setInstances(); |
366 |
listener.assertEvents(Node.PROP_ICON, Node.PROP_OPENED_ICON); |
367 |
|
368 |
// no icons now |
369 |
assertEquals(Node.EMPTY.getIcon(BeanInfo.ICON_COLOR_16x16), node.getIcon(BeanInfo.ICON_COLOR_16x16)); |
370 |
assertEquals(Node.EMPTY.getIcon(BeanInfo.ICON_COLOR_16x16), node.getOpenedIcon(BeanInfo.ICON_COLOR_16x16)); |
371 |
} |
372 |
|
373 |
public void testIconAnnotatedProjectLookup() throws IOException, Exception { |
374 |
ProjectIconAnnotatorImpl annotator = new ProjectIconAnnotatorImpl(); |
375 |
TestProject prj = new TestProject(FileUtil.createMemoryFileSystem().getRoot(), null); |
376 |
prj.setLookup(Lookups.fixed(annotator)); |
377 |
final MockPropertyChangeListener listener = new MockPropertyChangeListener(); |
378 |
|
379 |
testBadgingNode(prj, annotator, listener); |
380 |
} |
381 |
|
382 |
private ProjectsRootNode.BadgingNode testBadgingNode(Project prj, ProjectIconAnnotatorImpl annotator, final MockPropertyChangeListener listener) { |
388 |
System.setProperty("test.nodelay", "true"); |
383 |
System.setProperty("test.nodelay", "true"); |
389 |
ProjectsRootNode.BadgingNode node = new ProjectsRootNode.BadgingNode(null, new ProjectsRootNode.ProjectChildren.Pair(prj), |
384 |
ProjectsRootNode.BadgingNode node = new ProjectsRootNode.BadgingNode(null, new ProjectsRootNode.ProjectChildren.Pair(prj), |
390 |
new AbstractNode(Children.LEAF, Lookups.singleton(prj)), false, true); |
385 |
new AbstractNode(Children.LEAF, Lookups.singleton(prj)), false, true); |
391 |
assertEquals(icon3, node.getIcon(BeanInfo.ICON_COLOR_16x16)); |
386 |
assertEquals(ProjectIconAnnotatorImpl.ICON3, node.getIcon(BeanInfo.ICON_COLOR_16x16)); |
392 |
assertEquals(icon2, node.getOpenedIcon(BeanInfo.ICON_COLOR_16x16)); |
387 |
assertEquals(ProjectIconAnnotatorImpl.ICON2, node.getOpenedIcon(BeanInfo.ICON_COLOR_16x16)); |
393 |
final MockPropertyChangeListener listener = new MockPropertyChangeListener(); |
|
|
394 |
node.addNodeListener(new NodeAdapter() { |
388 |
node.addNodeListener(new NodeAdapter() { |
395 |
public @Override void propertyChange(PropertyChangeEvent ev) { |
389 |
public @Override void propertyChange(PropertyChangeEvent ev) { |
396 |
listener.propertyChange(ev); |
390 |
listener.propertyChange(ev); |
Lines 398-406
Link Here
|
398 |
}); |
392 |
}); |
399 |
annotator.disable(); |
393 |
annotator.disable(); |
400 |
listener.assertEvents(Node.PROP_ICON, Node.PROP_OPENED_ICON); |
394 |
listener.assertEvents(Node.PROP_ICON, Node.PROP_OPENED_ICON); |
401 |
assertEquals(icon1, node.getIcon(BeanInfo.ICON_COLOR_16x16)); |
395 |
assertEquals(ProjectIconAnnotatorImpl.ICON1, node.getIcon(BeanInfo.ICON_COLOR_16x16)); |
402 |
MockLookup.setInstances(); |
396 |
return node; |
403 |
listener.assertEvents(Node.PROP_ICON, Node.PROP_OPENED_ICON); |
|
|
404 |
} |
397 |
} |
405 |
|
398 |
|
|
|
399 |
static final class ProjectIconAnnotatorImpl implements ProjectIconAnnotator { |
400 |
static final Image ICON1 = ImageUtilities.loadImage("org/netbeans/modules/project/ui/resources/icon-1.png"); |
401 |
static final Image ICON2 = ImageUtilities.loadImage("org/netbeans/modules/project/ui/resources/icon-2.png"); |
402 |
static final Image ICON3 = ImageUtilities.loadImage("org/netbeans/modules/project/ui/resources/icon-3.png"); |
403 |
|
404 |
private final ChangeSupport cs = new ChangeSupport(this); |
405 |
boolean enabled = true; |
406 |
public @Override Image annotateIcon(Project p, Image original, boolean openedNode) { |
407 |
if (!enabled) { |
408 |
return ICON1; |
409 |
} else if (openedNode) { |
410 |
return ICON2; |
411 |
} else { |
412 |
return ICON3; |
413 |
} |
414 |
} |
415 |
public @Override void addChangeListener(ChangeListener listener) { |
416 |
cs.addChangeListener(listener); |
417 |
} |
418 |
public @Override void removeChangeListener(ChangeListener listener) { |
419 |
cs.removeChangeListener(listener); |
420 |
} |
421 |
void disable() { |
422 |
enabled = false; |
423 |
cs.fireChange(); |
424 |
} |
425 |
} |
406 |
} |
426 |
} |