Bonjour,
Mon appli RCP a besoin de charger des plugins dynamiquement après un click utilisateur ... je bosse avec eclipse 3.3 et j'utilise les contributions pour rajouter des options dans le menu du plugin père (qui ouvre le workbench ....)
Mon problème c'est que les plugins sont bien chargés, mais le menu du plugin père n'est pas mis à jour ... je vois pas mes contributions dans ce menu. Je suis obligé de redémarrer mon appli RCP pour voir apparaitre/disparaitre mes contributions ..... la chose que je veux éviter
J'utilise l'extension org.eclipse.ui.main.menu uniquement pour le moment.
Pour palier au problème, j'ai rajouté du code pour mette à jour moi même ce menu. Maintenant ça marche pour la désintallation d'un plugin, mais pour l'install je dois faire l'action deux fois pour voir mes contributions dans le menu père ... voici des morceaux de code pour l'install/unistall
......Install
bundle = context.installBundle(location);
bundle.start();
IMenuService menuServ = (IMenuService) PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getService(IMenuService.class);
menuServ.populateContributionManager(contributionManager, "menu:org.eclipse.ui.main.menu");
...... Unistall
bundle.stop();
bundle.uninstall();
IContributionItem[] items = contributionManager.getItems();
for (IContributionItem contributionItem : items) {
if(contributionItem.getId().startsWith("My Contribution name")) {
contributionManager.remove(contributionItem);
}
}
contributionManager.update(true);
Le debugage avec la console OSGI montre que les plugins sont bien installés/désintallés ...
Any génie ? Any help ?
Merci en avance.
Partager