我已使用操作在“帮助”菜单中添加了“备忘单”菜单项。为此,我们将获得针对操作和操作Set的弃用警告。这是我以前的代码。
<extension
point="org.eclipse.ui.actionSets">
<actionSet
label="Cheat Sheets"
visible="true"
id="org.eclipse.ui.cheatsheets.actionSet">
<action
label="Cheat Sheets"
class=" org.eclipse.ui.cheatsheets.CheatSheetExtensionFactory:helpMenuAction"
menubarPath="help/group.tutorials"
id="org.eclipse.ui.cheatsheets.actions.CheatSheetHelpMenuAction">
</action>
</actionSet>
要删除警告,我决定通过命令添加。这是我的代码
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:help?after=Dynamic Help">
<command
commandId="org.eclipse.ui.cheatsheets.actions.CheatSheetHelpMenuAction"
label="Cheat Sheets.."
style="push">
</command>
</menuContribution>
我已经添加了相应的命令
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="org.eclipse.ui.cheatsheets.CheatSheetExtensionFactory:helpMenuAction"
id="org.eclipse.ui.cheatsheets.actions.CheatSheetHelpMenuAction"
name="Cheat sheets">
</command>
但我得到以下错误org.eclipse.ui.internal.cheatsheets.actions.CheatSheetHelpMenuAction无法强制转换为org.eclipse.core.commands.IHandler。我怎样才能解决这个问题?我不想为此创建新的处理程序。提前致谢!
您无法修复强制转换,因为Action不适合命令处理程序。似乎没有作弊表的现有命令处理程序,所以没有什么可以改变它。
编写自己的处理程序也是不可能的,因为所有备忘单API都是内部的,因此无法使用它们。
虽然操作集被标记为已弃用,但它们永远不会被删除,因为有太多东西使用它们 - 所以坚持使用动作集。