如何在Egit中始终启用命令处理程序

时间:2014-10-10 22:42:06

标签: eclipse git plugins

在Egit,.....当右键单击项目,然后单击“在历史中显示”,历史视图显示所有提交的列表,选择一个提交,右键单击,弹出菜单显示(Checkout,创建分支,创建标记,.....修订评论)。我需要做的是在这个名为“Add To Factory”的弹出菜单中添加一个新项目,然后单击它时,转到“AddToFactoryHandler”进行实现。

在历史记录视图中右键单击提交时,我希望此菜单项始终存在。

<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>

然后在历史记录视图中,我第一次选择任何提交,右键单击,弹出菜单显示 灰色的“添加到工厂”。然后第二次,右击,它就消失了。

我非常感谢任何帮助..谢谢!

1 个答案:

答案 0 :(得分:0)

您需要使用org.eclipse.ui.commands扩展点来定义命令ID。

另请注意,command中的menuContribution没有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>