Eclipse插件 - 如何在命令处理程序

时间:2016-07-31 17:36:31

标签: java eclipse eclipse-plugin eclipse-rcp

我想测试我的Eclipse插件的命令处理程序类。这就是我想在这个处理程序类的构造函数中注入IWorkbenchWindow实例的原因,因为

PlatformUI.getWorkbench().getActiveWorkbenchWindow()

让我依赖于PlatformUI。

但是我试图这样做

@Inject
public FindAndReplaceHandler(IWorkbenchWindow workbenchWindow) {
    this.fWorkbenchWindow = workbenchWindow;

然后框架抛出NoSuchMethodException,抱怨FindAndReplaceHandler类没有没有参数的构造函数。

我的类FindAndReplaceHandler扩展了AbstractHandler并覆盖了

void execute(ExecutionEvent event)

(所以我不会使用带有注释@Execute和@CanExecute的现代方式)

我的Eclipse版本是:Version:Mars.2(4.5.2)。 我使用设置Eclipse version =" 3.5或更高版本"创建了我的Eclipse插件项目。但是,我可能需要安装e4工具并使用它们吗?如何安装?

我很感激如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

@Inject样式的命令处理程序仅在编写纯e4样式插件时使用(这些插件不使用IWorkbenchWindowPlatformUI)。

如果你想使用IWorkbenchWindow,你正在编写3.x兼容模式插件,不能使用注入命令处理程序(以及大多数其他东西)。您必须具有命令处理程序的无参数构造函数。