[RCP]TreeViewer getExpandedState ?
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:
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:
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. ;)