【发布时间】:2013-06-15 09:47:48
【问题描述】:
在开发 Eclipse 插件时,我在 Manifest 扩展中创建了一个命令,其 id 为 crtc_v4.session 并带有默认处理程序 crtc_v4.handlers.StartSession ,我在清单中为此命令添加了一个处理程序,该处理程序根据变量启用命令crtc_v4.sessionvar.
控制台上出现的问题是:
!MESSAGE Conflicting handlers for crtc_v4.session: {crtc_v4.handlers.StartSession@98bc5c} vs {crtc_v4.handlers.StartSession@1265d09}
但它不会阻止运行插件。我在问这个问题的解决方案,以及它是否会影响我的插件的整体性能?
编辑:
定义命令的sn-p:
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="toolbar:org.eclipse.ui.main.toolbar">
<toolbar
id="crtc_v5.crtctoolbar">
<command
commandId="crtc_v5.session"
icon="icons/neutral.png"
label="Start Session"
style="push">
</command>
</toolbar>
</menuContribution>
定义处理程序的 sn-p :
</extension>
<command
defaultHandler="crtc_v5.handlers.StartSession"
id="crtc_v5.session"
name="session">
</command>
</extension>
这是对 sessionvar 的启用:
<extension
point="org.eclipse.ui.handlers">
<handler
class="crtc_v5.handlers.StartSession"
commandId="crtc_v5.session">
<enabledWhen>
<with
variable="crtc_v5.sessionvar">
<equals
value="LOGGEDIN">
</equals>
</with>
</enabledWhen>
</handler>
【问题讨论】:
-
您能否使用定义命令和处理程序的 sn-ps 更新您的问题?另外,对 sessionvar 的启用是什么样的?
-
@PaulWebster 现在更新了
标签: eclipse-plugin eclipse-rcp handler manifest