我已经实现了org.eclipse.ui.edit.delete
command handler,我想通过编辑/删除主菜单项来调用它。
由于“删除”操作是retargetable操作调用在每个编辑的上下文中定义的另一个操作,编辑器通常配置为IActionBars.setGlobalAction(String id, IAction action)
其中id
= "delete"
和操作是一个可重定向的自定义动作。
我可以看到以下选项:
setGlobalAction
的参数,可能会复制org.eclipse.ui.internal.actions.CommandAction
逼近。两种方式看起来都太复杂/肮脏。我错过了什么吗?我可以使用命令而不是动作吗?
编辑:
似乎主菜单不是使用IAction
实现,而是使用CommandContributionItem
实现。默认命令处理程序调用{{1}},后者又查询CommandAction
。命令的“更好”处理程序可以覆盖此行为。
虽然我现在可以为delete命令提供一个处理程序,但问题仍然是实际的,因为从GUI调用命令(例如通过单击按钮)很有用,并且自定义命令不是那么容易调用(它们没有默认值)键绑定或可重定向的操作)。