Подключаемые модули Eclipse: в чем разница между панелями действий и меню, панелями инструментов?

Вопрос: Что касается разработки подключаемых модулей Eclipse, в чем разница между панелями действий и меню, панелями инструментов... при добавлении действий (в частности, в редактор Java)?

Я хотел бы добавить действия в редактор Java в Eclipse. Я моделирую действие после действия «Изменить подпись метода», найденного в org.eclipse.jdt.ui. Сначала я думал, что просто сделаю обычный org.eclipse.ui.menus, чтобы добавить пункт меню, и этого было бы достаточно для моих целей. После просмотра org.eclipse.jdt.ui.actions.RefactorActionGroup , я вижу, что класс RefactorActionGroup уделяет особое внимание размещению действия на панели действий в методе

public void fillActionBars(IActionBars)

Единственное обсуждение, которое я нашел на эту тему, находится в статье 2006 года. ссылаясь на Eclipse 3.1:

На жаргоне Eclipse «панель действий» — это общий термин для обозначения меню, панелей инструментов и строк состояния. Советник ActionBar обрабатывает создание действий в этих местах. Плагин также может динамически добавлять действия с помощью своего файла plugin.xml. См. листинг 7 для реализации, предоставляемой мастером плагинов, и таблицу 7 для методов.

Хотя я в замешательстве. Почему пример кода, такой как org.eclipse.jdt.ui.actions.RefactorActionGroup, имеет дело с панелями действий, если вы собираетесь явно добавлять действия в виде меню в любом событии? Какова связь между панелями действий и другими средствами добавления действий....

Спасибо.


person ChaimKut    schedule 15.01.2012    source источник


Ответы (1)


RefactorActionGroup — это устаревший класс (примерно начиная с версии 2.0), org.eclipse.ui.menus был добавлен намного позже. Вы должны придерживаться menus точки расширения.

Использование групп действий является прямым — каждый редактор знает, какие действия ему нужны, и просит соответствующие группы действий создать их. Принимая во внимание, что вклад команд и меню через точку расширения org.eclipse.ui.menus является динамическим - исходному редактору/представлению не нужно ничего знать о дополнениях.

person Martti Käärik    schedule 16.01.2012