2014-04-01 45 views
0

我正在創建一個eclipse 4插件項目。我有一個顯示模型元素的樹型瀏覽器。基於樹查看器選擇的Eclipse 4.x彈出式菜單可見性

問題: 我需要顯示一個彈出式菜單,基於我在樹型瀏覽器上做的選擇。 我厭倦了使用核心表達中的鏈接解釋說:

http://www.vogella.com/tutorials/EclipseRCP/article.html#menuadvanced_popup

但每當我附上核心表達我的彈出式菜單中消失。

如果我不附加核心表達式,所有元素都會彈出菜單。

有什麼別的,我應該做的事情是正確的嗎? 還是我應該使用不同的方法?

請找我Application.e4xmi的下方卡扣文件

enter image description here

我plugin.xml文件定義的核心表達

 <definition 
      id="xxx.abc.project.addchilddefinition"> 
     <with variable="org.eclipse.ui.selection"> 
     <iterate 
       ifEmpty="false" 
       operator="or"> 
      <instanceof 
        value="xxx.abc.project.model.ObjectName"> 
      </instanceof> 
     </iterate> 
     </with> 
     </definition> 

我已經註冊使用我的彈出式菜單下面的代碼片段:

menuService.registerContextMenu(treeviewer.getControl(), 「xxx.abc.pr oject.popupmenu.addchild「);

menuService是EMenuService對象和「xxx.abc.project.popupmenu.addchild」是我的彈出菜單ID

回答

1

您需要使用with元素指定選擇應使用:

<definition 
    id="xxx.abc.project.addchilddefinition"> 
    <with 
    variable="org.eclipse.ui.selection"> 
    <iterate 
     ifEmpty="false" 
     operator="or"> 
     <instanceof 
      value="xxx.abc.project.model.ObjectName"> 
     </instanceof> 
    </iterate> 
</with> 

當樹選擇改變時,您還必須調用ESelectionServicesetSelection(Object)方法。

選擇變量org.eclipse.ui.selectionIServiceConstants.ACTIVE_SELECTION

+0

感謝格雷格定義調用爲setSelection(Object)方法解決了我的問題。我在使用with元素,但是在這裏發佈時錯過了。我會爲可能使用此問題的其他用戶進行更新。 – Jaison

相關問題