Eclipse/プラグイン開発のTIPS集/キーバインディングを設定する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
//ここにコンテンツを記述します。
#contents
Eclipse/RCPはplugin.xmlで宣言的にキーバインディング((ショ...
ウィンドウ >> 設定 の 一般 >> キー
に表示されるヤツですね。これでCtrl+Sで保存とか、いわゆる...
#ref(key.png)
**コマンドの定義 [#b82cda45]
キーをバインドする仕組みについてですが、まず「コマンド」...
あるキーを押す-> コマンドが決まる -> そのコマンドのアク...
といった流れになります。
***plugin.xml [#h7fb9324]
<extension point="org.eclipse.ui.commands">
<category id="nu.mine.kino.plugin.samples.rcp.category...
<command categoryId="nu.mine.kino.plugin.samples.rcp....
id="nu.mine.kino.plugin.samples.rcp.command" name=...
</extension>
<extension point="org.eclipse.ui.bindings">
<key sequence="F10" <-F10を割当
commandId="nu.mine.kino.plugin.samples.rcp.command" <...
schemeId="org.eclipse.ui.defaultAcceleratorConfigurat...
</key> ↑ デフォルトのスキーム
ほかに org.eclipse.ui.emacsAcceleratorCo...
</extension>
これで、コマンドとそのキーバインドが定義されました。
#ref(view.png)
カテゴリが「Sample」、コマンドが「サンプルコマンド」、キ...
#ref(mod.png)
さらに、スキームは「デフォルト」になっている
**アクションの関連づけ [#ucd94450]
次にこのコマンドにアクションを関連づけますが、それはアク...
<action class="nu.mine.kino.plugin.samples.rcp.actions.H...
definitionId="nu.mine.kino.plugin.samples.rcp.command" ...
id="nu.mine.kino.plugin.samples.rcp.actions.HogeAction"
label="アクション。" menubarPath="topmenu/sepa01" styl...
以上で、あるアクションに対してキーをバインドすることがで...
#ref(F10.png)
**TIPS [#p5d86806]
***キーシーケンスの値について [#l3064cdd]
キーのバインドで
<key sequence="F10" <-F10を割当
としましたが、たとえば「Ctrl+S」の場合は
<key sequence="Ctrl+S"
とします。複数書く場合は
<key sequence="Ctrl+X Ctrl+S"
などとなります。
***Ctrlなど特殊なキーをプラットフォームに依存しないで設定...
Ctrlなど特殊なキーは、プラットフォーム非依存にするために...
M1 (WindowsはCtrl、MacはCommand)
M2 (Shift)
M3 (WindowsはAlt、MacはOption)
M4 (MacはCtrl、その他は未定義)
などがあるようです。詳細はEclipseヘルプを「M1 M2」などで...
***プログラマティカルにアクションを追加した場合 [#x8561efb]
プログラマティカルにアクションを追加した場合は、そのアク...
Action#setActionDefinitionId("nu.mine.kino.plugin.sample...
としてコマンドのIDと関連づけましょう。
***Ctrl+Qで、アプリケーションを終了する [#v1fc9234]
<key
sequence="M1+Q"
commandId="org.eclipse.ui.file.exit" <- QuitAction...
schemeId="org.eclipse.ui.defaultAcceleratorConfigur...
</key>
ちなみにQuitActionのコンストラクタのソースはこんな感じ
public QuitAction(IWorkbenchWindow window) {
// Although window is not currently used,
// this follows the same pattern as other ActionFactor...
if (window == null) {
throw new IllegalArgumentException();
}
this.workbenchWindow = window;
setText(WorkbenchMessages.Exit_text);
setToolTipText(WorkbenchMessages.Exit_toolTip);
setActionDefinitionId("org.eclipse.ui.file.exit"); //$...
window.getWorkbench().getHelpSystem().setHelp(this,
IWorkbenchHelpContextIds.QUIT_ACTION);
}
***リンク [#gb815323]
-Eclipseヘルプを「ワークベンチ・キー・バインディング」で...
-Eclipseヘルプを「M1 M2」で検索しましょう。
-Eclipse/プラグイン開発のTIPS集/キーバインディングを設定...
----
この記事は
#vote(おもしろかった[13],そうでもない[1])
-すでにあるヤツとバッティングするCtrl+Sとかはうまくいかな...
-いったんコマンドIDを付けたアクションは、Workbenchに登録...
quitAction = ActionFactory.QUIT.create(window);
register(quitAction);
おきまりのコーディングだよなあって思ってたけど、まあいっ...
- Eclipse 3.3からこのcommandの仕組みを用いてアクション関...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
//ここにコンテンツを記述します。
#contents
Eclipse/RCPはplugin.xmlで宣言的にキーバインディング((ショ...
ウィンドウ >> 設定 の 一般 >> キー
に表示されるヤツですね。これでCtrl+Sで保存とか、いわゆる...
#ref(key.png)
**コマンドの定義 [#b82cda45]
キーをバインドする仕組みについてですが、まず「コマンド」...
あるキーを押す-> コマンドが決まる -> そのコマンドのアク...
といった流れになります。
***plugin.xml [#h7fb9324]
<extension point="org.eclipse.ui.commands">
<category id="nu.mine.kino.plugin.samples.rcp.category...
<command categoryId="nu.mine.kino.plugin.samples.rcp....
id="nu.mine.kino.plugin.samples.rcp.command" name=...
</extension>
<extension point="org.eclipse.ui.bindings">
<key sequence="F10" <-F10を割当
commandId="nu.mine.kino.plugin.samples.rcp.command" <...
schemeId="org.eclipse.ui.defaultAcceleratorConfigurat...
</key> ↑ デフォルトのスキーム
ほかに org.eclipse.ui.emacsAcceleratorCo...
</extension>
これで、コマンドとそのキーバインドが定義されました。
#ref(view.png)
カテゴリが「Sample」、コマンドが「サンプルコマンド」、キ...
#ref(mod.png)
さらに、スキームは「デフォルト」になっている
**アクションの関連づけ [#ucd94450]
次にこのコマンドにアクションを関連づけますが、それはアク...
<action class="nu.mine.kino.plugin.samples.rcp.actions.H...
definitionId="nu.mine.kino.plugin.samples.rcp.command" ...
id="nu.mine.kino.plugin.samples.rcp.actions.HogeAction"
label="アクション。" menubarPath="topmenu/sepa01" styl...
以上で、あるアクションに対してキーをバインドすることがで...
#ref(F10.png)
**TIPS [#p5d86806]
***キーシーケンスの値について [#l3064cdd]
キーのバインドで
<key sequence="F10" <-F10を割当
としましたが、たとえば「Ctrl+S」の場合は
<key sequence="Ctrl+S"
とします。複数書く場合は
<key sequence="Ctrl+X Ctrl+S"
などとなります。
***Ctrlなど特殊なキーをプラットフォームに依存しないで設定...
Ctrlなど特殊なキーは、プラットフォーム非依存にするために...
M1 (WindowsはCtrl、MacはCommand)
M2 (Shift)
M3 (WindowsはAlt、MacはOption)
M4 (MacはCtrl、その他は未定義)
などがあるようです。詳細はEclipseヘルプを「M1 M2」などで...
***プログラマティカルにアクションを追加した場合 [#x8561efb]
プログラマティカルにアクションを追加した場合は、そのアク...
Action#setActionDefinitionId("nu.mine.kino.plugin.sample...
としてコマンドのIDと関連づけましょう。
***Ctrl+Qで、アプリケーションを終了する [#v1fc9234]
<key
sequence="M1+Q"
commandId="org.eclipse.ui.file.exit" <- QuitAction...
schemeId="org.eclipse.ui.defaultAcceleratorConfigur...
</key>
ちなみにQuitActionのコンストラクタのソースはこんな感じ
public QuitAction(IWorkbenchWindow window) {
// Although window is not currently used,
// this follows the same pattern as other ActionFactor...
if (window == null) {
throw new IllegalArgumentException();
}
this.workbenchWindow = window;
setText(WorkbenchMessages.Exit_text);
setToolTipText(WorkbenchMessages.Exit_toolTip);
setActionDefinitionId("org.eclipse.ui.file.exit"); //$...
window.getWorkbench().getHelpSystem().setHelp(this,
IWorkbenchHelpContextIds.QUIT_ACTION);
}
***リンク [#gb815323]
-Eclipseヘルプを「ワークベンチ・キー・バインディング」で...
-Eclipseヘルプを「M1 M2」で検索しましょう。
-Eclipse/プラグイン開発のTIPS集/キーバインディングを設定...
----
この記事は
#vote(おもしろかった[13],そうでもない[1])
-すでにあるヤツとバッティングするCtrl+Sとかはうまくいかな...
-いったんコマンドIDを付けたアクションは、Workbenchに登録...
quitAction = ActionFactory.QUIT.create(window);
register(quitAction);
おきまりのコーディングだよなあって思ってたけど、まあいっ...
- Eclipse 3.3からこのcommandの仕組みを用いてアクション関...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: