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

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

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

    Java海闊天空

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

    [翻譯]eclipse插件開發(1-1):action

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

    上面的圖片顯示了插件中能添加動作的眾多區域:

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

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

    3、  在工作臺窗口的主工具欄和菜單上添加動作 

    本文將對上面的種種進行演示,并通過實例形式向您詳細講解。 

    我們假設您有插件開發的基礎,如果想獲得在eclipse平臺上開發插件的更多信息,請閱讀Jim Amsden的入門文章“Your First Plug-in”,該示例的運行結果,請點擊“running the examples”。 

    在上下文菜單中添加動作

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

    示例一:為默認的文本編輯器添加新的動作
          讓我們看看如何向默認的文本編輯器添加一個動作:
        ①<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向指定編輯器添加了一個上下文菜單,該擴展叫viewerContribution(①),可以用于視圖和編輯器。 

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

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

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

    下面是一個典型的實現類: 
        
    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 李贊紅 閱讀(2287) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

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

    統計

    常用鏈接

    留言簿(12)

    隨筆檔案(28)

    相冊

    技術友情博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近免费中文字幕mv在线电影| 无遮挡呻吟娇喘视频免费播放| 久久精品成人免费网站| 亚洲一区视频在线播放| 国产成人精品免费视频大全| 国产亚洲美女精品久久久| 97国免费在线视频| 亚洲国产精品久久久久| 久久免费看黄a级毛片| 亚洲日韩乱码久久久久久| 免费一本色道久久一区| 亚洲第一街区偷拍街拍| 免费大黄网站在线看| 国产V片在线播放免费无码| 亚洲AV日韩精品久久久久| 久久精品免费观看| 亚洲黄网站wwwwww| 无码专区永久免费AV网站| 色天使亚洲综合一区二区| 亚洲日本va午夜中文字幕久久| a级毛片免费完整视频| 久久亚洲sm情趣捆绑调教| 成人黄动漫画免费网站视频 | 亚洲电影在线播放| 成年女人色毛片免费看| 美女18一级毛片免费看| 国产亚洲人成无码网在线观看| 99久久久国产精品免费牛牛| 狠狠色香婷婷久久亚洲精品| 免费A级毛片在线播放不收费| 在线观看免费无码视频| 亚洲成在人线中文字幕| 日韩一区二区免费视频| 国产亚洲精品免费视频播放| youjizz亚洲| 亚洲伊人色欲综合网| 永久免费毛片在线播放| 亚洲一区二区三区免费| 亚洲国产成人久久三区| 亚洲精品WWW久久久久久 | 日本免费中文字幕在线看|