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

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

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

    如何給eclipse中的viewaction添加鍵盤快捷鍵(keybinding)

    首先講一下eclipse中給Action中添加快捷鍵的一般方法
    ?????? 要添加快捷鍵,必須要擴展eclipse的org.eclipse.ui.command和org.eclipse.ui.binding這兩個extension.然后Action和command關聯,command又和一個binding關聯起來,這樣就間接的使action和binding有了關聯.有人會問,這樣做是不是太麻煩了,我直接把action和binding關聯起來不就行了?最好是有個方法,比如action.setKeybind("Ctrl+A").其實eclipse這樣做是涉及到設計模式的問題.如果用這種"簡單"方法,你以后如果想要改actioon的快捷鍵就要去改action的源碼了,是一種緊耦合的關系.而eclipse的處理方式削弱了這種耦合,你如果要改快捷鍵,改binding就可以了,你還可以讓一個action在不同的perspective,甚至是不同的view中使用不同的快捷鍵.讓一個action對應多個快捷鍵等等.
    ?????? ?command和binding的關聯在你擴展這兩個extension的時候就可以建立了,下面看看怎么讓一個action對應一個command
    ??????? 在你的插件中添加Action有兩種方法:1.通過plugin.xml擴展extension.2.直接在代碼中code. 如果是用第一種方法,在Action的設置中會有definitionId這一項,你把它填上你自己寫的command的Id就好了;如果是第二種方法,那需要在你的定義action的代碼中加上兩句:
    ????????????????? yourAction.setActionDefinitionId("commandId");
    ????????????????? getViewSite().getKeyBindingService().registerAction(yourAction);
    這兩種方法是等效的
    ?? 但要給viewaction添加快捷鍵以上兩種方法都有點問題.viewaction在plugin.xml文件中是沒有definitionId這一項的,所以你沒辦法設置;如果你是program方法,由于viewaction不是繼承自Action類的,所以你也不能用setActionDefinitionId這個方法.聰明的你可能會想到了,那我讓viewaction繼承Action不就行了:
    ???? public class ViewAction extends Action? implements IViewActionDelegate //紅色部分是自己添加的extends
    ?{???? ...
    ????? public void init(IViewPart view) {
    ???????????????? this.view=view;
    ?????????????? this.setActionDefinitionId("ViewAction.command1");
    ??????????? view.getViewSite().getKeyBindingService().registerAction(this);
    ?????????}??????
    }
    這個方法理論上可以,但可惜也僅僅是理論上行得通而已.具體是為什么我也不知道,如果有大牛告知小弟不勝感激.我后來的解決辦法是這樣的:在viewaction的init方法中加入以下代碼段
    ???? this.view=view;
    ??IContributionItem item= view.getViewSite().getActionBars().getToolBarManager().find("ViewAction.action1");
    ??IAction action=((ActionContributionItem)item).getAction();
    ??action.setActionDefinitionId("ViewAction.command1");
    ??view.getSite().getKeyBindingService().registerAction(action);
    這樣就可以給viewaction添加快捷鍵了

    posted on 2006-12-02 22:30 小牛小蝦 閱讀(1525) 評論(1)  編輯  收藏

    評論

    # re: 如何給eclipse中的viewaction添加鍵盤快捷鍵(keybinding) 2006-12-03 01:37 商業計劃書

    不錯,學習了,頂一個  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2006年12月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導航

    統計

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    eclipse

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品一品区二品区三品区| 亚洲va在线va天堂va不卡下载| 亚洲国产成人久久精品动漫 | 久久久久se色偷偷亚洲精品av| WWW亚洲色大成网络.COM| 国产免费爽爽视频在线观看| 女人与禽交视频免费看| 国产亚洲精品xxx| 亚洲欧美中文日韩视频| 大地资源中文在线观看免费版| 午夜时刻免费入口| 亚洲国产成人精品无码区在线观看| 亚洲精品人成网线在线播放va| 在线观看肉片AV网站免费| 日本免费一二区在线电影| 亚洲免费在线视频| 免费精品久久久久久中文字幕| 免费看h片的网站| 国产精品亚洲精品日韩已方| 亚洲愉拍一区二区三区| 久久综合九色综合97免费下载| 免费A级毛片无码久久版| 亚洲女人初试黑人巨高清| 韩国免费A级毛片久久| 免费羞羞视频网站| 亚洲色图综合网站| 成人电影在线免费观看| 又大又黄又粗又爽的免费视频| 亚洲人成在线播放| 免费观看91视频| 久久久久亚洲AV无码专区网站 | 精品特级一级毛片免费观看| 免费成人福利视频| 亚洲av无码一区二区乱子伦as | 18禁美女裸体免费网站| 国产A在亚洲线播放| 色吊丝性永久免费看码| 日韩高清在线免费看| 亚洲中文无码av永久| 性色午夜视频免费男人的天堂| 久久99亚洲综合精品首页|