スキーム

スキームは、バインディングの一般的なスタイルまたはテーマを表すために使用されます。 例えば、ワークベンチには、「デフォルト」スキームと「Emacs」スキームが用意されています。 いつでも、1 つのスキームのみがアクティブです。 エンド・ユーザーは、一般の「設定」ダイアログを使用してどのキー構成がアクティブであるのかを制御できます。

インプリメンテーションの観点では、スキームは単にバインディングの名前付きグループです。 スキームにバインディングが関連付けられていない限り、スキームは単独では何も行いません。   

バインディングの定義と、スキームがバインディングにどのように関連付けられるかを理解するために、 org.eclipse.ui.bindings のワークベンチ・マークアップをもう一度調べてみましょう。

...
<key
       sequence="Ctrl+S"
       commandId="org.eclipse.ui.file.save"
       schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
</key>
...
<key
       sequence="Ctrl+X Ctrl+S"
       commandId="org.eclipse.ui.file.save"
       schemeId="org.eclipse.ui.emacsAcceleratorConfiguration">
</key>
...

2 つの異なるキー・バインディングが「org.eclipse.ui.file.save」コマンドに定義されています。 それぞれに別のスキームが定義されていることに注意してください。 デフォルト・スキームがアクティブのときは、「Ctrl+S」キー・バインディングでコマンドが起動されます。 emacs スキームがアクティブのときは、シーケンス「Ctrl+X Ctrl+S」でコマンドが起動されます。

新規スキームの定義

プラグインがバインディングを定義するとき、多くの場合、既存のスキームに割り当てられます。 ただし、プラグインが、まったく新しいスタイルのスキームを定義したい場合があります。 このような場合、org.eclipse.ui.bindings 定義内で新しいタイプのスキームを定義することができます。 デフォルトおよび emacs キー構成を定義するワークベンチ・マークアップを下に示します。

...
<scheme
       name="%keyConfiguration.default.name"
       description="%keyConfiguration.default.description"
       id="org.eclipse.ui.defaultAcceleratorConfiguration">
</scheme>
<scheme
       name="%keyConfiguration.emacs.name"
       parentId="org.eclipse.ui.defaultAcceleratorConfiguration"
       description="%keyConfiguration.emacs.description"
       id="org.eclipse.ui.emacsAcceleratorConfiguration">
</scheme>
...

ここで定義される name は、スキーム・リスト内の設定ページで使用されるものであることに注意してください。

スキームの活動化

ユーザーは、設定ページを介してアクティブ・スキームを制御します。 ただし、「plugin_customization.ini」ファイルの一部としてデフォルトのアクティブ・スキームを定義することができます。 以下が優先されます。

org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.defaultAcceleratorConfiguration