There are two ways to do this. If your TreeViewer displays objects that are EObject instances (generated by EMF. If you donโt understand this part, skip to the next paragraph :)), you can change this EObject "XyzItemProvider" so that their getImage method returns a decorated image instead of a "simple" image. .. and that nothing needs to be changed for EMF objects.
If you are showing "classic" Java objects, you will need to modify your LabelProvider TreeViewer to decorate the image. This is done using the TreeViewer # setLabelProvider () method.
Then you need โhow to decorate the imageโ, which is executed using code, for example:
public class MyLabelProvider extends DecoratingLabelProvider { public Image getImage(Object element) { Image image = super.getImage(element); List<Object> images = new ArrayList<Object>(2); images.add(image); images.add(<Image of the decorator>); labelImage = new ComposedImage(images);
Then you need to provide your tree viewer with this label provider:
TreeViewer treeViewer = new TreeViewer(...); treeViewer.setLabelProvider(new MyLabelProvider(new LabelProvider()); // new LabelProvider()... or your previous label provider if you have one.
source share