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

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

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

    Java海闊天空

    編程是我的生活,但生活不僅僅是編程。

    [翻譯]eclipse插件開(kāi)發(fā)(1-1):action

    eclipse平臺(tái)允許我們通過(guò)插件擴(kuò)展出另一個(gè)插件,與平臺(tái)緊密集成為用戶提供更好的體驗(yàn),本文將向您闡述如何向視圖和編輯器中添加動(dòng)作(上下文菜單),并且允許為您自己定義的視圖和編輯器添加其他新的動(dòng)作。文中的每一個(gè)示例將詳細(xì)的向您展示每一種不同應(yīng)用的特征。

    上面的圖片顯示了插件中能添加動(dòng)作的眾多區(qū)域:

    1、  在視圖和編輯器中添加上下文菜單

    2、  在視圖上添加工具欄和下拉菜單

    3、  在工作臺(tái)窗口的主工具欄和菜單上添加動(dòng)作 

    本文將對(duì)上面的種種進(jìn)行演示,并通過(guò)實(shí)例形式向您詳細(xì)講解。 

    我們假設(shè)您有插件開(kāi)發(fā)的基礎(chǔ),如果想獲得在eclipse平臺(tái)上開(kāi)發(fā)插件的更多信息,請(qǐng)閱讀Jim Amsden的入門(mén)文章“Your First Plug-in”,該示例的運(yùn)行結(jié)果,請(qǐng)點(diǎn)擊“running the examples”。 

    在上下文菜單中添加動(dòng)作

    可以在視圖和編輯器的上下文菜單中添加動(dòng)作并緊密集成,比如,VCM插件在存在的視圖如NavigatorPackages中添加了許多新的動(dòng)作,對(duì)資源進(jìn)行版本管理.為了在上下文菜單中添加新的動(dòng)作,eclipse提供了插件點(diǎn)org.eclipse.ui.popupMenus,包括兩種類型的動(dòng)作,即能添加到視圖或編輯器的上下文菜單中,也能為指定的對(duì)象類型添加上下文菜單。下面的三個(gè)示例將為您詳細(xì)說(shuō)明。 

    示例一:為默認(rèn)的文本編輯器添加新的動(dòng)作
          讓我們看看如何向默認(rèn)的文本編輯器添加一個(gè)動(dòng)作:
        ①<viewerContribution
              id="org.eclipse.ui.articles.action.contribution.popup.editor"
        ②   targetID="#TextEditorContext">
        ③   <action
                 id="org.eclipse.ui.articles.action.contribution.editor.action1"
                 label="Editor Action 1"
                 icon="icons/red_dot.gif"
        ④  menubarPath="additions"
        ⑤  class="first.plugin.action.ContextMenuAction">
              </action>    
          </viewerContribution>
        </extension>

     上面的xml向指定編輯器添加了一個(gè)上下文菜單,該擴(kuò)展叫viewerContribution(①),可以用于視圖和編輯器。 

    targetID屬性(②)指定上下文菜單所依附的目標(biāo)視圖和編輯器標(biāo)識(shí)符,官方文檔提供了可用的標(biāo)識(shí)符列表,如果您設(shè)置的標(biāo)識(shí)符不存在,則上下文菜單不被注冊(cè)。一個(gè)視圖或編輯器可以有不只一個(gè)上下文菜單。 

    action(③)標(biāo)記用于定義一個(gè)動(dòng)作,id是該動(dòng)作的標(biāo)識(shí)符,labelicon表示菜單項(xiàng)的顯示文本和圖標(biāo),icon為可選項(xiàng)。menubarPath(④)屬性指定動(dòng)作菜單項(xiàng)的位置,從上下文菜單的根開(kāi)始,action將被添加到這里。在本示例中,“additions”其實(shí)是org.eclipse.ui.IWorkbenchActionConstants類的一個(gè)常量值(MB_ADDITIONS)。添加的動(dòng)作獨(dú)立成組,在上述情況下,如果menubarPath屬性沒(méi)有指定,工作臺(tái)將首先添加到“additions”組中,如果additions不存在,動(dòng)作將被添加到上下文菜單的末尾。 

    class(⑤)屬性是一個(gè)菜單項(xiàng)被用戶選中后將要執(zhí)行的動(dòng)作的類,如果是編輯器的上下文菜單,該類必須實(shí)現(xiàn)org.eclipse.ui.IEditorActionDelegate接口,如果是視圖的上下文菜單,則實(shí)現(xiàn)org.eclipse.ui.IViewActionDelegate接口。有一個(gè)非常重要的情況就是只有當(dāng)用戶選擇了菜單項(xiàng)后該類才被工作臺(tái)加載,這就意味著很多初始化的邏輯必須在XML文件中描述。一旦該類被工作臺(tái)加載,該類將可以控制動(dòng)作的啟用與禁用。如果動(dòng)作被選中,將執(zhí)行run()方法完成需要的功能。 

    下面是一個(gè)典型的實(shí)現(xiàn)類: 
        
    package first.plugin.action;
        import org.eclipse.jface.action.IAction;
        import org.eclipse.jface.dialogs.MessageDialog;
        import org.eclipse.jface.viewers.ISelection;
        import org.eclipse.ui.IEditorActionDelegate;
        import org.eclipse.ui.IEditorPart; 
        public class ContextMenuAction implements IEditorActionDelegate { 
            @Override
            public void setActiveEditor(IAction action, IEditorPart targetEditor) {
            } 

        @Override
            public void run(IAction action) {
                MessageDialog.openInformation(null, "", "我是上下文菜單");
            } 

        @Override
            public void selectionChanged(IAction action, ISelection selection) {
            }

    }

    posted on 2010-02-06 10:37 李贊紅 閱讀(2292) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    <2010年2月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28123456
    78910111213

    統(tǒng)計(jì)

    常用鏈接

    留言簿(12)

    隨筆檔案(28)

    相冊(cè)

    技術(shù)友情博客

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲中文字幕在线乱码| 亚洲国产精品无码久久青草| 亚洲va无码手机在线电影| 九九久久精品国产免费看小说 | 免费人成在线观看播放国产| 亚洲 欧洲 日韩 综合在线| 日韩欧美一区二区三区免费观看| 亚洲人成电影在线观看青青| 日本XXX黄区免费看| 亚洲中文字幕一二三四区| 在线精品免费视频无码的| 久久亚洲精品成人无码| 亚洲不卡AV影片在线播放| 一级特黄录像免费播放中文版| 中文字幕亚洲激情| 日韩午夜理论免费TV影院| 亚洲国产av美女网站| 免费爱爱的视频太爽了| 牛牛在线精品观看免费正| 亚洲精品无码午夜福利中文字幕 | 黄页网站在线视频免费| 亚洲中文字幕在线观看| 久久免费看黄a级毛片| 亚洲欧美熟妇综合久久久久| 免费午夜爽爽爽WWW视频十八禁 | 亚洲伊人成无码综合网| 一级成人a毛片免费播放| 亚洲成电影在线观看青青| 日韩毛片无码永久免费看| 国产成人无码精品久久久免费| 午夜亚洲AV日韩AV无码大全| 四虎在线成人免费网站| 国产精品亚洲一区二区三区| 亚洲欧洲精品无码AV| 国拍在线精品视频免费观看| 精品成人一区二区三区免费视频| 国产亚洲高清不卡在线观看| 在线看片无码永久免费视频| 国产精品成人69XXX免费视频| 久久夜色精品国产噜噜噜亚洲AV| 国产精品二区三区免费播放心|