Как использовать командную среду Eclipse RCP Сохранить команду с действием сохранения по умолчанию? - PullRequest
3 голосов
/ 22 сентября 2010

Командная среда Eclipse RCP предназначена для замены платформы действий в качестве механизма, позволяющего подключаемым модулям передавать команды пользовательского интерфейса в рабочую среду. Помимо определения новых команд, плагины могут предоставлять обработчики для команд RCP по умолчанию, таких как "org.eclipse.ui.file.save" (полный список команд по умолчанию здесь: http://svn2.assembla.com/svn/eclipsecommands/trunk/EclipseCommands/contents/article.html).

Использование команд по умолчанию дает преимущества стандартных привязок клавиш и значков, а в некоторых случаях возможность использовать встроенные действия Eclipse.

Например, команда сохранения редактора по умолчанию может быть добавлена ​​в меню «Файл» со следующим фрагментом в plugin.xml:

<extension point="org.eclipse.ui.menus">
  <menuContribution locationURI="menu:file">
    <command commandId="org.eclipse.ui.file.save"
             style="push">
    </command>
  </menuContribution>
</extension>

Затем для этой команды можно определить обработчик, добавив определение обработчика в точку расширения обработчиков в plugin.xml. Однако, если предоставленные редакторы реализуют IEditorPart, можно просто использовать встроенное действие сохранения Eclipse (которое отслеживает активный редактор и обновления грязных свойств) вместо определения нового обработчика. Какие дальнейшие действия необходимы для использования встроенного действия сохранения?

1 Ответ

5 голосов
/ 22 сентября 2010

Необходимо вызвать ActionBarAdvisor.register (), чтобы сделать действие сохранения доступным.Например:

public class MyActionBarAdvisor extends ActionBarAdvisor {
  public MyActionBarAdvisor(IActionBarConfigurer configurer) {
    super(configurer);
  }
  protected void makeActions(final IWorkbenchWindow window) {
    register(ActionFactory.SAVE.create(window));
  }
}

Учитывая добавление в вопросе plugin.xml, встроенный обработчик сохранения теперь будет вызываться для любого активного редактора.

...