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