Точка расширения 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