【问题标题】:Calling Xtext generator from an Eclipse View从 Eclipse 视图调用 Xtext 生成器
【发布时间】:2015-10-13 01:54:04
【问题描述】:

我打算通过从位于 Eclipse 视图中的按钮调用生成器来生成代码,类似于这种方法:

https://christiandietrich.wordpress.com/2011/10/15/xtext-calling-the-generator-from-a-context-menu/,

但我不想从上下文菜单中调用生成器,而是想通过单击按钮来调用它,如下面的代码所示:

    button1.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // Call GenerationHandler here
        }

        ...
    });

问题是,我不能简单地调用GenerationHandler中的execute-Method如下图:

public class GenerationHandler extends AbstractHandler implements IHandler {

@Inject private IGenerator generator; 
@Inject private Provider<EclipseResourceFileSystemAccess> fileAccessProvider;

@Override
public Object execute(ExecutionEvent event) throws ExecutionException { 
    ...
    return null;
}

@Override
public boolean isEnabled() {
    return true;
}
}

我不知道如何制作一个处理程序,我可以从按钮访问。所以问题是,有没有办法从SelectionListenerwidgetSelected() 方法访问处理程序?

谢谢

【问题讨论】:

    标签: java eclipse xtext xtend


    【解决方案1】:

    使用IHandlerService 执行处理程序处理的命令:

    IHandlerService handlerService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(IHandlerService.class);
    
    handlerService.executeCommand("your command id", null);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多