我有一个 Eclipse RCP 应用程序的插件,它有一个视图。在 RCP 应用程序中发生事件后,插件被实例化,它的方法被调用来填充插件的模型,但是我找不到如何在不转到“显示视图...”菜单的情况下显示视图.
我认为工作台单例中会有一些东西可以处理这个问题,但我还没有找到任何地方。
我有一个 Eclipse RCP 应用程序的插件,它有一个视图。在 RCP 应用程序中发生事件后,插件被实例化,它的方法被调用来填充插件的模型,但是我找不到如何在不转到“显示视图...”菜单的情况下显示视图.
我认为工作台单例中会有一些东西可以处理这个问题,但我还没有找到任何地方。
您可能正在寻找这个:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
如果从命令的处理程序调用
HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);
据我所知,会更好。
我发现需要在打开视图并将其推到后台后将其带到前面。激活方法可以解决问题。
PlatformUI.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.activate(workbenchPartToActivate);
注意:workbenchPartToActivate 是IWorkbenchPart
.
在 e4 中,EPartService 负责打开 Parts。这也可用于打开 e3 ViewParts。通过您的 IEclipseContext 实例化以下类,调用 openPart-Method,您应该会看到 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);
}
}
在这里,您可以找到一个如何与 Application.e4xmi 一起使用的示例。