【发布时间】:2016-04-02 00:30:17
【问题描述】:
我正在尝试使用 Eclipse 4.2 构建一个 RCP 应用程序。
第一个问题;我有一个TreeViewer。在树查看器中选择一个项目时,我需要显示两个堆叠的 MParts 之一。如何在 e4 中激活部件堆栈中的部件?
第二;我有一个与我的部件之一关联的上下文菜单。我需要仅在右键单击某些复合材料时才出现菜单。我有一个鼠标按下处理程序,它将包含我需要的所有数据的对象添加到当前上下文 (IEclipseContext),但我不知道如何从 CoreExpression 访问它(这似乎是唯一真正的控制菜单可见性的方法)。鼠标向上时,该对象将从上下文中删除。假设我的班级是RightClickData。如何编写核心表达式来测试当前上下文中是否存在RightClickData 的实例?
编辑,我的Application.e4xmi的一部分:
<children xsi:type="basic:InputPart" xmi:id="_6nSEEJuhEeGpoZf9DvK6pQ" elementId="com.example.MyEditor" contributionURI="bundleclass://MyPlugin/com.example.MyEditor" label="The Editor" tooltip="My Editor">
<menus xsi:type="menu:PopupMenu" xmi:id="_UdHPEJ4SEeGi0uxvOaa4gw" elementId="MyPlugin.rsmenu" label="Asdf" tooltip="asdf">
<children xsi:type="menu:HandledMenuItem" xmi:id="_jwOz0J4SEeGi0uxvOaa4gw" label="Add Column" command="_fhTxwJ4REeGi0uxvOaa4gw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_trlpsJ4SEeGi0uxvOaa4gw" label="Delete Column" command="_iAIkoJ4REeGi0uxvOaa4gw"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_v8f8YJ4SEeGi0uxvOaa4gw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_wR7Z0J4SEeGi0uxvOaa4gw" label="Add Row" command="_bXrp8J4REeGi0uxvOaa4gw"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_yf5GMJ4SEeGi0uxvOaa4gw" label="Delete Row" command="_l58HwJ4REeGi0uxvOaa4gw"/>
</menus>
</children>
【问题讨论】:
-
这应该用 e4、eclipse-juno、eclipse-e4、eclipse-4.2 或类似的东西标记。
-
对于第二个问题,您是否为您的
MPart创建了一个MPopupMenu并使用EMenuService将其与您的上下文菜单连接起来? -
我在
Application.e4xmi中设置了一个弹出菜单作为我的一部分。然后我使用EMenuService.registerContextMenu(...)连接它。
标签: eclipse eclipse-rcp e4