Bonjour à tous,

Je teste un peu RCP en implémentant un TreeViewer.
J'ai mis en place un filtre, un tri et un drag & drop.
Mais je bloque sur la modification des icônes des éléments du TreeViewer selon leur état.
Je cherche simplement à définir un icône pour un dossier ouvert et un pour un dossier fermé.

J'ai commencé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
treeViewer.addTreeListener(new ITreeViewerListener(){
				public void treeCollapsed(TreeExpansionEvent event) {
					((TreeViewer)event.getSource()).update(event.getElement(), null);
				}
 
				public void treeExpanded(TreeExpansionEvent event) {
					((TreeViewer)event.getSource()).update(event.getElement(), null);
				}
		});
puis j'ai ajouté dans la méthode getImage de ma classe dérivée de LabelProvider :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
public Image getImage(Object element) {
		Noeud noeud = (Noeud)element;
		ImageDescriptor aDescriptor = null;
		if(noeud.hasEnfants()){
			if(treeViewer.getExpandedState(element)){
				aDescriptor = Activator.getImageDescriptor("/icons/folder_red.png");
			}
			else{
				aDescriptor = Activator.getImageDescriptor("/icons/folder.png");
			}
		}
		else{
			aDescriptor = Activator.getImageDescriptor("/icons/kuser.png");
		}
		Image aImage = aDescriptor.createImage();
		return aImage;
	}
Evidemment, ça ne fonctionne pas.
Quelqu'un a déjà rencontré ce souci ?

Merci d'avance.