Точка расширения 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 в рабочей среде.
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
Привязка комбинации клавиш к команде.
Последовательность клавиш. Она состоит из одной или нескольких комбинаций клавиш. Последние указываются через пробел. Они состоят, в свою очередь, из одной или нескольких одновременно нажатых клавиш. В их числе может быть несколько клавиш-модификаторов и одна обычная. Клавиши указываются через +.
Допустимые клавиши-модификаторы: M1, M2, M3, M4, ALT, COMMAND, CTRL и SHIFT. Клавиши-модификаторы, начинающиеся на "M", - платформо-независимые аналоги остальных. M1 - аналог COMMAND в MacOS X и CTRL на остальных платформах. M2 - аналог клавиши SHIFT. M3 соответствует клавише Option в MacOS X и клавише ALT на остальных платформах. M4 - клавиша CTRL в MacOS X, для других платформ она не определена.
Обычная клавиша указывается ASCII-символом, который она представляет (в верхнем регистре). Например, это может быть F или ,. Клавиши, не имеющие символьного представления, указываются с помощью констант. Это: ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BREAK, BS, CAPS_LOCK, CR, DEL, END, ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, FF, HOME, INSERT, LF, NUL, NUM_LOCK, NUMPAD_0, NUMPAD_1, NUMPAD_2, NUMPAD_3, NUMPAD_4, NUMPAD_5, NUMPAD_6, NUMPAD_7, NUMPAD_8, NUMPAD_9, NUMPAD_ADD, NUMPAD_DECIMAL, NUMPAD_DIVIDE, NUMPAD_ENTER, NUMPAD_EQUAL, NUMPAD_MULTIPLY, NUMPAD_SUBTRACT, PAGE_UP, PAGE_DOWN, PAUSE, PRINT_SCREEN, SCROLL_LOCK, SPACE, TAB и VT.
Для некоторых таких клавиш существуют также альтернативные константы. Например, допустимыми считаются ESC и ESCAPE, CR, ENTER и RETURN.
Мы рекомендуем использовать только короткие последовательности, из одной или двух клавиш. С помощью контекстов всегда можно задать разные действия для одной последовательности клавиш в разных частях вашего приложения. В любом случае, не используйте последовательности клавиш, состоящие из более чем четырех клавиш.
org.eclipse.ui.contexts. Значение атрибута по умолчанию - org.eclipse.ui.contexts.window. идентификатор команды, которую следует выполнять при вызове привязки.
Если идентификатор команды не указан, то привязка становится маркером удаления. Это значит, что ее предназначение - отменить все вышестоящие привязки с таким же контекстом, последовательностью клавиш, локалью и на той же платформе. Если платформа и/или локаль не указаны, отменяются привязки на всех платформах и/или локалях.
SWT.getPlatform(). Например, допустимыми считаются такие значения: win32, gtk, motif, carbon и photon. Locale.toString(). Например, "en", "en_CA". <!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.
Copyright (c) 2005 IBM Corporation и другие.
Все права защищены. Эта программа и сопутствующие материалы распространяются на условиях Eclipse Public License v1.0, поставляемой вместе с продуктом и доступной на Web-сайте
http://www.eclipse.org/legal/epl-v10.html