コマンド

org.eclipse.ui.commands

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 and org.eclipse.ui.editorActions を参照してください。



<!ELEMENT category EMPTY>

<!ATTLIST category

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED>

UI ではコマンドをより管理しやすくするため、コマンドをカテゴリー別に編成する場合がよくあります。 この要素はこのようなカテゴリーを定義するために使用されます。 複数のコマンドは多くとも 1 つのカテゴリーに追加することができます。 同じ id 属性を持つ要素が複数存在する場合、(プラグイン・レジストリーの読み取り順序で) 最後に宣言された要素のみが有効であると考えられます。



<!ELEMENT commandParameter (values?)>

<!ATTLIST commandParameter

id       CDATA #REQUIRED

name     CDATA #REQUIRED

values   CDATA #IMPLIED

typeId   CDATA #IMPLIED

optional (true | false) "true">

コマンドが認識する必要があるパラメーターを定義します。パラメーターを使用すると、実行時にハンドラーにより多くの情報を提供できます。例えば、「ビューの表示」コマンドにはパラメーターとしてビューを指定できます。ハンドラーはこれらのパラメーターを認識できなければならないため、API と同様に処理する必要があります。

3.1 以降



<!ELEMENT commandParameterType EMPTY>

<!ATTLIST commandParameterType

id        CDATA #REQUIRED

type      CDATA #IMPLIED

converter CDATA #IMPLIED>

commandParameter のオブジェクト型を定義します。またストリング・パラメーター値とオブジェクトの間の変換が行われるように、org.eclipse.core.commands.AbstractParameterValueConverter サブクラスを指定することができます。

3.2 以降



<!ELEMENT values (parameter*)>

<!ATTLIST values

class CDATA #REQUIRED>

commandParametervalues 属性の詳細バージョン

3.1 以降



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

パラメーターの有効値

3.1 以降



<!ELEMENT defaultHandler (parameter)>

<!ATTLIST defaultHandler

class CDATA #REQUIRED>

このコマンドのデフォルト・ハンドラー。その他のハンドラーがアクティブでない場合、このハンドラーがアクティブになります。このハンドラーは、activeWhen 条件が指定されていないその他のハンドラー定義と競合します。IExecutableExtension を作成しない場合は、代わりに defaultHandler 属性を使用できます。

3.1 以降



<!ELEMENT state (class?)>

<!ATTLIST state

class CDATA #IMPLIED

id    CDATA #REQUIRED>

すべてのハンドラー間で共用され、潜在的にセッション間で永続する状態情報。これは一般的に、チェック・ボックスの状態またはハンドラーのラベルのようなものです。状態は、その状態を見守るためにロードされるクラスでであるにすぎません。詳細については、API 情報を参照してください。

3.2 以降



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

このコマンドの状態を保管するためにロード可能なクラス。この要素は、複数のパラメーターを org.eclipse.core.runtime.IExecutableExtension へ受け渡したい場合に使用されます。

3.2 以降



keyConfiguration 要素は使用すべきではありません。

<!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」拡張ポイントを使用してください。



context 要素は使用すべきではありません。

<!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 拡張ポイントを使用してください。



scope 要素は使用すべきではありません。

<!ELEMENT scope EMPTY>

<!ATTLIST scope

description CDATA #IMPLIED

id          CDATA #REQUIRED

name        CDATA #REQUIRED

parent      CDATA #IMPLIED>

この要素は、有効範囲を定義する場合に使用します。 同じ id 属性を持つ要素が複数存在する場合、(プラグイン・レジストリーの読み取り順序で) 最後に宣言された要素のみが有効であると考えられます。使用すべきではありません。代わりに「org.eclipse.ui.contexts」拡張ポイントを使用してください。



activeKeyConfiguration 要素は使用すべきではありません。

<!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 を指定します。



keyBinding 要素は使用すべきではありません。

<!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 要素を使用してください。



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(...) を呼び出します。 .

この拡張ポイントのユーザーに有用だと思われるハンドラー状態のデフォルト実装がいくつかあります。