启动和停止主机插件

时间:2015-04-30 07:39:50

标签: java eclipse-plugin

我们有一个带有常用GUI元素的标准Eclipse插件,由于我们的应用程序没有相同的结构,因此这些元素的注册是在片段中完成的,例如:

<fragment>
    <extension point="org.eclipse.ui.menus">
        <menuContribution allPopups="false" locationURI="popup:org.acme.menu>
            <command commandId="org.acme.command" style="push" />
        </menuContribution>
    </extension>
</fragment>

现在一切都按预期工作了。停止主机插件时出现问题,因为显然片段也没有停止,所讨论的菜单仍然填充,首选项页面保留在对话框中,依此类推。

previously asked如果我可以直接启动和停止片段,但确认你不应该(事实上,不能)这样做片段。

然后我开始安装/卸载片段,这会导致一些bug in the PackageAdmin

据我所知,将GUI元素的注册放入片段是公平的游戏,据我所知,片段的生命周期应该绑定到主机,所以它不应该贡献GUI元素当主机停止时。

有人能指出我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

扩展点声明可从任何已安装的插件或片段获得,无论它们是否已启动。停止主机插件不会使该菜单声明不可用。

要实现此目的,您可能需要在捆绑包启动时以编程方式注册菜单项,并在捆绑包停止时将其删除。这可能意味着使用单独的插件而不是片段,因为片段没有激活器。