【发布时间】:2019-08-15 23:16:55
【问题描述】:
我正在开发一个带有工具栏的 rcp 应用程序,用于快速访问某些操作,包括撤消和重做。我的问题是这两个特定的操作没有显示在工具栏中。我已经找到了应用程序启动时生成的workbench.xmi 文件的原因。带有属性key="persp.hiddenItems" 的标签persistedState 在value="..." 属性中包含persp.hideToolbarSC:org.eclipse.ui.edit.undo,persp.hideToolbarSC:org.eclipse.ui.edit.redo。如果我从workbench.xmi 中删除这些条目,撤消和重做操作会按原样显示在工具栏中。
我的问题是:我该怎么做才能使 org.eclipse.ui.edit.undo 和 org.eclipse.ui.edit.redo 不以该属性开头?
我最初使用 eclipse neon 时没有这个问题,但是当更新到 eclipse 2018-12 时,这开始发生了。
编辑:
我终于通过将我的撤消和重做操作的 ID 更改为其他东西来让它工作。我必须在动作的构造函数中使用setId(...) 和setActionDefinedId(...) 设置ID,然后必须在<extension point="org.eclipse.ui.commands"> 下的plugin.xml 中的<command id="..." name="Undo"></command> 标记中定义命令。
这个解决方案感觉更像是一种解决方法,而不是实际的解决方案,但它对我有用。
【问题讨论】: