Привязки

org.eclipse.ui.bindings

3.1

Точка расширения org.eclipse.ui.bindings служит для объявления привязок и схем. Схемы - это наборы из одной или нескольких привязок. Привязка - это соответствие между некоторой группой условий, комбинацией клавиш и вызываемой командой.

Для всех привязок требуются триггер, контекст, в котором они могут быть задействованы, и схема, которой они принадлежат. Если вы не уверены в выборе контекста, оставьте его пустым. В этом случае будет использован контекст по умолчанию - "org.eclipse.ui.contexts.window". При этом привязка будет работать в главном окне Eclipse. Соответственно, когда контекст становится активным, привязка также становится активной. Привязки производных контекстов имеют больший приоритет, чем привязки родительских. Для подробностей о контекстах, обратитесь к документации по точке расширения org.eclipse.ui.contexts.

Если привязка не указывает идентификатор команды, то она называется маркером удаления. Это значит, что ее предназначение - отменить все вышестоящие привязки (но только при выполнении указанных условий и в указанном контексте). Это можно использовать, например, чтобы изменить привязки на конкретной платформе.

Одним из типов привязок является key - привязка комбинации клавиш. Например, это может быть Ctrl+C для копирования текста. Триггером для таких привязок выступает комбинация клавиш.

Схема - это привязки, объединенные в одну группу для того, чтобы пользователь мог включить их одним действием. Например, для редактирования текста, кроме стандартной, можно предложить схему в стиле Emacs или Vim.

<!ELEMENT extension (scheme , key)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT scheme EMPTY>

<!ATTLIST scheme

id          CDATA #REQUIRED

name        CDATA #REQUIRED

description CDATA #IMPLIED

parentId    CDATA #IMPLIED>

Схема - это привязки, объединенные в одну группу для того, чтобы пользователь мог выбрать их одним действием.

Схема может наследовать привязки из родительской схемы. Это упрощает создание модифицированных схем разработчикам модулей. Как и в случае с контекстами, больший приоритет имеет привязка, определенная в производной схеме. Этот механизм используется для схемы Emacs в рабочей среде.



<!ELEMENT key (parameter)>

<!ATTLIST key

sequence  CDATA #REQUIRED

schemeId  CDATA #REQUIRED

contextId CDATA "org.eclipse.ui.contexts.window"

commandId CDATA #IMPLIED

platform  CDATA #IMPLIED

locale    CDATA #IMPLIED>

Привязка комбинации клавиш к команде.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

id    CDATA #IMPLIED

value CDATA #IMPLIED>

Имя параметра и значение, которое должно быть передано вызываемой команде. Это позволяет проинформировать команду. Например, команде "Показать панель" можно передать идентификатор панели.



<extension point=

"org.eclipse.ui.bindings"

>

<key sequence=

"M2+F5"

commandId=

"commandId"

schemeId=

"default"

contextId=

"windows"

/>

<scheme name=

"Значение по умолчанию"

description=

"Клавиши быстрого доступа по умолчанию для Eclipse"

id=

"default"

/>

</extension>

Для определения привязок нет внешнего API. Для большей стабильности работы, привязки определяются только через точки расширения. В случае приложения RCP, последнее может изменить это в WorkbenchAdvisor.

Чтобы привязки работали, нужно определить команду. Она должна иметь активный обработчик. Обработчики можно регистрировать программно; см. документацию по точке расширения org.eclipse.ui.handlers.