命令

org.eclipse.ui.commands

2.1

org.eclipse.ui.commands 扩展点用来通过使用 commandcategory 元素声明命令和命令类别。命令是一些语义行为的抽象表示,而不是实际实现。这允许不同的开发者对他们各自的部分添加特定行为。例如,可能有一个“paste”命令,在编辑器中是一种实现,而在资源管理器窗口小部件中则是另一种实现。这些实现称为处理程序。

<!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.



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

在用户界面中,命令通常是按类别组织的,以便更易于管理它们。此元素用来定义这些类别。命令可以将它们自己添加到最多一个类别。如果存在具有相同 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.actionSetsorg.eclipse.ui.editorActions 以了解操作如何与命令连接。



<!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 元素来代替。



<!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">

定义一个命令可理解的参数。参数是一种在执行时对处理程序提供更多信息的方式。例如,“show view”命令可能会采用一个视图作为参数。处理程序应可以理解这些参数,因此它们应视为跟 API 一样。



<!ELEMENT values (parameter)>

<!ATTLIST values

class CDATA #REQUIRED>

commandParametervalues 属性的更详细版本。



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

参数的可能值。



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

此命令的缺省处理程序。如果没有其它处理程序是活动的,则此处理程序将处于活动状态。此处理程序与其它未指定 activeWhen 条件的其它处理程序定义相冲突。如果未创建 IExecutableExtension,则可使用 defaultHandler 属性来代替。



org.eclipse.ui 插件中的 plugin.xml 文件广泛使用了 org.eclipse.ui.commands 扩展点。

这是用于声明命令、类别、键绑定、键配置或除此扩展点之外的上下文的非公用 API。可以在 org.eclipse.ui.IKeyBindingService 中找到用于查询和设置上下文以及注册处理特定命令的操作的公用 API。