Je souhaite modifier l'élément de visualisation de l'arborescence en fonction de l'option de menu contextuel. Fondamentalement, j'ai besoin de mettre à jour la valeur de l'élément qui est affichée. Si je double-clique sur l'élément viewer de l'arbre, j'ai pu mettre à jour la valeur, mais à travers le menu contextuel, je devrais être en mesure de le faire.Comment modifier l'élément de visualisation de l'arborescence en fonction de la sélection du menu contextuel
Exemple de code pour ajouter le menu contextuel:
protected def void createContextMenu(Viewer viewer) {
val MenuManager contextMenu = new MenuManager("Menu"); // $NON-NLS-1$
contextMenu.setRemoveAllWhenShown(true);
contextMenu.addMenuListener(new IMenuListener() {
public override void menuAboutToShow(IMenuManager mgr) {
fillContextMenu(mgr);
}
});
val Menu menu = contextMenu.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
}
/**
* Fill dynamic context menu
*
* @param contextMenu
*/
protected def void fillContextMenu(IMenuManager contextMenu) {
contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
contextMenu.add(new Action("Rename") {
public override void run() {
val selectedElement = (treeViewer.selection as IStructuredSelection).firstElement
}
});
}
Que comprenez-vous pas ici? Vous avez l'élément sélectionné dans l'arbre, que voulez-vous en faire? Que faites-vous dans l'écouteur de double clic? –
Hi @ greg-449: J'ai besoin d'éditer la valeur de l'élément de sélection. Au cours de l'opération de double-clic, j'ai ajouté ColumnViewerEditorActivationStrategy pour écouter l'événement Doubleclick –