通过Eclipse插件编程来程序化地显示一个视图

32

我有一个插件接入到Eclipse RCP应用程序中,其中包含一个视图。在RCP应用程序中发生事件后,插件被实例化,调用其方法来填充插件的模型,但我找不到如何使视图出现而不必转到“显示视图...”菜单。

我认为工作台单例中应该有一些可以处理此问题的内容,但我无法找到任何相关资料。

4个回答

46

您可能在寻找这个:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");

2
需要注意的是,arg0 可以是视图部件的 VIEW_ID 字段。 - JeffV
我应该把它放在哪里?我把它放在了所有的类中,但还是不起作用。(我意外地关闭了RCP应用程序中的视图) - Sterls

20

如果从命令处理程序中调用

HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);

据我所知,会更好。


4

我发现在视图已经被打开并推到后台之后,需要将其带到前台。使用activate方法就可以轻松实现。

PlatformUI.getWorkbench()
    .getActiveWorkbenchWindow()
    .getActivePage()
    .activate(workbenchPartToActivate);

注意:workbenchPartToActivate是IWorkbenchPart的一个实例。


0
在e4中,EPartService负责打开部件。这也可以用于打开e3 ViewParts。通过您的IEclipseContext实例化以下类,调用openPart方法,您应该会看到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 一起使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接