小编Sar*_*rek的帖子

Eclipse冲突处理程序

在开发eclipse插件时,我在带有id crtc_v4.session的Manifest扩展中使用默认处理程序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}
Run Code Online (Sandbox Code Playgroud)

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

编辑:

定义命令的代码段:

 <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>
Run Code Online (Sandbox Code Playgroud)

定义处理程序的代码段:

 </extension>
      <command
        defaultHandler="crtc_v5.handlers.StartSession"
        id="crtc_v5.session"
        name="session">
  </command>
 </extension>
Run Code Online (Sandbox Code Playgroud)

这是对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>
Run Code Online (Sandbox Code Playgroud)

eclipse-plugin manifest eclipse-rcp handler

5
推荐指数
1
解决办法
4655
查看次数

标签 统计

eclipse-plugin ×1

eclipse-rcp ×1

handler ×1

manifest ×1