Puede obtener el Menú desde el Administrador de menús y luego modificar las contribuciones. Este fragmento muestra cómo acceder al administrador de menú y eliminar un elemento con nombre.
Deberá realizar un seguimiento de los elementos eliminados y los índices de elementos para restaurarlos. El único problema es que el método indexOf no es visible. Agregar este fragmento a un tipo en el mismo paquete que MenuManager y agregarlo a un fragmento es una forma de evitarlo.
IWorkbenchWindow window = Workbench.getInstance().getActiveWorkbenchWindow()
if(window instanceof WorkbenchWindow) {
MenuManager menuManager = ((WorkbenchWindow)window).getMenuManager();
//TODO you may need to remove items from the coolbar as well
ICoolBarManager coolBarManager = null;
if(((WorkbenchWindow) window).getCoolBarVisible()) {
coolBarManager = ((WorkbenchWindow)window).getCoolBarManager2();
}
Menu menu = menuManager.getMenu();
//you'll need to find the id for the item
String itemId = "menuId";
IContributionItem item = menuManager.find(itemId);
// remember position, TODO this is protected
int controlIdx = menu.indexOf(mySaveAction.getId());
if (item != null) {
// clean old one
menuManager.remove(item);
// refresh menu gui
menuManager.update();
}
}
Me preguntaba si esto también es posible para aplicaciones basadas en IDE. Por ejemplo, para eliminar algunos de los menús de Eclipse como 'Proyecto '. – nbz