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 を参照してください。
categoryId
を使用してください。
このコマンドのカテゴリーの固有 ID。このコマンドがカテゴリーを指定しない場合、コマンドは引き続きすべての UI で明示的にカテゴリー化されたコマンドとともに表示されます。
3.0 以降
このコマンドのデフォルト・ハンドラー (org.eclipse.ui.bindings 拡張ポイントを参照)。その他のハンドラーがアクティブでない場合、このハンドラーがアクティブになります。このハンドラーは、activeWhen
条件が指定されていないその他のハンドラー定義と競合します。IExecutableExtension
を作成する場合は、代わりに defaultHandler
要素を使用できます。
3.1 以降
このコマンドによって戻された値のタイプを示す commandParameterType
の ID。
returnTypeId
を指定することによって、コマンドを実行するクライアントが、戻された値を Java タイプと関連付けること、および値を String 書式に変換して、変換した値を保管するか、または同じ型のパラメーターを受け入れる別のコマンドへ受け渡す (またはその両方を行う) ことができるようにします。
3.2 以降
一般的にコマンドと関係するヘルプ・コンテキストの ID。ハンドラーはこのコンテキスト ID を上書きして、特定の振る舞いに対してより具体的なヘルプを提供することができます。
3.2 以降
<!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 以降
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 情報を参照してください。
この状態の固有 ID。これはセッション間で状態を永続させるために使用されます (状態が
org.eclipse.jface.commands.PersistentState
のインスタンスである場合)。メニューまたはツールバー内でコマンドがレンダリングされるときに、特定の共通 ID (org.eclipse.jface.menus.IMenuStateIds
を参照してください) が認識されます。
ID は、状態を定義するコマンド内でのみ、固有である必要があります。
<!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
属性を持つ要素が複数存在する場合、(プラグイン・レジストリーの読み取り順序で) 最後に宣言された要素のみが有効であると考えられます。使用すべきではありません。代わりに「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
属性を使用してください。コマンドに割り当てるキー・シーケンス。 キー・シーケンスは 1 つ以上のキー・ストロークで構成されます。キー・ストロークはキーボード上のキーで構成され、必要に応じて次の修飾、すなわち Ctrl、Alt (前面)、Shift、および Command を 1 つ以上組み合わせて押します。 キー・ストロークはスペース、修飾は「+」文字によって区切られます。
修飾キーはプラットフォームに依存しない方法で表現することもできます。例えば、MacOS X では通常「Ctrl」の代わりに「Command」が使用されます。したがって、「Ctrl」または「Command」に適宜にマッピングされる「M1」が用意されています。同様に、「M2」は「Shift」、「M3」は「Alt」、「M4」は「Ctrl」(MacOS X) です。プラットフォームが追加されている場合は、有効なプラットフォーム・デフォルト設定にマッピングされているこれらの別名を利用できます。
このストリングの構文は、org.eclipse.ui.internal.keys
で定義されています。要約すると、このストリングは大/小文字を区別しません。ただし、文体上、すべて大文字にすることを推奨します。キーが 1 文字の場合は、単にこの文字を追加します。キーが特殊キー (非 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, 2005 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