gpt4 book ai didi

eclipse-plugin - Eclipse 冲突处理程序

转载 作者:行者123 更新时间:2023-12-04 04:26:18 25 4
gpt4 key购买 nike

在开发 eclipse 插件时,我在 list 扩展中创建了一个命令,id 为 crtc_v4.session,带有默认处理程序 crtc_v4.handlers.StartSession ,我在 list 中为此命令添加了一个处理程序,此处理程序根据变量 crtc_v4.sessionvar 启用命令.

出现在控制台上的问题是:

!MESSAGE Conflicting handlers for crtc_v4.session:  {crtc_v4.handlers.StartSession@98bc5c} vs {crtc_v4.handlers.StartSession@1265d09}

但它不会阻止运行插件。我在问这个问题的解决方案,它是否会影响我的插件的总体性能?

编辑 :

定义命令的片段:
 <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>

定义处理程序的代码段:
 </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>

最佳答案

您已经在命令中定义了一个默认处理程序,并在 中定义了另一个处理程序。 org.eclipse.ui.handlers 延期。如果您想使用 enabledWhen,只需删除 defaultHandler 属性(因为两个实例都提供相同的处理程序, crtc_v5.handlers.StartSession )。

当你想让不同的处理程序根据应用程序状态为你的命令提供行为时,你可以在 中使用 activeWhen 。 org.eclipse.ui.handlers 定义,但这里似乎并非如此。

关于eclipse-plugin - Eclipse 冲突处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17122278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com