将上下文菜单项添加到Eclipse同步视图

时间:2018-06-28 20:24:59

标签: java eclipse plugins eclipse-plugin

我试图在自定义Eclipse插件的“同步”视图中添加上下文菜单项(带有子菜单)。我可以在Project Explorer,Navigator和其他视图中正确显示它,但不能在同步视图中显示。

即使我使用<menuContribution locationURI="popup:org.eclipse.ui.popup.any">,上下文菜单也会添加到同步视图的所有地方。同步视图与其他视图有何不同?我正在使用Eclipse Neon(4.6.3)进行测试。

这是我的plugin.xml的一部分:

<extension point="org.eclipse.ui.menus">
    <!-- this works to add a context menu entry to the Project Explorer view -->
    <menuContribution locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=additions">
        <menu label="My Menu" id="myplugin.menus.projectExplorerMenu">
            <command commandId="myplugin.commands.command1" id="myplugin.menus.command1"></command>
        </menu>
    </menuContribution>

    <!-- this does NOT add a context menu entry to the Synchronize view -->
    <menuContribution locationURI="popup:org.eclipse.team.sync.views.SynchronizeView?after=additions">
        <menu label="My Menu" id="myplugin.menus.synchronizeMenu">
            <command commandId="myplugin.commands.command1" id="myplugin.menus.command1"></command>
        </menu>
    </menuContribution>
</extension>

以下是“同步”视图的插件间谍:

Synchronize View Plug-in Selection Spy

1 个答案:

答案 0 :(得分:0)

SynchronizeView is a PageBookView which means it has multiple pages each of which may have a separate menu id. The page you are looking at is ModelSynchronizePage`。

您可以使用菜单间谍(F2)获取上下文菜单的详细信息。在这里进行测试,看起来ModelSynchronizePage没有为其菜单指定ID。

似乎同步代码仍然使用带有org.eclipse.ui.popupMenus的旧objectContribution扩展点,不需要菜单ID。