Eclipse e4 RCP:核心表达式 – 更少的XML-hell?

我正在开发一个E4 RCP应用程序,并且有一个上下文菜单,根据选择,菜单项是否可见。 我发现这样做的方法是使用plugin.xml中定义的核心表达式,如下所示:

             

这样可以工作,如果所选项目是Class1或Class2的实例,则会显示菜单项。

这一切似乎都是一种非常讨厌的做事方式! 当添加其中许多时,它将成为维护和调试的噩梦。

任何人都可以表现出更少的XML-ish方式吗? Java中纯粹的编程方法会很棒!

例如,核心表达式不适用于工具栏项。 您可以在命令处理程序中使用以下解决方法:

 public class SomeHandler { protected MToolItem toolItem; @CanExecute @Inject public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION) @Optional ISelection selection) { boolean canExecute = ... setToolItemVisible(canExecute); ... } private void setToolItemVisible(final boolean visible) { if (toolItem != null) { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { toolItem.setVisible(visible); } }); } } } 

其中toolItem由EModelService检索