启动和停止主机插件
Starting and Stopping Host Plug-ins
我们有一个带有常用 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>
现在一切正常。停止主机插件时会出现问题,因为显然片段也没有停止,有问题的菜单保持填充状态,首选项页面保持在对话框中,等等。
我 如果我可以直接启动和停止片段,但确认你不应该(事实上,不能)对片段做那样的事情。
然后我开始安装/卸载片段,这导致了一些bug in the PackageAdmin。
据我所知,将 GUI 元素的注册放在一个片段中是公平的游戏,据我所知,片段的生命周期应该绑定到主机,所以它不应该贡献主机停止时的 GUI 元素。
有人可以指出我在这里做错了什么吗?
扩展点声明可从任何已安装 插件或片段中获得,无论它们是否已启动。停止主机插件不会使该菜单声明不可用。
为此,您可能需要在捆绑包启动时以编程方式注册菜单贡献,并在捆绑包停止时将其删除。这可能意味着使用单独的插件而不是片段,因为片段没有激活器。
我们有一个带有常用 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>
现在一切正常。停止主机插件时会出现问题,因为显然片段也没有停止,有问题的菜单保持填充状态,首选项页面保持在对话框中,等等。
我
然后我开始安装/卸载片段,这导致了一些bug in the PackageAdmin。
据我所知,将 GUI 元素的注册放在一个片段中是公平的游戏,据我所知,片段的生命周期应该绑定到主机,所以它不应该贡献主机停止时的 GUI 元素。
有人可以指出我在这里做错了什么吗?
扩展点声明可从任何已安装 插件或片段中获得,无论它们是否已启动。停止主机插件不会使该菜单声明不可用。
为此,您可能需要在捆绑包启动时以编程方式注册菜单贡献,并在捆绑包停止时将其删除。这可能意味着使用单独的插件而不是片段,因为片段没有激活器。