2011-05-06 66 views
1

當使用objectContribution -element(它是org.eclipse.ui.popupMenus擴展點的一部分)時,我經常(幾乎總是)想要委託給某個命令,而不是自己實施一些操作(因爲通常我有命令和處理程序已經實現)。我通過使用ICommandServiceIHandlerService來做到這一點,但它認爲應該有一種方法來實現這個程序化。我可以使用viewerContribution而不是objectContribution,但是隻有在選擇某些對象類型時,我纔會失去顯示菜單條目的簡單方法。理想情況下,我想使用我的處理程序已存在的啓用檢查來應用objectContribution定義的菜單條目。objectContribution和命令之間沒有鏈接

回答

4

好吧,這裏是我失蹤了:而不是使用org.eclipse.ui.popupMenus -extension一點上,我不得不使用org.eclipse.ui.menus -extension點與menuContribution有其locationURI -attribute指向popup:org.eclipse.ui.popup.any?after=additions。這menuContribution可以包括command元素(實現直接綁定到現有命令的目標),並且這個元素可以通過checkEnabled屬性綁定到綁定命令的處理程序的激活狀態只有當命令處理程序的啓用得到滿足時,才能使彈出菜單條目可見)。

不好的是,org.eclipse.ui.menus擴展點文檔指出org.eclipse.ui.popupMenus擴展點將被視爲不推薦使用,但org.eclipse.ui.popupMenus的文檔沒有提到這一事實。

+0

在4.x中,不推薦使用動作擴展點。但是在3.x中(比如3.6),它只會產生數千個構建警告,所以我們只是鼓勵使用org.eclipse.ui.menus,而不是棄用擴展點。 – 2011-05-09 12:18:02

+0

我認爲至少該文檔必須提及它作爲一個警告標誌,如果沒有計劃使它@depricated還有 – 2011-06-25 15:48:51

+0

有趣的論壇主題與此相關:http://www.eclipse.org/forums/index.php/m/856116 / – robinst 2013-01-20 00:34:37