Переопределить файл Eclipse> Сохранить действие - PullRequest
11 голосов
/ 05 мая 2011

Я пытаюсь переопределить действие меню Eclipse File> Save, чтобы добавить некоторые функции. Я пробовал следующие вещи

a) Создайте новое действие и добавьте его в глобальный обработчик действий

actionBars.setGlobalActionHandler(ActionFactory.SAVE.getId(), mySaveAction); actionRegistry.registerAction(action);

б) Создайте новый обработчик и переопределите команду сохранения

<extension point="org.eclipse.ui.handlers">
<handler commandId="org.eclipse.ui.file.save"
  class="com.diagrams.ui.SaveFileHandler">
<enabledWhen> 
  <with variable="activePartId">
  <equals 
    value="com.diagrams.editors.MultiPageEditor" />
  </with>
</enabledWhen>
<activeWhen>
  <with variable="activePartId">
  <equals 
  value="com.diagrams.editors.MultiPageEditor" />
  </with>
</activeWhen>
</handler>
</extension> 

С обоими этими подходами мне удалось переопределить функциональность клавиатуры Ctrl + S, но меню «Файл> Сохранить», похоже, работает по-разному.

Был бы очень признателен за любую помощь, спасибо

Ответы [ 2 ]

6 голосов
/ 06 мая 2011

В приложении RCP вы можете добавить действие Сохранить в свой ActionBarAdvisor.Это также регистрирует действие, чтобы оно было доступно из команды сохранения.

Но как плагин в Eclipse IDE, IDE предоставляет ActionBarAdvisor и подключает действие Save в меню File.Технически это не команда (действия - это шаг над слушателем SWT.Selection), поэтому вы не можете переопределить действие Файл> Сохранить.

Однако каждая часть имеет свою собственную реализацию сохранения, поэтому вы можетеделайте что хотите в вашем MultiPageEditor.

Другой вариант - использовать org.eclipse.ui.commands.ICommandService.addExecutionListener(IExecutionListener) и добавить IExecutionListener (или IEL2).Это может прослушать команду сохранения, идентификатор объявлен в org.eclipse.ui.IWorkbenchCommandConstants.

0 голосов
/ 05 мая 2011

Это может иметь какое-то отношение к значению activePartId, когда выбрано главное меню по сравнению с нажатием клавиши или с помощью меню, вызываемого правой кнопкой мыши. Вы смотрели на другие точки расширения?

...