后羿射日

          在Eclipse的海洋中一口接一口的喝水~~
          隨筆 - 3, 文章 - 4, 評(píng)論 - 18, 引用 - 0
          數(shù)據(jù)加載中……

          初識(shí)ecore文件

          今天終于成功的編譯了一個(gè)ecore文件,輸出的結(jié)果是genmodel文件,然后在用這個(gè)genmodel文件generate model/edit/editor,就能夠得到一個(gè)最簡(jiǎn)單的屬性輸入框。

          在編輯這個(gè)ecore文件的時(shí)候,遇到了幾個(gè)問(wèn)題,雖然都不大但是我覺(jué)得有一定的代表意義。從ibm的redbook上面幾乎都能找到答案,然后再加以實(shí)踐,問(wèn)題都能解決。

          先看一眼總體的截圖:
          ----------------------------------------------------------------------------------------------
          diagram.gif
          ----------------------------------------------------------------------------------------------
          第一個(gè)問(wèn)題就是根據(jù)ecore生成genmodel的時(shí)候系統(tǒng)不響應(yīng),點(diǎn)擊“finish”仍處在那個(gè)界面上。原因很簡(jiǎn)單,就是ecore文件有錯(cuò)誤。我ft,有錯(cuò)誤為什么不提示?無(wú)論是在eclipse還是在其他的xml文件查看器比如xmlspy2005pro都沒(méi)有出錯(cuò)提示,以至于我一致以為是我的腦子出了問(wèn)題:(

          大方向找對(duì)就開(kāi)始解決錯(cuò)誤。

          第二個(gè)問(wèn)題是每一個(gè)Eclass和所有的Eattribute和Ereference都必須由Etype,還不能是默認(rèn)的。如果在UML圖中是java基礎(chǔ)類比如int,boolean,String等等都可以選擇E*與其對(duì)應(yīng)的類(Eint,Eboolean,EString)。

          第三個(gè),如果遇到了非常用類,比如InputStream等,就需要在試圖中創(chuàng)建一個(gè)新的EDataType,用它來(lái)代表我們要用的類。下圖是InputStream的屬性列表,結(jié)合他簡(jiǎn)單的說(shuō)一下如何定制這種EDataType:
          ------------------------------------------------------------------------------------------------
          InputStream.gif
          ------------------------------------------------------------------------------------------------

          DefaultValue和Serializable不用去管它,Instance Class Name里面輸進(jìn)去要指代的原始類,這里我們輸入的是java.io.InputStream,Name里面輸入的是這個(gè)對(duì)象的名字。保存以后在EAttribute元素的EType里面就能看到我們自己定義的類了。


          p.s. 
              genmodel文件不能在Eclipse編輯器中修改,只能按照文本方式修改,非常的不方便,因?yàn)楹苡锌赡艹鲥e(cuò)。這個(gè)時(shí)候就只能對(duì)ecore文件進(jìn)行修改,然后再生成genmodel文件。

              genmodel生成的代碼不能直接加入實(shí)現(xiàn)的接口類中的一些方法,需要在后面手動(dòng)添加。很簡(jiǎn)單,ctrl+1選擇相應(yīng)的選項(xiàng)就行了。

              我覺(jué)得emf生成的代碼只是一個(gè)框架,具體的實(shí)現(xiàn)細(xì)節(jié)似乎還需要我們手動(dòng)的輸進(jìn)去,建模要是能在完整就好了,呵呵,懶鬼:P

          posted on 2005-04-10 11:11 youthyflyer 閱讀(1135) 評(píng)論(0)  編輯  收藏 所屬分類: EMF&GEF學(xué)習(xí)和實(shí)踐


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新营市| 沧州市| 湖口县| 贡山| 九龙城区| 连平县| 塘沽区| 淮阳县| 敖汉旗| 新邵县| 房产| 通州市| 绿春县| 乌鲁木齐县| 迁西县| 靖西县| 瑞丽市| 介休市| 开原市| 山阴县| 宜兴市| 长子县| 中西区| 拉萨市| 县级市| 陇南市| 南澳县| 洮南市| 东光县| 合阳县| 遂平县| 唐海县| 中方县| 衡水市| 天全县| 甘德县| 扬州市| 县级市| 扎兰屯市| 海丰县| 垣曲县|