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

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

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

    posts - 22,comments - 35,trackbacks - 0

    一、新建項(xiàng)目。?
      按照上一篇的新建插件項(xiàng)目的方法,新建一個(gè)名為myplugin2的插件項(xiàng)目,注意:在最后一步選擇“建立白空插件項(xiàng)目”,除此,其它都一樣。截圖如下:


    ???
    ???????附注:發(fā)現(xiàn)又有上一篇的錯(cuò)誤,中文版的Eclipse在新建項(xiàng)目時(shí),比較容易有“由于類(lèi)路徑錯(cuò)誤(不完整或涉及循環(huán)),所以未構(gòu)建項(xiàng)目?!边@類(lèi)的錯(cuò)誤。好辦,因?yàn)橹形陌皇且恍┪谋疚募瑢?duì)開(kāi)發(fā)沒(méi)用,用前面一篇所說(shuō)的方法刪除那些對(duì)中文包的引用(前面字符為ECLIPSE_HOME_LANGUAGE_LINK…….),如下圖:??

    ??
    二、插件開(kāi)發(fā)的幾個(gè)關(guān)注點(diǎn)。?
      a)?庫(kù)引用。如上附注所說(shuō)庫(kù)引用是在建立插件初期要設(shè)置好的地方,不過(guò)一經(jīng)設(shè)置基本不需要再改變。功能類(lèi)似于JDK的classpath或者Jbuilder里的庫(kù)引用。?
      b)?插件JAVA源代碼。今后主要的工作,狂寫(xiě)代碼吧。主要都是一些*.JAVA文件。?
      c) 項(xiàng)目根目錄下的plugin.xml文件。這個(gè)文件是插件的入口文件,Eclipse根據(jù)這個(gè)文件中的設(shè)置來(lái)加載插件。代碼寫(xiě)完了,要讓Eclipse加載你的代碼就要在這里面做些手腳了,這些手腳有個(gè)術(shù)語(yǔ)叫“設(shè)置擴(kuò)展點(diǎn)”。象在Eclipse的加個(gè)主菜單、視圖、按鈕,都在這個(gè)文件里面做不同的擴(kuò)展點(diǎn),后面的教程會(huì)看到這個(gè)文件的使用。要人會(huì)說(shuō)那我開(kāi)發(fā)一個(gè)系統(tǒng)會(huì)有很多的菜單和按鈕,那是不是都要設(shè)置這個(gè)文件呢?回答:不必,這里面只設(shè)置主要和Eclipse接壤的擴(kuò)展點(diǎn),其它系統(tǒng)里的菜單按鈕就沒(méi)必要了,今后會(huì)講到。?
    ??
    三、設(shè)置庫(kù)引用。?
      在刪除了上面附注所說(shuō)的無(wú)用且出錯(cuò)的引用,接下來(lái)我們要加入一些開(kāi)發(fā)插件要用到的庫(kù)。是那些呢?呵呵,前面我們還是用向?qū)Ы⒘艘粋€(gè)helloword插件嗎,參考它的就行了。如下圖:?

    ??
      手工加可真累,這里有個(gè)好辦法。把目錄C:\eclipse2.1.3\eclipse\workspace\myplugin\下的.classpath文件拷貝到C:\eclipse2.1.3\eclipse\workspace\myplugin2目錄就行了。所有關(guān)于庫(kù)引用的設(shè)置全保存在這個(gè)文件中。最后別忘記刷新一下項(xiàng)目,如下圖所示:?


    附注說(shuō)明:

      有些文章在這里是用“文件>導(dǎo)入...>外部插件和段”來(lái)提供插件開(kāi)發(fā)支持庫(kù)的引用,本文不采用這種方法,因?yàn)檫@種會(huì)將支持庫(kù)(也是一種插件項(xiàng)目)會(huì)新建很多相應(yīng)項(xiàng)目,讓開(kāi)發(fā)界面顯得很亂。還不如本文所用的建立庫(kù)引用變量的方法方便簡(jiǎn)潔。??
    ??

    四、寫(xiě)源代碼。?
      a)?新建一個(gè)包。方法如下圖所示。?
       

      包名如下:?

       
    ??
      結(jié)果如下:?

       

    ??
      b)?然后將上一章的myplugin的SampleAction直接移動(dòng)本項(xiàng)目myplugin2中就可以了(Eclipse支持鼠標(biāo)拖拉操做)。?
      c)??本文SampleAction做了一些小修改(刪除了注釋和構(gòu)造函數(shù))。代碼如下:??

    public?class?SampleAction?implements?IWorkbenchWindowActionDelegate?{??
    ????private?IWorkbenchWindow?window;??
    ????public?void?run(IAction?action)?{??
    ????????//這是打開(kāi)一個(gè)提示窗口??
    ????????MessageDialog.openInformation(window.getShell(),?"myplugin?插件",?"這是手工做的插件");??
    ????}??
    ????public?void?selectionChanged(IAction?action,?ISelection?selection)?{}??
    ????public?void?dispose()?{}??
    ????public?void?init(IWorkbenchWindow?window)?{??
    ????????this.window?=?window;??
    ????}??
    }??

    ??

    五、在plugin.xml文件中加入擴(kuò)展點(diǎn)的代碼。?
      庫(kù)將本項(xiàng)目plugin.xml文件打開(kāi),并轉(zhuǎn)到其源代碼視圖。將如下代碼加入到“</runtime>”之后。(這些xml還是從上一章的項(xiàng)目搬過(guò)來(lái)的??

    <requires>??
    ??????<import?plugin="org.eclipse.core.resources"/>??
    ??????<import?plugin="org.eclipse.ui"/>???
    </requires>??
    <extension?point="org.eclipse.ui.actionSets">??
    ??????<actionSet?label="樣本操作集"?visible="true"?id="myplugin.actionSet">??
    ?????????<menu?label="樣本菜單"?id="sampleMenu">??
    ????????????<separator?name="sampleGroup">?</separator>??
    ?????????</menu>??
    ?????????<action??
    ???????????????label="樣本操作"??
    ???????????????icon="icons/sample.gif"??
    ???????????????class="com.glchengang.SampleAction"??
    ???????????????tooltip="Hello,Eclipse?world"??
    ???????????????menubarPath="sampleMenu/sampleGroup"??
    ???????????????toolbarPath="sampleGroup"??
    ???????????????id="com.glchengang.SampleAction">??
    ?????????</action>??
    ?????????<action??
    ???????????????label="樣本操作2"??
    ???????????????icon="icons/sample.gif"??
    ???????????????class="com.glchengang.SampleAction"??
    ???????????????tooltip="Hello,Eclipse?world2"??
    ???????????????menubarPath="sampleMenu/sampleGroup2"??
    ???????????????toolbarPath="sampleGroup2"??
    ???????????????id="com.glchengang.SampleAction2">??
    ?????????</action>??
    ??????</actionSet>??
    ???</extension>??
    ??
    說(shuō)明:??
      a) requires域中定義了該插件所要使用的依賴(lài)插件,隨著開(kāi)發(fā)的不斷深入,這里將會(huì)填加更多的引用,現(xiàn)在兩項(xiàng)就夠了?
      b) 在extension中說(shuō)明了要們要擴(kuò)展org.eclipse.ui.?actionSets擴(kuò)展點(diǎn),?<actionSet>…..</?actionSet?>表示一個(gè)action組(按鈕、菜單)。還有其它類(lèi)型的擴(kuò)展點(diǎn),如org.eclipse.ui.views是視圖的擴(kuò)展點(diǎn),org.eclipse.ui.editors是編輯器的擴(kuò)展點(diǎn),各種擴(kuò)展點(diǎn)在eclipse的幫助中有詳細(xì)的說(shuō)明。label是顯示的名稱(chēng)。id是唯一標(biāo)識(shí)符,只要保證在plugin.xml文件不存在重復(fù)的id就行了,這里建議以包路徑和類(lèi)名的組合來(lái)做為id。?
      c) <menu>….</menu>表示菜單 separator標(biāo)簽是一個(gè)結(jié)束符,它可以對(duì)菜單分組?
      d) <action>....</action>表示按鈕。Icon是圖片的路徑,絕對(duì)路徑是什么大家實(shí)際對(duì)照就知道了,如果eclipse找不到這個(gè)圖片,默認(rèn)是一個(gè)紅色實(shí)心小框。Class是這個(gè)按鈕所對(duì)應(yīng)的類(lèi),注意把包名寫(xiě)全,這樣比較規(guī)范些。menubarPath表示把這個(gè)action做成一個(gè)菜單放在上前<menu>….</menu>定義的主菜單下。toolbarPath表示把這個(gè)action做成一個(gè)工具欄按鈕。在這里為了方便比較我將這個(gè)action的設(shè)置復(fù)制成了兩份,大家可以自己改改其中的設(shè)置,然后看看實(shí)際效果。?
      e) 各詳細(xì)的plugin.xml大家可以參考eclipse自帶的幫助文件,這里僅做一個(gè)入門(mén)性的說(shuō)明。?
    ??
    六、按鈕前面一章所說(shuō)的方法運(yùn)行插件(運(yùn)行之前注意將原來(lái)那個(gè)向?qū)ё龅膍yplugin項(xiàng)目關(guān)閉掉,關(guān)閉方法:鼠標(biāo)右鍵點(diǎn)擊此項(xiàng)目->彈出菜單中選擇關(guān)閉項(xiàng)目)。插件效果如下圖??

    ??
    posted on 2006-12-21 17:34 kelven 閱讀(1537) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java 、其它
    主站蜘蛛池模板: 羞羞视频免费观看| 91av视频免费在线观看| 亚洲中文字幕在线乱码| 三年片在线观看免费观看大全动漫| 无码乱人伦一区二区亚洲一 | 日本阿v免费费视频完整版| 亚洲中文字幕无码av永久| 亚洲成人影院在线观看| 99re6热视频精品免费观看| 亚洲精品成a人在线观看夫| 丝袜熟女国偷自产中文字幕亚洲| 999久久久免费精品播放 | 1000部拍拍拍18勿入免费视频下载 | 免费一级e一片在线播放| 国产自国产自愉自愉免费24区 | 久久久精品免费视频| 亚洲欧洲免费无码| 国产亚洲一区二区在线观看 | 亚洲精品高清无码视频| 成人a视频片在线观看免费| 四虎影视无码永久免费| 亚洲熟女乱色一区二区三区| 亚洲日韩欧洲乱码AV夜夜摸| 在线精品免费视频无码的| 精品视频在线免费观看| 立即播放免费毛片一级| 亚洲va久久久噜噜噜久久男同| 日本高清免费中文字幕不卡| 99在线免费观看视频| 青青久久精品国产免费看| 国产成人精品日本亚洲专| 亚洲妇熟XXXX妇色黄| 免费乱码中文字幕网站| 国产日本一线在线观看免费| 国产一精品一av一免费爽爽| 美女被羞羞网站免费下载| 在线观看亚洲AV日韩AV| 久久精品国产亚洲av高清漫画 | 美女尿口扒开图片免费| 国产成人精品日本亚洲18图 | 免费毛片在线看不用播放器|