【发布时间】:2010-09-15 08:51:50
【问题描述】:
我有一个 Eclipse RCP 应用程序的插件,它有一个视图。在 RCP 应用程序中发生事件后,插件被实例化,它的方法被调用以填充插件的模型,但是我找不到如何在不转到“显示视图...”菜单的情况下显示视图.
我认为工作台单例中会有一些东西可以处理这个问题,但我还没有找到任何地方的方法。
【问题讨论】:
标签: eclipse eclipse-plugin eclipse-rcp rcp eclipse-pde
我有一个 Eclipse RCP 应用程序的插件,它有一个视图。在 RCP 应用程序中发生事件后,插件被实例化,它的方法被调用以填充插件的模型,但是我找不到如何在不转到“显示视图...”菜单的情况下显示视图.
我认为工作台单例中会有一些东西可以处理这个问题,但我还没有找到任何地方的方法。
【问题讨论】:
标签: eclipse eclipse-plugin eclipse-rcp rcp eclipse-pde
您可能正在寻找这个:
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);
}
}
Here 你可以找到一个如何与你的 Application.e4xmi 一起工作的例子。
【讨论】: