Как показать действия отмены и повтора на панели инструментов в приложении rcp - PullRequest
2 голосов
/ 25 марта 2019

Я работаю над приложением 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.undo и org.eclipse.ui.edit.redo незакончить в этом атрибуте, чтобы начать с?

Я первоначально использовал Eclipse Neon без этой проблемы, но при обновлении до затмения 2018-12 это начало происходить.

Редактировать:

Я наконец заставил его работать, изменив идентификаторы моих действий отмены и повтора на что-то другое.Мне пришлось установить идентификатор с помощью setId(...) и setActionDefinedId(...) в конструкторах действий, а затем команды должны были быть определены в plugin.xml в <extension point="org.eclipse.ui.commands"> в теге <command id="..." name="Undo"></command>.

ЭтоРешение выглядит скорее как обходной путь, чем реальное решение, но оно работает для меня.

1 Ответ

2 голосов
/ 26 марта 2019

Это устанавливается элементом 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>

Я не вижу способа очистить это, кроме пропуска плагина.

...