1

我正在尝试使用 Eclipse 4.2 构建 RCP 应用程序。

第一个问题;我有一个TreeViewer. 在树查看器中选择一个项目时,我需要MParts显示两个堆叠的项目之一。如何在 e4 中激活零件堆栈中的零件?

第二; 我有一个与我的部件之一关联的上下文菜单。我需要仅在右键单击某些复合材料时才出现菜单。我有一个鼠标按下处理程序,它正在将一个包含我需要的所有数据的对象添加到当前上下文(IEclipseContext)中,但我不知道如何从 a 访问它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>
4

2 回答 2

1

对于您的第一个问题,您可以使用org.eclipse.e4.ui.workbench.modeling.EPartService.activate(MPart)激活您想要的部分。

于 2012-06-01T19:37:45.897 回答
0

我让我的部分像这样可见:

MPart part = partService.findPart("my.part.id");
if( part != null ){
    if( part.isVisible() == false )
        part.setVisible(true);
    partService.showPart( part, PartState.VISIBLE);
}
于 2014-01-09T13:38:21.487 回答