org.eclipse.ui.bindings
拡張ポイントは、バインディングおよびスキームを宣言する場合に使用します。スキームは 1 つ以上のバインディングのセットです。バインディングは特定の条件グループ、一部のユーザー入力、およびトリガーされたコマンド間のマッピングです。
すべてのバインディングには、何らかの種類のトリガー、バインディングがアクティブなコンテキスト、およびバインディングが存在するスキームが必要です。選択するコンテキストが不明な場合は、ブランクのまま残してください。デフォルト・コンテキストは "org.eclipse.ui.contexts.window"
です。このコンテキストの場合、すべての Eclipse メイン・ウィンドウにバインディングが適用されます。コンテキストがアクティブになると、バインディングもアクティブになります。子コンテキストのバインディングは、親コンテキストのバインディングよりも優先します。コンテキストについての詳細は、org.eclipse.ui.contexts
拡張ポイントを参照してください。
コマンド ID を定義しないバインディングは削除マーカーです。つまり、すべての条件が満たされている場合は、同じコンテキスト内の同じトリガーを持つすべてのバインディングがキャンセルされます。このメカニズムは、特定のプラットフォームのバインディングを変更する場合などに使用できます。
バインディングのタイプの 1 つは key
バインディング (キーボード・ショートカット) です。例えば、Ctrl+C
と Copy
のバインディングは key
バインディングとみなされます。キー・バインディングのトリガーは、キー・ストロークのシーケンスです。
スキームは、エンド・ユーザーが選択できるセットにこれらのバインディングをグループ化したものです。例えば、ユーザーはデフォルト・スキームを使用したり、Emacs 型のスキームや Brief 型のスキームを使用することができます。
<!ELEMENT extension (scheme , key)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT scheme EMPTY>
<!ATTLIST scheme
id CDATA #REQUIRED
name CDATA #REQUIRED
description CDATA #IMPLIED
parentId CDATA #IMPLIED>
スキームは、エンド・ユーザーが選択して使用できるバインディングをグループ化したものです。
スキームは親スキームからバインディングを継承できます。これにより、プラグイン開発者はカスタマイズされたバインディング・セットを簡単に作成できます。子スキームと親スキームのトリガーが同じである場合、子スキーム内で定義されたアクティブなバインディングは、親スキーム内のアクティブなバインディングよりも常に優先します。この技法を使用して、ワークベンチ内で Emacs スキームが提供されます。
<!ATTLIST key
sequence CDATA #REQUIRED
schemeId CDATA #REQUIRED
contextId CDATA "org.eclipse.ui.contexts.window"
commandId CDATA #IMPLIED
platform CDATA #IMPLIED
locale CDATA #IMPLIED>
一部のキーボード入力とコマンド・トリガー間のバインディング
このバインディングのキー・シーケンス。キー・シーケンスは、1 つ以上のキー・ストロークで構成されます。
キー・ストロークはスペースで区切られます。キー・ストロークは同時に押される 1 つ以上のキーからなります。これらのキーは ゼロまたはそれ以上の修飾キー、およびその他の 1 つのキーです。これらのキーは +
文字で区切られます。
認識される修飾キーは M1
、M2
、M3
、M4
、ALT
、COMMAND
、CTRL
、および SHIFT
です。「M」修飾キーは、プラットフォームに依存するキー表現方法で、通常は設定済みです。M1
は、MacOS X では COMMAND
キー、その他の一般的なプラットフォームでは、CTRL
キーです。M2
は SHIFT
キーです。M3
は MacOS X では Option
キー、その他の一般的なプラットフォームでは ALT
キーです。M4
は MacOS X では CTRL
キー、その他のプラットフォームでは未定義です。
実際のキーは一般に、単に大文字の ASCII 文字として指定されます。したがって、F
または ,
などはこれらのキーの例です。ただし、印刷可能な ASCII 表記を持たない特殊なキーもあります。現在の特殊キーは、ARROW_DOWN
、ARROW_LEFT
、ARROW_RIGHT
、ARROW_UP
、BREAK
、BS
、CAPS_LOCK
、CR
、DEL
、END
、ESC
、F1
、F2
、F3
、F4
、F5
、F6
、F7
、F8
、F9
、F10
、F11
、F12
、F13
、F14
、F15
、FF
、HOME
、INSERT
、LF
、NUL
、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
、SPACE
、TAB
、および VT
です。
共通の特殊キーに代替名が存在することがあります。例えば、ESC
および ESCAPE
は両方とも使用することができ、CR
、ENTER
、および RETURN
はすべて同じです。
キー・シーケンスは簡潔にすることも強く推奨します。1 つまたは 2 つを指定すれば十分です。アプリケーションのパーツごとに意味が異なるキー・シーケンスを設定するには、コンテキストを使用します。通常は、キー・ストローク数が 4 つを超えるキー・シーケンスは使用しないでください。
org.eclipse.ui.contexts
拡張ポイントを参照してください。指定しない場合のデフォルトは、org.eclipse.ui.contexts.window
です。このバインディングがトリガーされた場合に実行する必要があるコマンドの ID。
コマンド ID が指定されていない場合は、削除マーカーになります。つまり、同じシーケンス、プラットフォーム、ロケールを持つ同じコンテキスト内のすべてのバインディングは、このバインディングがアクティブになると非アクティブになります。削除時にプラットフォームまたはロケールが指定されていない場合は、すべてのプラットフォームまたはロケールがマッチングします。
SWT.getPlatform()
のストリングと同じ方法で指定する必要があります。例えば、ストリング win32
、gtk
、motif
、carbon
、および photon
は有効とみなされます。Locale.toString()
と同じ方法で指定します。例えば、"en"
または"en_CA"
は両方とも認識されます。<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED>
実行時にコマンドに渡されるパラメーターの名前および値。これにより、コマンドを特定の方法で修飾できます。例えば、「ビューの表示」コマンドにはパラメーターとしてビュー ID を指定できます。
<extension point=
"org.eclipse.ui.bindings"
>
<key sequence=
"M2+F5"
commandId=
"commandId"
schemeId=
"default"
contextId=
"windows"
/>
<scheme name=
"Default"
description=
"Eclipse のデフォルトのショートカット"
id=
"default"
/>
</extension>
バインディングを定義するための パブリック API はありません。動作を安定させるために、バインディングの定義は拡張ポイントを通してのみ行うようにしてください。RCP アプリケーションでは、WorkbenchAdvisor
でこの動作を無効にする必要があります。
バインディングを機能させるには、コマンドを定義する必要があります。特定のバインディングを機能させるには、コマンドにアクティブなハンドラーが必要です。ハンドラーはプログラマチックに登録できます。org.eclipse.ui.handlers 拡張ポイントを参照してください。
Copyright (c) 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