2.1
Точка расширения org.eclipse.ui.commands
служит для объявления команд и категорий команд с помощью элементов command
и category
. Команда - это абстрактное представление некоторого семантического поведения, но она не является его непосредственной реализацией. Это позволяет разным разработчикам создавать различные реализации одной команды для разных частей приложения, разделенных между ними. Например, команда "Вставить" может иметь одну реализацию для редактора и другую - для навигатора по файловой системе. Такие реализация называются обработчиками.
<!ELEMENT extension (activeKeyConfiguration , category , command , keyBinding , keyConfiguration , context , scope)>
<!ATTLIST extension
id CDATA #IMPLIED
name CDATA #IMPLIED
point CDATA #REQUIRED>
<!ELEMENT activeKeyConfiguration EMPTY>
<!ATTLIST activeKeyConfiguration
value CDATA #IMPLIED
keyConfigurationId CDATA #IMPLIED>
Этот элемент служит для определения начальной конфигурации клавиш для Eclipse. Если указано несколько таких элементов, то действовать будет только объявленный последним (в порядке чтения реестра модулей).
Этот элемент заменен параметром в настройках программы. Для того, чтобы изменить конфигурацию клавиш из приложения, укажите следующее в plugin_customization.ini
файле: org.eclipse.ui/KEY_CONFIGURATION_ID=your.default.key.configuration.id
.
id
) элемента keyConfiguration, который необходимо активизировать первым.id
) элемента keyConfiguration, который необходимо активизировать первым.<!ELEMENT category EMPTY>
<!ATTLIST category
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED>
Для удобства управления команды в UI команды часто группируются по категориям. Этот элемент служит для определения этих категорий. Одна команда может относиться к нескольким категориям. Если указано несколько таких элементов с одинаковыми атрибутами id
, то действовать будет только элемент, объявленный последним (в порядке чтения реестра модулей).
<!ELEMENT command (commandParameter | defaultHandler?)>
<!ATTLIST command
category CDATA #IMPLIED
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
categoryId CDATA #IMPLIED
defaultHandler CDATA #IMPLIED>
Этот элемент служит для определения команд. Команда представляет собой запрос от пользователя, который можно обработать с помощью действия. Запрос должен быть семантически уникальным среди других команд. Не следует определять команду, если уже есть команда с теми же функциями. Если указано несколько таких элементов с одинаковыми атрибутами id
, то действовать будет только элемент, объявленный последним (в порядке чтения реестра модулей).
Для того, чтобы разобраться, каким образом действия связаны с командами, ознакомьтесь с описанием точек расширения org.eclipse.ui.actionSets и org.eclipse.ui.editorActions.
activeWhen
. В случае, если создается IExecutableExtension
, вместо этого можно использовать элемент defaultHandler
. <!ELEMENT keyBinding EMPTY>
<!ATTLIST keyBinding
configuration CDATA #IMPLIED
command CDATA #IMPLIED
locale CDATA #IMPLIED
platform CDATA #IMPLIED
contextId CDATA #IMPLIED
string CDATA #IMPLIED
scope CDATA #IMPLIED
keyConfigurationId CDATA #IMPLIED
commandId CDATA #IMPLIED
keySequence CDATA #IMPLIED>
Этот элемент позволяет присваивать командам последовательности клавиш. Устарел. Пользуйтесь элементом key
в точке расширения "org.eclipse.ui.bindings".
java.util.Locale
.platform
- это набор значений, возвращаемых org.eclipse.swt.SWT.getPlatform()
.schemeId
элемента key
в новой точке расширения "org.eclipse.ui.bindings". Последовательность клавиш, присвоенная команде. Последовательность клавиш состоят из одной или нескольких комбинаций клавиш клавиатуры, в которых клавиши могут нажиматься отдельно или в сочетании с одним или несколькими модификаторами: Ctrl, Alt, Shift и Command. Комбинации клавиш разделяются пробелами, а модификаторы - символами '+'.
Клавиши-модификаторы можно задавать в платформо-независимом формате. Например, в MacOS X, "Command" чаще всего используется в значении "Ctrl" на "персоналках". Поэтому "M1" преобразовывается в "Ctrl" или "Command", в зависимости от платформы. Аналогично, "M2" - это "Shift"; "M3" - это "Alt"; а "M4" - это "Ctrl" в MacOS X. В случае, если будут добавлены новые платформы, эти псевдонимы будут работать и на них.
Формат строки описывается подробно в org.eclipse.ui.internal.keys
. Строка обрабатывается без учета регистра -- хотя мы рекомендуем использовать заглавные буквы. Если клавиша представляет букву, просто укажите ее. В противном случае можно использовать константы: ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BREAK, CAPS_LOCK, END, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, HOME, INSERT, 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. Для непечатаемых символов доступны такие константы: BS, CR, DEL, ESC, FF, LF, NUL, SPACE, TAB и VT. Клавиша ввода на основной части клавиатуры - CR.
<!ELEMENT keyConfiguration EMPTY>
<!ATTLIST keyConfiguration
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED
parentId CDATA #IMPLIED>
Этот элемент служит для определения конфигураций клавиш. Если указано несколько таких элементов с одинаковыми атрибутами id
, то действовать будет только элемент, объявленный последним (в порядке чтения реестра модулей).
Пользуйтесь точкой расширения "org.eclipse.ui.bindings".
<!ELEMENT context EMPTY>
<!ATTLIST context
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED
parentId CDATA #IMPLIED>
Этот элемент служит для определения контекста. Если указано несколько таких элементов с одинаковыми атрибутами id
, то действовать будет только элемент, объявленный последним (в порядке чтения реестра модулей).
Пользуйтесь точкой расширения org.eclipse.ui.contexts.
<!ELEMENT scope EMPTY>
<!ATTLIST scope
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
parent CDATA #IMPLIED>
Этот элемент служит для определения областей. Если указано несколько таких элементов с одинаковыми атрибутами id
, то действовать будет только элемент, объявленный последним (в порядке чтения реестра модулей).
Устарел. Пользуйтесь точкой расширения "org.eclipse.ui.contexts".
<!ELEMENT commandParameter (values)>
<!ATTLIST commandParameter
id CDATA #REQUIRED
name CDATA #REQUIRED
values CDATA #IMPLIED
optional (true | false) "true">
Определяет параметр, принимаемый командой. С помощью параметров можно передать обработчику информацию времени выполнения. Например, команде "Показать панель" можно передать идентификатор панели. Обработчики должны принимать эти параметры, так что это можно считать своеобразным API.
org.eclipse.core.commands.IParameterValues
. Если он опущен, то нужно указать более подробный элемент values
. Для подробностей, обратитесь к org.eclipse.core.runtime.IExecutableExtension
. <!ATTLIST values
class CDATA #REQUIRED>
Более подробная версия атрибута values
в элементе commandParameter
.
org.eclipse.core.commands.IParameterValues
. Если он опущен, то нужно указать более подробный элемент values
. Для подробностей, обратитесь к org.eclipse.core.runtime.IExecutableExtension
. <!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Возможное значение параметра.
IExecutableExtension
. IExecutableExtension
. <!ELEMENT defaultHandler (parameter)>
<!ATTLIST defaultHandler
class CDATA #REQUIRED>
Обработчик по умолчанию для этой команды. Этот обработчик используется если отсутствуют другие. Он будет конфликтовать с другими определениями обработчиков, которые не указывают условий activeWhen
. В случае, если создается IExecutableExtension
, вместо этого можно использовать элемент defaultHandler
.
org.eclipse.core.commands.IHandler
.
Точка расширения org.eclipse.ui.commands
широко используется в файле plugin.xml
в модуле org.eclipse.ui
.
Только API этой точки расширения является общим API для объявления команд, категорий, привязок клавиш, конфигураций клавиш или контекстов. Общий API для запроса и установки контекстов, а также для регистрации действий для обработки заданных команд находится в org.eclipse.ui.IKeyBindingService
.
Copyright (c) 2000, 2005 IBM Corporation и другие.
Все права защищены.
Эта программа и сопутствующие материалы распространяются на условиях Eclipse Public License v1.0, поставляемой вместе с продуктом и доступной на Web-сайте
http://www.eclipse.org/legal/epl-v10.html