I frequently had this problem and didn't find a solution yet: Whenever I write a new Eclipse RCP based application and include plugins from the Eclipse platform, I 'inherit' UI contributions from some of those plugins.
Most of this contributions (menu entries, keyboard shortcuts, property pages) are useful but sometimes I'd rather disabled some of these contributions, just because I really do not need them and they might confuse the users.
Does anyone know of the official or a practical way to disable/prohibit selected contributions in Eclipse RCP applications?
Take a look at the Eclipse "Activities" API. It allows you to hide contributions based on ID.
A few links:
The only method which comes close to do that would be:
IMenuService::removeContributionFactory()
Paul Webster has been calling for a IMenuService::addOverride()
to change the visibility of the menu, preventing any contribution, but that idea has not been integrated yet.
You can see an example of removing a contribution in this org.eclipse.ui.tests.menus.MenuBuilder
class;
public static void removeMenuContribution() {
if (!PlatformUI.isWorkbenchRunning()) {
return;
}
IMenuService menuService = (IMenuService) PlatformUI.getWorkbench()
.getService(IMenuService.class);
if (menuService==null) {
return;
}
menuService.removeContributionFactory(viewMenuAddition);
viewMenuAddition = null;
menuService.removeContributionFactory(viewToolbarAddition);
viewMenuAddition = null;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With