Eclipse e4上下文菜单

时间:2012-05-16 20:51:05

标签: eclipse eclipse-rcp e4

我正在尝试使用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>

2 个答案:

答案 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);
}