java - 如何使用命令在帮助中添加备忘单菜单项

标签 java eclipse-rcp

我使用操作在“帮助”菜单中添加了“备忘单”菜单项。为此,我收到了有关操作和操作集的已弃用警告。这是我以前的代码。

<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。 我怎样才能解决这个问题?我不想为此创建新的处理程序。提前致谢!

最佳答案

您无法修复强制转换,因为操作不适合命令处理程序。似乎没有现有的备忘单命令处理程序,因此您无法对其进行更改。

编写自己的处理程序也是不可能的,因为所有备忘单 API 都是内部,因此无法使用它们。

尽管操作集被标记为已弃用,但它们永远不会被删除,因为有太多东西使用它们 - 所以请坚持使用操作集。

关于java - 如何使用命令在帮助中添加备忘单菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55899519/

相关文章:

java - 如何为 swt 小部件分配唯一的 id 并在 swtbot 中获取它?

java - 返回 'false' 是方法的有效后置条件吗?

java - 无法访问 jar 文件

java - 使用 java 为 Jtable 的每一行添加列表框

java - Eclipse RCP - 定义依赖项的所有可能性?

java - 错误 "This element has no attached source and the Javadoc could not be found in the attached Javadoc."

java - 在java中的SWT树中父子树中检查和取消选中组合

java - 在 JCheckBox 中自定义 "Box"

Java 正则表达式非捕获组

java - 以编程方式从 Eclipse 的“项目属性”对话框中选择一个节点