1

Eclipse4.2でRCPアプリケーションを構築しようとしています。

最初の問題; 私は持っていTreeViewerます。ツリービューアでアイテムを選択すると、2つのうちの1つをスタックMPartsして表示する必要があります。e4のパーツスタックでパーツをアクティブ化するにはどうすればよいですか?

2番; パーツの1つに関連付けられたコンテキストメニューがあります。特定のコンポジットを右クリックした場合にのみメニューを表示する必要があります。必要なすべてのデータを含むオブジェクトを現在のコンテキスト(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>
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 に答える