Programaticamente mostrando uma vista de um Plug-in Eclipse
-
05-07-2019 - |
Pergunta
Eu tenho um plug-in para uma aplicação Eclipse RCP que tem uma visão. Após um evento ocorre no aplicativo RCP, o plug-in é instanciado, seus métodos são chamados para preencher o plug-in do modelo, mas não consigo encontrar como fazer o ponto de vista aparecem sem ir ao "Show View ..." no menu .
Gostaria de pensar que haveria algo na bancada singleton que pode lidar com isso, mas eu ainda não descobri como em qualquer lugar.
Solução
Você está procurando provavelmente esta:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
Outras dicas
Se chamado de manipulador de um comando
HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);
seria melhor, como eu sei.
Eu encontrei a necessidade de trazer a visão para a frente depois de ter sido aberto e empurrado para o fundo. O método Activate faz o truque.
PlatformUI.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.activate(workbenchPartToActivate);
NOTA:. O workbenchPartToActivate é uma instância de IWorkbenchPart
Em e4, o EPartService é responsável por abrir Parts. Isso também pode ser usado para abrir e3 ViewParts. Instanciar a seguinte classe através de seu IEclipseContext, ligue para o openPart-Método, e você deve ver a vista navegador interno 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);
}
}
Aqui você pode encontrar um exemplo de como isso funciona em conjunto com seu Application.e4xmi.