Afficher par programme une vue à partir d'un plug-in Eclipse
-
05-07-2019 - |
Question
J'ai un plug-in pour une application Eclipse RCP qui dispose d'une vue. Lorsqu'un événement se produit dans l'application RCP, le plug-in est instancié, ses méthodes sont appelées pour renseigner le modèle du plug-in, mais je ne trouve pas comment faire en sorte que la vue apparaisse sans passer à la rubrique "Afficher la vue ...". ; menu.
Je pense qu'il y aurait quelque chose dans le singleton de l'atelier qui pourrait gérer cela, mais je n'ai pas trouvé comment nulle part.
La solution
Vous recherchez probablement ceci:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
Autres conseils
Si appelé à partir du gestionnaire d'une commande
HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);
serait mieux, comme je le sais.
J'ai trouvé la nécessité de ramener la vue au premier plan après l'avoir ouverte et repoussée à l'arrière-plan. La méthode d'activation fait l'affaire.
PlatformUI.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.activate(workbenchPartToActivate);
REMARQUE: le workbenchPartToActivate est une instance de IWorkbenchPart
.
Dans e4, EPartService est responsable de l’ouverture des pièces. Cela peut également être utilisé pour ouvrir e3 ViewParts. Instanciez la classe suivante via votre IEclipseContext, appelez openPart-Method et vous devriez voir la vue du navigateur interne Eclipse.
public class Opener {
@Inject
EPartService partService;
public void openPart() {
MPart part = partService.createPart("org.eclipse.ui.browser.view");
part.setLabel("Browser");
partService.showPart(part, PartState.ACTIVATE);
}
}
Ici , vous trouverez un exemple de la manière dont cela fonctionne. votre application.e4xmi.