在Eclipse RCP中执行操作后刷新视图

时间:2012-05-06 22:32:44

标签: eclipse view eclipse-rcp rcp

我正在编写Eclipse RCP应用程序。 我左边有一个View,右边有一个编辑器。视图是一个菜单。单击菜单中的按钮,编辑器应打开并且视图应该更改。单击后编辑器将打开,但视图不会更改。

我必须关闭菜单视图并打开一个新菜单吗?如果是,怎么样?

如果我在page.openEditor(..)之前写了page.showView(ID_of_my_view_class.ID),它会在显示的控制台旁边打开一个带有日志的新选项卡。

当前代码:

    public Object execute(ExecutionEvent event) throws ExecutionException {
    this.log.info(this.getClass().getSimpleName() + " called");
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
    IWorkbenchPage page = window.getActivePage();
    KuenstlerEditorInput input = new KuenstlerEditorInput(new Kuenstler());
    try {
        page.openEditor(input, KuenstlerEditor.ID);
    } catch (PartInitException e) {
        MessageDialog.openError(window.getShell(), "Error",
                "Editor f¸r K¸nstler konnte nicht geˆffnet werden: "
                        + e.getMessage());
        this.log.error(e);
    }
    return null;
}

当我启动该程序时,它看起来像这样:http://i.imgur.com/KXHAe.png 当我执行page.showView(the_ID.ID)命令时,它看起来像这样:http://i.imgur.com/BZ8y1.png

视图应显示在左侧,而不是包含所有按钮的菜单。

2 个答案:

答案 0 :(得分:1)

使用org.eclipse.ui.perspectives扩展点创建透视图,然后提供IPerspectiveFactory的实现,这将允许您定义您创建的命名视图的位置。

答案 1 :(得分:0)

创建或获取项目的对象,然后执行以下操作: (仅适用于导航器视图) project.refreshLocal(IResource.DEPTH_INFINITE,null);