【发布时间】:2019-11-24 16:55:18
【问题描述】:
我目前正在尝试在我的 Eclipse RCP 应用程序中为 MenuContribution 添加visibleWhen 条件。我们有不同版本的应用程序,我们用IClientConfiguration 接口/服务来区分它们,它或多或少地用作功能切换。
取决于女巫app-$version.product 被称为不同的实现配置将应用程序的一部分。
但是.. 了解当前情况:我们有一个在通用 fragment.e4xmi 中定义的菜单,我想根据配置隐藏一个菜单。为此,我添加了切换 isAdminMenuActive()。我希望我可以创建一个 CoreExpression 并(以某种方式)使用该服务的返回值。但不幸的是,我现在无法让它工作。
我尝试了以下内容: 片段.e4xmi:
<elements xsi:type="menu:MenuContribution" xmi:id="_ZuL6oA4IEeqbk5lJVdc6WQ" elementId="com.example.client.menucontribution.administration" parentId="com.example.product.main.menu">
<children xsi:type="menu:Menu" xmi:id="_ngOY4LOMEemRpJf6BiOdqQ" elementId="com.example.client.menu.administration" label="%UI.general.administration">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_rrmcQA4lEeqbk5lJVdc6WQ" coreExpressionId="com.example.client.configuration.adminMenuActiveExpression"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_B4RqsLONEemRpJf6BiOdqQ" elementId="com.example.client.menuitem.action.administration" label="%UI.action" tooltip="%UI.action" command="_XnSp8LOPEemRpJf6BiOdqQ"/>
</children>
</elements>
插件.xml
<extension
point="org.eclipse.core.expressions.definitions">
<definition
id="com.example.client.configuration.adminMenuActiveExpression">
<with variable="com.example.client.configuration.adminMenuActive">
<equals
value="true">
</equals>
</with>
</definition>
</extension>
Startapp.java
@PostConstruct
public void init(IEclipseContext context) {
context.set(com.example.client.configuration.adminMenuActive,
configuration.isAdminMenuActive().toString());
}
当前的行为是无论加载哪种配置,菜单都不会显示。我已经尝试过是否将变量添加到IEclipseContext,这发生在应用程序启动阶段的早期。目前我不知道出了什么问题。
【问题讨论】:
标签: eclipse eclipse-plugin eclipse-rcp rcp