2.1
org.eclipse.ui.commands
扩展点用来通过使用 command
和 category
元素声明命令和命令类别。命令是一些语义行为的抽象表示,而不是实际实现。这允许不同的开发者对他们各自的部分添加特定行为。例如,可能有一个“paste”命令,在编辑器中是一种实现,而在资源管理器窗口小部件中则是另一种实现。这些实现称为处理程序。也可以将命令看作声明性的函数指针或信号处理程序。
<!ELEMENT extension (category* , command* , commandParameterType* , keyBinding* , keyConfiguration* , context* , scope* , activeKeyConfiguration?)>
<!ATTLIST extension
id CDATA #IMPLIED
name CDATA #IMPLIED
point CDATA #REQUIRED>
<!ELEMENT command (defaultHandler? , state* , commandParameter*)>
<!ATTLIST command
category CDATA #IMPLIED
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED
categoryId CDATA #IMPLIED
defaultHandler CDATA #IMPLIED
returnTypeId CDATA #IMPLIED
helpContextId CDATA #IMPLIED>
此元素用来定义命令。命令表示来自用户的可由操作处理的请求,它与其他命令相比在语义上应是唯一的。如果已定义具有相同含义的命令,则不要定义它。如果存在具有相同 id
属性的多个这样的元素,则仅最后声明的那个元素(以读取插件注册表的顺序)才被认为是有效的。请参阅扩展点 org.eclipse.ui.actionSets 和 org.eclipse.ui.editorActions 以了解操作如何与命令连接。
categoryId
代替。此命令的类别的唯一标识。如果此命令不指定类别,则它仍将与其他专门分类的命令一起出现在所有 UI 中。
起始版本:3.0
此命令的缺省处理程序(请参阅 org.eclipse.ui.bindings 扩展点)。如果没有其他处理程序是活动的,则此处理程序将处于活动状态。此处理程序与其他未指定 activeWhen
条件的其他处理程序定义相冲突。如果要创建 IExecutableExtension
,则请改为使用 defaultHandler
元素。
起始版本:3.1
commandParameterType
的标识。此标识指示此命令返回的值的类型。通过指定 returnTypeId
,
就允许执行此命令的客户机使返回的值与 Java 类型相关联并将该值转换为 String 格式(可以将 String 格式存储和/或传递给另一个接受同一类型参数的命令)。
起始版本:3.2
通常与此命令相关的帮助上下文的标识。处理程序可以覆盖此上下文标识,以更改更特定于它们的特定行为的帮助。
起始版本:3.2
<!ELEMENT category EMPTY>
<!ATTLIST category
description CDATA #IMPLIED
id CDATA #REQUIRED
name CDATA #REQUIRED>
在 UI 中,命令通常是按类别组织的,以便更易于管理它们。此元素用来定义这些类别。命令可以将它们自己添加到最多一个类别。如果存在具有相同 id
属性的多个这样的元素,则仅最后声明的那个元素(以读取插件注册表的顺序)才被认为是有效的。
<!ELEMENT commandParameter (values?)>
<!ATTLIST commandParameter
id CDATA #REQUIRED
name CDATA #REQUIRED
values CDATA #IMPLIED
typeId CDATA #IMPLIED
optional (true | false) "true">
定义一个命令可理解的参数。参数是一种在执行时对处理程序提供更多信息的方式。例如,“show view”命令可能会采用一个视图作为参数。处理程序应可以理解这些参数,因此它们应视为跟 API 一样。
起始版本:3.1
org.eclipse.core.commands.IParameterValues
。如果未指定此类,则必须指定更详细的 values
元素。请参阅 org.eclipse.core.runtime.IExecutableExtension
。<!ELEMENT commandParameterType EMPTY>
<!ATTLIST commandParameterType
id CDATA #REQUIRED
type CDATA #IMPLIED
converter CDATA #IMPLIED>
定义 commandParameter 的对象类型,可以指定
org.eclipse.core.commands.AbstractParameterValueConverter
子类以在字符串参数值与对象之间进行转换。
起始版本:3.2
java.lang.Object
作为参数类型。org.eclipse.core.commands.AbstractParameterValueConverter
。转换器应该生成并使用
type
属性中指示的类型的对象。如果未指定此类,则在此参数值的字符串与对象值之间进行转换的功能将不可用(对
ParameterType
类执行的
getValueConverter()
将返回 null
)。<!ELEMENT values (parameter*)>
<!ATTLIST values
class CDATA #REQUIRED>
commandParameter
上 values
属性的更详细版本。
起始版本:3.1
org.eclipse.core.commands.IParameterValues
。如果未指定此类,则必须指定更详细的 values
元素。请参阅 org.eclipse.core.runtime.IExecutableExtension
。<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED>
参数的可能值。
起始版本:3.1
IExecutableExtension
的参数名称。IExecutableExtension
的参数值。<!ELEMENT defaultHandler (parameter)>
<!ATTLIST defaultHandler
class CDATA #REQUIRED>
此命令的缺省处理程序。如果没有其他处理程序是活动的,则此处理程序将处于活动状态。此处理程序与其他未指定 activeWhen
条件的其他处理程序定义相冲突。如果未创建 IExecutableExtension
,则请改为使用 defaultHandler
属性。
起始版本:3.1
org.eclipse.core.commands.IHandler
的类。<!ATTLIST state
class CDATA #IMPLIED
id CDATA #REQUIRED>
状态信息在所有处理程序之间共享,并且可以在会话之间保留。这通常是类似于复选框状态或处理程序标签之类的内容。状态仅仅是为了管理状态而装入的类。请参阅 API 信息以了解详细信息。
起始版本:3.2
org.eclipse.core.commands.State
。请参阅 API 信息。
此状态的唯一标识。此标识用于在会话之间保存状态(如果该状态是
org.eclipse.jface.commands.PersistentState
的实例的话)。在菜单或工具栏中显示命令时,识别某些公共标识(请参阅
org.eclipse.jface.menus.IMenuStateIds
)。此标识只需要在定义该状态的命令中是唯一的。
<!ATTLIST class
class CDATA #REQUIRED>
一个类,可以装入该类以存储此命令的状态。如果您希望将多个参数传递给 org.eclipse.core.runtime.IExecutableExtension
,则将使用此元素。
起始版本:3.2
org.eclipse.core.commands.State
。请参阅 API 信息。<!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
属性的多个这样的元素,则仅最后声明的那个元素(以读取插件注册表的顺序)才被认为是有效的。@deprecated 请改为使用“org.eclipse.ui.contexts”扩展点。
<!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
属性)。id
属性)。<!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>
此元素允许用户将键序列指定给命令。请在“org.eclipse.ui.bindings”扩展点中改为使用 key
元素。
java.util.Locale
中声明的格式指定的。platform
属性的可能值是由 org.eclipse.swt.SWT.getPlatform()
返回的可能值的集合。key
元素的 schemeId
属性。要指定给命令的键序列。键序列由一次或多次击键组成,而击键又是由键盘上的键组成,可选择与下列一个或多个组合键进行按键组合:Ctrl、Alt、Shift 和命令。击键以空格分隔,而组合键以“+”号分隔。
组合键还可以用与平台无关的方式表示。在 MacOS X 上,例如,“Command”几乎始终用“Ctrl”来代替。因此,我们提供“M1”,它将相应映射到“Ctrl”或“Command”。同样,“M2”是“Shift”;“M3”是“Alt”;“M4”是“Ctrl”(MacOS X)。如果增加了更多平台,则可以指望使用这些映射到良好平台缺省值的别名。
此字符串的语法在 org.eclipse.ui.internal.keys
中定义。简单地说,尽管在文体上最好全部都采用大写形式,但该字符串并不区分大小写。如果键是字母,则只要附加该字母即可。如果键是特殊键(即,非 ASCII 格式),则使用下列项中的某一个: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。如果该键是不可打印的 ASCII 键,则使用下列项的某一个:BS、CR、DEL、ESC、FF、LF、NUL、SPACE、TAB 或 VT。请注意,键盘主 enter/return 键是 CR。
org.eclipse.ui
插件中的 plugin.xml
文件广泛使用了 org.eclipse.ui.commands
扩展点。
通过使用 org.eclipse.ui.handlers.IHandlerService
,可以向命令注册处理程序。通过调用
getService(IHandlerService.class)
,可以从各种工作台组件(例如工作台、工作台窗口和部件站点等)检索此处理程序。
通常,最好在 plugin.xml
中以静态方式声明所有命令。这是为了使用户能够将键绑定连接到命令。但是,可以在运行时声明命令。要完成此任务,请从工作台组件检索 org.eclipse.ui.commands.ICommandService
,调用
getCommand(yourCommandID)
,然后调用 Command.define(...)
。
处理程序状态的几个缺省实现对于此扩展点的用户来说可能非常有用:
Copyright (c) 2000, 2006 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html