Eclipse4RCP应用程序(独立!):添加;“显示视图”;菜单中

Eclipse4RCP应用程序(独立!):添加;“显示视图”;菜单中,eclipse,eclipse-rcp,e4,Eclipse,Eclipse Rcp,E4,在我的独立RCP应用程序(我开始使用产品配置)中,我想添加一个菜单项“show view”,列出我在持久化应用程序模型(Application.e4xmi文件)中定义的所有视图,这些视图都已关闭。 目前我没有使用任何Advisor类 我所做的是为每个视图手动添加HandledMenuItems,并添加一个CoreExpression,使其在表达式运行时可见 此表达式测试应用程序上下文中的特殊键值对。这里的问题是,我需要为每个视图使用一个特殊的表达式 解决这个问题的好模式是什么? 或者有没有一种方

在我的独立RCP应用程序(我开始使用产品配置)中,我想添加一个菜单项“show view”,列出我在持久化应用程序模型(Application.e4xmi文件)中定义的所有视图,这些视图都已关闭。 目前我没有使用任何Advisor类

我所做的是为每个视图手动添加HandledMenuItems,并添加一个CoreExpression,使其在表达式运行时可见

此表达式测试应用程序上下文中的特殊键值对。这里的问题是,我需要为每个视图使用一个特殊的表达式

解决这个问题的好模式是什么? 或者有没有一种方法可以参数化核心表达式? 我可以使用任何预定义的eclipse插件/命令/处理程序吗


更新:相反,在我的独立RCP应用程序中也可以使用Window>Show视图结构,就像Eclipse工作台中存在的一样。有没有办法使用任何预定义/可用的方法添加此菜单(条目)?

我不确定这是否对您有帮助,因为它是eclipse 3.7代码,但您可以尝试一下

我向视图菜单添加了一个动态菜单,如下所示:

<menu id="x.y.menu.views label="%menu.window.label">
  <dynamic class="x.y.menu.ViewListMenuContribution" id="viewlist" />
</menu>

这将显示当前关闭的所有视图。

目前没有办法做到这一点,只能自己跟踪零件并使用
EPartService重新打开它们。

感谢您的回复。这绝对值得一试,但我在博客上读到一篇文章,说这个特性还没有包含在当前的Eclipse版本中。所以现在我仍然在寻找另一种选择。
@Override
public void fill(Menu menu, int index)
{
    super.fill(menu, index);

    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    IContributionItem item = ContributionItemFactory.VIEWS_SHORTLIST.create(window);

    if (item != null)
        item.fill(menu, index);
}