Java RCP:如何从命令处理程序调用类

Java RCP:如何从命令处理程序调用类,java,swt,eclipse-rcp,jface,Java,Swt,Eclipse Rcp,Jface,我有一个菜单,它有一个绑定到命令的标签 让我们说: plugin.xml <menu label="Settings"> <command commandId="prototype.standalone.MainDirectory" label="Main"> </command> </menu> public class MainDirectory exten

我有一个菜单,它有一个绑定到命令的标签

让我们说:

plugin.xml

<menu label="Settings">
         <command 
            commandId="prototype.standalone.MainDirectory"
            label="Main">
         </command>
</menu>

public class MainDirectory extends AbstractHandler {
    @Override
    public Object execute(ExecutionEvent event) throws ExecutionException {
         // How can I call from here all my business methods from my main View. 
         // Do I have to use DI? If yes, can you give me an easy example related to this snippet?     
         return null;
    }
}

公共类MainDirectory扩展了AbstractHandler{
@凌驾
公共对象执行(ExecutionEvent事件)引发ExecutionException{
//我如何从这里调用我的主视图中的所有业务方法。
//我必须使用DI吗?如果是的话,你能给我一个与这个片段相关的简单例子吗?
返回null;
}
}
如评论中所问。如何调用我的方法?因为如果我从不实例化
main目录
,那么我也不能仅仅从
createControls
传递对象-我认为我必须使用依赖注入,但我不知道如何使用。有人能给我举个例子或其他解决方案吗


编辑:或者是否可以向菜单项添加侦听器?这会让一切变得容易得多。没有发现任何东西

似乎不是用
org.eclipse.ui.menu
创建菜单的最简单方法,而是使用基本的
SWT菜单
,并将其添加到框架中-反正我有一个独立的应用程序,因此,eclipse菜单将是一个多余的功能

您的
plugin.xml中也应该包含以下内容

<extension point="org.eclipse.ui.commands">
  <command
        defaultHandler="your MainDirectory class path"
        id="prototype.standalone.MainDirectory"
        name="My Label">
  </command>
</extension>