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

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

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

    很久很久以前

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      34 隨筆 :: 4 文章 :: 17 評論 :: 0 Trackbacks


    現(xiàn)在來討論一下emf所生成的幾個plugin。一般通過ecore模型可以生成三個插件分別是emf模型,emf.edit和emf.editor。
    讓我們現(xiàn)在看模型插件
        對于所有的EPackage,都會生成兩個或三個java package,本別是base package(*),implemention package(*.impl),tool package(*.util)。其中,第三個包是可選的,這取決于生成屬性的設(shè)置,默認(rèn)是生成。包名(*)也是在生成屬性中設(shè)置的。
        對于所有EClass,在base package中生成相應(yīng)的interface,而其java實(shí)現(xiàn)則在impl包中,如果一個EClass繼承于另一個EClass,那么生成的interface和implemention都繼承于相應(yīng)的超類的interface和implemention。如果這個類有多個超類,那么在eSuperTypes中的第一個class將作為主超類(primary supertype)。對于這個子類的實(shí)現(xiàn)它將繼承主超類的實(shí)現(xiàn),并且實(shí)現(xiàn)其他超類接口中的方法。
        對于Feature,getter和setter方法在類和接口中被定義。如果一個一個feature(成員變量)不是volatile,那么它的值會被存儲在一個量值(field)中。如果一個feature是只讀的,那么只生成它對應(yīng)的getter方法。對于多值屬性一般使用EList表示,而單值就用那個屬性的類型表示。EList的類型取決于模型的約束,例如,一個non-containment reference將會使用EObjectWithInverseResolvingEList,對于一個containment reference將會使用EObjectContainmentWithInverseEList表示。
        對于Operation,在包含類(containing class)的接口中生成一個公共方法標(biāo)簽,在對應(yīng)的實(shí)現(xiàn)中生成實(shí)現(xiàn)骨架。
        對于DataType,其中EEnum產(chǎn)生于一個繼承了org.eclipse.common.util.AbstractEnumerator的實(shí)現(xiàn)。對于其他的EDataType,是沒有接口和實(shí)現(xiàn)生成的,它們的實(shí)例化類就是直接使用了EAttribute的類型。
    再來看看edit插件:
        對于edit插件provider package中的所有類都有相應(yīng)的ItemProviders類生成。更進(jìn)一步,對于整個插件有一個EMFPluginClass生成。ItemProvider類繼承于org.eclipse.emf.edit.provider.ItemProviderAdaptor,用于適配模型中相應(yīng)的EObject(所有emf類的基類)。當(dāng)模型對象由于fireNotifyChanged()改變,ItemProvider會傳送相應(yīng)的通知,并過濾其他的。當(dāng)你生成插件時,你可以控制哪些通知被過濾。
        ItemProvider也管理屬性描述(property descriptors)對于所有的featur of the class,通過getImage和getText方法來管理類的icon和descrition。
        對于所有的ItemProvider都有一個ItemProviderAdaptorFactory。
    最后時editor插件:
        對于所有的模型都會再presentation package中生成三個類。
         一個多頁編輯器,它給模型創(chuàng)建幾個不同的jface viewer,包含一個TreeViewer,使用edit插件中的ItemProvider作為這個treeviewer的content和label的provider。這個editor還創(chuàng)建outline和property來顯示在viewer中選中對象的屬性。
         一個ActionBarContributor,它被用于對編輯器視圖中選中的item所創(chuàng)建的context menu添加選項(xiàng)。
         最后是一個向?qū)В试S你創(chuàng)建一個包含模型對象的一個實(shí)例的資源(resource)。

       

     

    posted on 2006-02-19 20:46 Long Long Ago 閱讀(694) 評論(0)  編輯  收藏 所屬分類: EMFEclipse

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成年女人午夜毛片免费视频| 国产色婷婷精品免费视频| 亚洲性69影院在线观看| 一二三四免费观看在线电影| 黄色免费在线观看网址| 久久国产亚洲观看| 大学生a级毛片免费观看| fc2成年免费共享视频网站| 亚洲日本在线观看| 国产美女精品久久久久久久免费| 三年片免费观看大全国语| 亚洲制服丝袜一区二区三区| 亚洲av无码专区在线观看素人| 一级毛片在线免费看| 欧美亚洲精品一区二区| 亚洲嫩草影院久久精品| 国产极品粉嫩泬免费观看 | 亚洲熟妇无码八V在线播放| 亚洲日韩精品无码专区网站| 亚洲免费在线视频观看| 一个人看的免费视频www在线高清动漫| 久久狠狠高潮亚洲精品| 亚洲美日韩Av中文字幕无码久久久妻妇| 最近免费最新高清中文字幕韩国| 国产大陆亚洲精品国产| 亚洲国产日产无码精品| 亚洲欧洲日产国码av系列天堂| 午夜dj免费在线观看| 69av免费观看| 在线视频网址免费播放| 亚洲.国产.欧美一区二区三区| 久久丫精品国产亚洲av不卡| 2022中文字字幕久亚洲| 四虎成人免费大片在线| 亚洲大片免费观看| 中文在线免费观看| 美美女高清毛片视频黄的一免费| 精品亚洲成在人线AV无码| 久久亚洲私人国产精品| 亚洲AV无一区二区三区久久| 亚洲不卡AV影片在线播放|