执行后直接禁用工具栏处理程序

Disable a toolbar handler direct after execution

我想在执行后直接禁用我的工具栏句柄。我过去通过“selectionChanged”方法在 e3 中保存了 IAction 对象,因此我在 运行 逻辑之后设置了 action.setEnabled(假).

public void selectionChanged(IAction action, ISelection selection) {
    this.delegate = action;
}

在 e4 中存在任何可能做同样的行为吗?

您使用处理程序的 @CanExecute 方法来控制启用。

@CanExecute
public boolean canExecute()
{
  // TODO return enablement
}

当大多数事情可以改变启用 运行 时调用此方法,或者您可以通过调用

强制它成为 运行
@Inject
IEventBroker eventBroker;


eventBroker.send(UIEvents.REQUEST_ENABLEMENT_UPDATE_TOPIC, UIEvents.ALL_ELEMENT_ID);