<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    子非魚

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      21 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
    轉自:http://lemon.javaeye.com/blog/51480
            http://m.tkk7.com/fhawk/archive/2007/01/16/28993.html
    利用IKeyBindingService接口為Action綁定快捷鍵:

    1、
    設置commands extension

       <extension
               
    point = "org.eclipse.ui.commands">
               
    <!-- activeKeyConfiguration項用來說明所綁定快捷鍵的初始設置 -->
               
    <activeKeyConfiguration value="org.eclipse.ui.defaultAcceleratorConfiguration"/>
               
    <!-- 如果快捷鍵設置有多套,可以添加多個類別 -->
               
    <category
                   
    name="intelliPlatform.Category1"
                   description
    ="Test description"
                   id
    ="intelliPlatform.Category1"/>
               
    <!-- 其中id為這個command的ID,相關的action通過這個ID標志找到這個command -->
               
    <command
                 
    name="intelliPlatform.command.DataSource"
                 category
    ="intelliPlatform.Category1"
                 description
    ="數據源配置"
                 id
    ="com.longtop.intelliplatform.ide.project.commands.DataSource"/>
            
    <!-- 具體的快捷鍵設置,其中command指定實際的coomand的ID -->
            
    <keyBinding
                 
    command="com.longtop.intelliplatform.ide.project.commands.DataSource"
                 configuration
    ="org.eclipse.ui.defaultAcceleratorConfiguration"
                 keySequence
    ="Ctrl+Shift+D"/>
       
    </extension>
     以上是設置了plugin.xml中command extension,并指定了keybinding,在keybinding中
     的keysequence中的字符串是設置的快捷鍵。 

    ------------

    在具體的Action配置中,只要在其屬性definitionId設置成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
    ="com.longtop.intelliplatform.ide.project.commands.datesource">
    </action>

    注意:當給相關的action設置完definitionID后,必須保證其中設置的command是有的,而且是正確的,否則有可能導致該action顯示不出來。
    更具體的信息請參考eclipse開發參考中關于擴展點org.eclipse.ui.commands的詳細描述。

    ------------

    2、
     建立Acion,在此建立的action可以是實現IAction接口的任何類。比較方便的是繼承
     org.eclipse.jface.Action,然后在新類中覆蓋父類的run() 方法.

     public class CopyAction extends Action{
       
    public CopyAction(){
        setId(
    "org.example.copyaction");
        setActionDefinitionId(
    "com.longtop.intelliplatform.ide.project.commands.DataSource");
       }

     }

    3、
    在創建CopyAction的instance之后,將copyActionInstance用IKeyBindingService綁定到
    指定的command。
    獲得IKeyBinddingservice的一種簡單方式為:
    IKeyBindingService keyBindingService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getKeyBindingService();
    keyBindingService.registerAction(copyActionInstance);


    注意:
    1、action的definitionid和command定義的id必須一致。
    2、當指定的keySequence與系統默認的沖突時,如:在窗體的菜單欄中
    指定了Edit->Copy(默認的快捷鍵為Ctrl+C),若將上面的keySequence改為
    M1+C(Ctrl+C)則系統默認的快捷鍵(Ctrl+C)將更改為Ctrl+Insert。即RCP默認
    的為用戶指定的優先,系統動態更新。
    3、IKeyBindingService指定的快捷鍵是有作用范圍的。




    為主菜單綁定快捷鍵

    主菜單的快捷鍵即為 Alt + 菜單名稱中帶下劃線的字母
    定義主菜單快捷鍵只要在主菜單lable中確定的字母前面加上&字符即可
    如:
    plugin.properties  menulabel = &Intelliplatform
    plugin_zh.properties menulabel = 平臺(&I)
    (注意:在該label引用的properties國際化文件中加,直接在plugin.xml中加好像無效,此處存疑)
    posted on 2008-10-06 15:18 子非魚 閱讀(1256) 評論(0)  編輯  收藏 所屬分類: eclipse
    主站蜘蛛池模板: 日韩一区二区三区免费体验| 99久久精品国产免费| 成人性生交视频免费观看| 亚洲一区二区三区首页| 国产乱子伦精品免费视频| 亚洲中文字幕成人在线| 青草青草视频2免费观看| 国产午夜免费秋霞影院| 亚洲欧美日本韩国| 在线日韩av永久免费观看| 亚洲国产精品无码观看久久| 四虎成人免费网址在线| 亚洲人成网站999久久久综合| 天天干在线免费视频| 亚洲丁香婷婷综合久久| 国产成人免费片在线视频观看| 亚洲妇女无套内射精| 热99re久久精品精品免费| 欧洲亚洲国产精华液| 日本免费一区二区三区最新vr| 亚洲AV无码一区二区三区性色 | 亚洲国产超清无码专区| 18勿入网站免费永久| 亚洲色大情网站www| 免费a级毛片永久免费| 国产精品福利片免费看| 久久精品国产亚洲香蕉| 亚洲免费福利视频| 亚洲免费综合色在线视频| 亚洲国产成人久久一区WWW| 久久免费99精品国产自在现线| 亚洲成在人天堂在线| 在线观看免费人成视频色9| 亚洲乱码av中文一区二区| 亚洲精品国产成人影院| 国产日韩久久免费影院| 久久久无码精品亚洲日韩京东传媒| 成人超污免费网站在线看| 一个人看的www在线免费视频| 久久亚洲免费视频| 超pen个人视频国产免费观看|