xiaoxiaoleemin

          天道酬勤,小小加油
          posts - 19, comments - 12, trackbacks - 0, articles - 0

          GMF:基于Reference的連接

          Posted on 2007-05-06 23:15 xiaoxiaoleemin 閱讀(1203) 評(píng)論(4)  編輯  收藏 所屬分類: GMF
              GMF中的Link有兩個(gè),分別是基于Type的和基于Reference的。對(duì)于前者,在ecore模型中有一個(gè)類對(duì)應(yīng)這個(gè)連接,創(chuàng)建一個(gè)連接即創(chuàng)建了該類的一個(gè)實(shí)例,試想,如果一個(gè)模型比較復(fù)雜,有很多連接時(shí),這種方法要在模型中要為連接建立很多與業(yè)務(wù)無(wú)關(guān)的類,使得模型非常復(fù)雜;對(duì)于后者,沒有必要為每個(gè)連接在ecore中建立一個(gè)類,而是設(shè)置該連接對(duì)應(yīng)的Reference即可。下面用一個(gè)school的模型來(lái)說(shuō)明基于Reference的連接的建立方法,這個(gè)模型非常簡(jiǎn)單,如下圖(用gmf插件生成的對(duì)應(yīng)school.ecore的school.ecore_diagram):一個(gè)學(xué)校里邊有很多老師和學(xué)生,每個(gè)老師會(huì)指導(dǎo)多個(gè)學(xué)生,這里的指導(dǎo)關(guān)系是Teacher類的一個(gè)Reference,名字為tutoringStudents,我們打算在GMF編輯器中用Node來(lái)表示老師和學(xué)生,老師對(duì)學(xué)生的指導(dǎo)關(guān)系用Link來(lái)表示。

              該模型命名為school.ecore, 然后生成school.genmodel,再按照常規(guī)方法建立school.gmfgraph, school.gmftool.
              最后建立最關(guān)鍵的school.gmfmap,首先為mapping元素建立兩個(gè)Top Node Reference,分別對(duì)應(yīng)Teacher和School,然后建立代表老師指導(dǎo)學(xué)生關(guān)系的link mapping,其屬性頁(yè)中各項(xiàng)按照下圖指定值:
             
              注意,Domain meta information中前三項(xiàng)都空著,只在最后一項(xiàng)中指定代表該連接的Reference即可。Validate無(wú)錯(cuò)后,生成school.gmfgen,在生成Diagram code,最后運(yùn)行效果圖如下:

                看一下保存semantic model的school文件: 
          <?xml version="1.0" encoding="UTF-8"?>
          <School:School xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:School="http://example.School">
            
          <teachers name="ProfessorLi" tutoringStudents="//@students.0 //@students.1"/>
            
          <students name="Tom"/>
            
          <students name="Mary"/>
          </School:School>

             

          Feedback

          # re: GMF:基于Reference的連接  回復(fù)  更多評(píng)論   

          2007-05-13 19:18 by zhanglei
          謝謝lz的講解~~
          我也正在學(xué)習(xí)GMF
          現(xiàn)在做了一個(gè)UML時(shí)序圖的GMF應(yīng)用

          歡迎交流~~ 一起學(xué)習(xí)GMF

          zhanglei07@sei.pku.edu.cn

          # re: GMF:基于Reference的連接[未登錄]  回復(fù)  更多評(píng)論   

          2007-05-15 14:10 by xiaoxiaoleemin
          呵呵,四樓的

          # re: GMF:基于Reference的連接  回復(fù)  更多評(píng)論   

          2008-04-18 15:21 by start
          如果節(jié)點(diǎn)有3個(gè)以上,怎么可以創(chuàng)建一個(gè)連接可以連接他們中的任意兩個(gè)呢?

          # re: GMF:基于Reference的連接  回復(fù)  更多評(píng)論   

          2010-04-08 10:28 by 徐棟
          請(qǐng)問怎樣用gmf做一個(gè)時(shí)序圖啊,我現(xiàn)在做出一個(gè)類似的,但是生命線是斜的,怎樣能做成垂直的呢?@zhanglei

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 明溪县| 枣强县| 民权县| 贡山| 南岸区| 长沙市| 大石桥市| 黑水县| 类乌齐县| 罗城| 淳安县| 建始县| 宾川县| 凌云县| 台湾省| 阿合奇县| 嘉峪关市| 凯里市| 章丘市| 马鞍山市| 邵阳县| 安吉县| 大安市| 叶城县| 万宁市| 尚志市| 金塔县| 宿州市| 台北县| 海门市| 天峻县| 大名县| 钟山县| 柯坪县| 浮山县| 义乌市| 浦城县| 永新县| 冷水江市| 嘉黎县| 三台县|