我正在尝试使用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>
答案 0 :(得分:1)
对于第一个问题,您可以使用org.eclipse.e4.ui.workbench.modeling.EPartService.activate(MPart)
激活所需的部分。
答案 1 :(得分:0)
我让我的部分可见:
MPart part = partService.findPart("my.part.id");
if( part != null ){
if( part.isVisible() == false )
part.setVisible(true);
partService.showPart( part, PartState.VISIBLE);
}