如何在rcp应用程序的工具栏中显示撤消和重做操作

问题描述 投票:2回答:1

我正在使用带有工具栏的rcp应用程序,以便快速访问某些操作,包括撤消和重做。我的问题是这两个特定的操作没有显示在工具栏中。我找到了应用程序启动时生成的workbench.xmi文件的原因。带有persistedState属性的标签key="persp.hiddenItems"persp.hideToolbarSC:org.eclipse.ui.edit.undo,persp.hideToolbarSC:org.eclipse.ui.edit.redo属性中包含value="..."。如果我从workbench.xmi中删除这些条目,撤消和重做操作将显示在工具栏中。

我的问题是:我能做些什么才能使org.eclipse.ui.edit.undoorg.eclipse.ui.edit.redo最终不会以此属性开头?

我最初使用eclipse neon而没有这个问题,但是当更新到eclipse 2018-12时,这种情况开始发生。

编辑:

我终于通过将我的撤销和重做动作的ID更改为其他内容来实现它。我必须在动作构造函数中使用setId(...)setActionDefinedId(...)设置ID,然后命令必须在plugin.xml <extension point="org.eclipse.ui.commands">下的<command id="..." name="Undo"></command>中定义。

这种解决方案更像是一种解决方法,而不是一种实际的解决方案,但它对我有用。

java eclipse swt rcp
1个回答
2
投票

这是由hiddenToolBarItem扩展点的org.eclipse.ui.perspectiveExtensions元素设置的。

org.eclipse.ui.ide插件使用它来禁用这些工具栏项:

  <extension
         point="org.eclipse.ui.perspectiveExtensions">
      <perspectiveExtension targetID="*">
         <!--
              disable "print" button which is defined by org.eclipse.ui.actions.ActionFactory.PRINT
              and contributed by org.eclipse.ui.internal.ide.WorkbenchActionBuilder
         -->
         <hiddenToolBarItem id="print" />
         <!--
              disable "undo" button which is defined by org.eclipse.ui.actions.ActionFactory.UNDO
              and contributed by org.eclipse.ui.internal.ide.WorkbenchActionBuilder
         -->
         <hiddenToolBarItem id="org.eclipse.ui.edit.undo" />
         <!--
              disable "redo" button which is defined by org.eclipse.ui.actions.ActionFactory.REDO
              and contributed by org.eclipse.ui.internal.ide.WorkbenchActionBuilder
         -->
         <hiddenToolBarItem id="org.eclipse.ui.edit.redo" />
      </perspectiveExtension>
   </extension>

除了省略插件外,我没有办法解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.