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检索