Java RCP:如何从命令处理程序调用类
我有一个菜单,它有一个绑定到命令的标签 让我们说: plugin.xmlJava 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
<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>