如何在TableViewer选择更改

时间:2015-11-23 08:11:22

标签: eclipse-rcp e4

我有一个带工具栏的零件,还有一个TableViewer。 Int工具栏我有一个编辑按钮,只有在选择了表查看器中的行时才应该激活。

我已经为处理程序的canExecute方法添加了一个条件。 我可以看到这个方法在我点击某些按钮时执行,但是当TableViewer中的选择被更改时它不会执行,所以它不会识别工具栏中的编辑按钮应该激活。

当TableViewer中的选择被更改或者可能有其他方式时,我可以触发@CanExecute的执行吗?

1 个答案:

答案 0 :(得分:2)

您可以使用以下命令执行处理程序:

@Inject
ECommandService commandService;

@Inject
EHandlerService handlerService;

...

ParameterizedCommand command = commandService.createCommand("command id", Collections.emptyMap());

if (handlerService.canExecute(command)) {
  handlerService.executeHandler(command);
}

“command id”是处理程序正在处理的命令的id。

您可以使用以下命令请求更新工具栏:

@Inject
IEventBroker eventBroker;

...

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