在Eclipse的Plugin開發(fā)中,給Action增加快捷鍵是很簡單的,只要在插件的plugin.xml加入如下內(nèi)容即可:
<extension
point = "org.eclipse.ui.commands">
<!-- activeKeyConfiguration項(xiàng)用來說明所綁定快捷鍵的初始設(shè)置 -->
<activeKeyConfiguration value="org.eclipse.ui.defaultAcceleratorConfiguration"/>
<!-- 如果快捷鍵設(shè)置有多套,可以添加多個(gè)類別 -->
<category
name="Bacchus.Category1"
description="Test description"
id="Bacchus.Category1"/>
<!-- 其中id為這個(gè)command的ID,相關(guān)的action通過這個(gè)ID標(biāo)志找到這個(gè)command -->
<command
name="Bacchus.Category1"
category="Bacchus.Category1"
description="Test bacchus command1"
id="bacchus.portal.ui.commands.BacchusAction"/>
<!-- 具體的快捷鍵設(shè)置,其中command指定實(shí)際的coomand的ID -->
<keyBinding
keySequence="Ctrl+1"
command="bacchus.portal.ui.commands.BacchusAction"
configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
</keyBinding>
</extension>
在具體的Action配置中,只要在其屬性definitionId設(shè)置成command的ID即可,示例如下:
<action
label="Sample Action"
icon="icons/sample.gif"
class="cli.bacchus.portal.ui.actions.BacchusAction"
tooltip="Hello, Eclipse world"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
id="bacchus.portal.ui.actions.BacchusAction"
definitionId="bacchus.portal.ui.commands.BacchusAction">
</action>注意:當(dāng)給相關(guān)的action設(shè)置完definitionID后,必須保證其中設(shè)置的command是有的,而且是正確的,否則有可能導(dǎo)致該action顯示不出來。
更具體的信息請參考eclipse開發(fā)參考中關(guān)于擴(kuò)展點(diǎn)org.eclipse.ui.commands的詳細(xì)描述。