例如,核心表达式不适用于工具栏项目。您可以在命令处理程序中使用以下变通办法:
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 在哪里检索