2014-10-10 43 views
0

在Egit中,.....右鍵單擊該項目,然後單擊「在歷史記錄中顯示」,歷史記錄顯示所有提交列表,選擇一個提交,右鍵單擊,彈出菜單顯示(檢出,創建分支,創建標籤,.....修訂評論)。我需要做的是在這個彈出菜單中添加一個名爲「Add To Factory」的新項目,然後點擊它時,轉到「AddToFactoryHandler」執行實施。如何在Egit中始終啓用命令處理程序

當右鍵單擊歷史視圖中的提交時,我希望此菜單項始終存在。

<extension point="org.eclipse.ui.menus"> 
    <menuContribution locationURI="popup:org.eclipse.egit.ui.historyPageContributions"> 
     <command defaultHandler="xxxxxxxxxxx.AddToFactoryHandler" 
        commandId="xxxxxxxxxx.AddToFactory" 
        label="AddToFactory" 
        style="push" > 
     </command> 
    </menuContribution> 
</extension> 
<extension point="org.eclipse.ui.handlers"> 
    <handler class="xxxxxxxxxxx.AddToFactoryHandler" 
      commandId="xxxxxxxxxx.AddToFactory">  
    </handler> 
</extension> 

然後在歷史觀,我第一次選擇任何承諾,點擊右鍵,在彈出菜單中顯示 變灰「添加到廠」。然後第二次,右鍵單擊,它消失。

我很感激任何幫助..謝謝!

回答

0

您需要使用org.eclipse.ui.commands擴展點來定義您的命令ID。

另請注意,commandmenuContribution沒有defaultHandler參數。

因此,像:

<extension 
    point="org.eclipse.ui.commands"> 
     <command 
      id="xxxxxxxxxx.AddToFactory" 
      defaultHandler="xxxxxxxxxxx.AddToFactoryHandler" 
      description="description" 
      name="name"> 
     </command> 
</extension> 

<extension point="org.eclipse.ui.menus"> 
    <menuContribution locationURI="popup:org.eclipse.egit.ui.historyPageContributions"> 
     <command 
        commandId="xxxxxxxxxx.AddToFactory" 
        label="AddToFactory" 
        style="push" > 
     </command> 
    </menuContribution> 
</extension> 

<extension point="org.eclipse.ui.handlers"> 
    <handler class="xxxxxxxxxxx.AddToFactoryHandler" 
      commandId="xxxxxxxxxx.AddToFactory">  
    </handler> 
</extension> 
+0

我試過了,同樣的問題,第一時間可以看到「AddToFactory」菜單中顯示爲灰色,然後單擊其他承諾,它消失了..所以命令沒有真正啓用。謝謝! – Ruh 2014-10-12 18:43:07