简单的SWT / JFace练习无法找到处理程序

时间:2015-10-17 18:45:13

标签: java eclipse eclipse-plugin

我正在完成“示例初学者指南的Eclipse 4插件开发”以及“创建命令和处理程序的动作时间”部分。

这定义了一个简单的命令,处理程序和menuContribution。我按照文本中的说明进行操作,但是当菜单呈现时,菜单项不敏感。

然后我注意到处理程序中“isEnabled”方法的默认实现只返回“false”。我将其更改为“true”并使菜单项敏感,但当我选择它时,我看到以下内容:

org.eclipse.core.commands.NotHandledException: There is no handler to execute for command com.packtpub.e4.clock.ui.command.hello
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:485)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)

以下是我的plugin.xml文件的相关摘录:

<extension point="org.eclipse.ui.commands">
  <command description="Says Hello World"
       id="com.packtpub.e4.clock.ui.command.hello" name="Hello">
  </command>
</extension>
<extension point="org.eclipse.ui.handlers">
  <handler class="com.packtpub.e4.clock.ui.handlers.HelloHandler"
       commandId="com.packtpub.e4.clock.ui.command.hello">
  </handler>
</extension>
<extension point="org.eclipse.ui.menus">
  <menuContribution allPopups="false"
        locationURI="menu:help?after=additions">
<command commandId="com.packtpub.e4.clock.ui.command.hello"
     label="Hello"
     style="push">
</command>
  </menuContribution>
</extension>

本书中的文字甚至声明“如果禁用Hello菜单,请验证是否已定义处理程序扩展点,该命令将命令连接到处理程序类。”据我所知,我已经做到了,但显然没有。

0 个答案:

没有答案