锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品美女久久7777777,亚洲熟妇无码一区二区三区导航 ,亚洲精品无码乱码成人http://www.tkk7.com/xiaoxiaoleemin/category/20295.html澶╅亾閰嫟錛屽皬灝忓姞娌?/description>zh-cnTue, 08 May 2007 03:17:10 GMTTue, 08 May 2007 03:17:10 GMT60EMF寤烘ā甯歌闂http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/07/115626.htmlxiaoxiaoleeminxiaoxiaoleeminMon, 07 May 2007 06:10:00 GMThttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/07/115626.htmlhttp://www.tkk7.com/xiaoxiaoleemin/comments/115626.htmlhttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/07/115626.html#Feedback0http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/115626.htmlhttp://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/115626.html    1.Ecore Editor涓牴鍏冪礌鐨勭洿鎺ュ瓙鍏冪礌灞炴ч〉涓湁“Ns Prefix"鍜?Ns URI"涓ら」闇瑕佽緗紝鍓嶈呭彲浠ヨ緗負妯″瀷鐨勫悕瀛楋紝鍚庤呴殢渚胯緗竴涓猆RI鍦板潃錛屽"http://"+妯″瀷鍚嶅瓧銆傚鏋滆繖涓ら」涓嶈緗紝閭d箞褰撲慨鏀逛簡ecore妯″瀷鍚庯紝浠巊enmodel涓?#8220;Reload" ecore妯″瀷鏃跺嚭閿欍?br>    2.鏌愪釜EReference濡傛灉澶氶噸鎬т負"0...*",鍒欏湪灞炴ч〉涓妸lower bound璁劇疆涓?錛寀pper bound璁劇疆涓?1銆?br>    3.genmodel鏍瑰厓绱犵殑絎竴灞傚瓙鍏冪礌鐨勫睘鎬ч〉涓紝"All"綾誨埆涓?#8220;prefix”灞炴у兼槸鎸嘐MF鐢熸垚鐨勪唬鐮佷腑Factory鍜孭ackage絳夌被鐨勫墠緙錛屽彲浠ユ寚瀹氫負妯″瀷鍚嶅瓧錛岄瀛楁瘝澶у啓浠ョ鍚堢被鍚嶇殑涔犳儻錛?#8220;base package”灞炴у兼槸鐢熸垚鐨勫悇涓寘鐨勫墠緙錛屽亣璁炬寚瀹氫負“com.example"銆傜劧鍚庢湁“Ecore”綾誨埆錛屽叾涓殑鍚勪釜灞炴у兼槸浠巈core妯″瀷涓榪囨潵鐨勶紝涓嶅彲淇敼錛屽叾涓?#8220;Package”綾誨埆涓嬬殑"Name"灞炴у兼槸鍖呭悕鐨勪竴閮ㄥ垎錛堝亣璁炬寚瀹氫負model錛夛紝鎺ュ湪鍓嶉潰鐨刡ase package鍊間箣鍚庯紝閭d箞鐢熸垚鐨凪odel 閮ㄥ垎浠g爜鍒嗗埆鏈変笁涓寘錛歝om.example.model; com.example.model.impl; com.example.model.util. 
   btw錛氬湪鏈夌殑GMF 鐗堟湰涓紝濡傛灉鍖呭悕瀛樺湪棣栧瓧姣嶅ぇ鍐欑殑鍗曡瘝錛岄偅涔堢敓鎴愪唬鐮佺殑鏃跺欎細鍑洪敊銆?br>


]]>
濡備綍鏄劇ずPropertySheet瑙嗗浘http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/06/115517.htmlxiaoxiaoleeminxiaoxiaoleeminSun, 06 May 2007 09:24:00 GMThttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/06/115517.htmlhttp://www.tkk7.com/xiaoxiaoleemin/comments/115517.htmlhttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/06/115517.html#Feedback2http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/115517.htmlhttp://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/115517.html闃呰鍏ㄦ枃

]]>
銆奅MF錛欰 Developer's Guide銆嬭涔︾瑪璁扮涓夌珷 錛歁odel Editing with EMF.Edit錛堜笅錛?/title><link>http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115439.html</link><dc:creator>xiaoxiaoleemin</dc:creator><author>xiaoxiaoleemin</author><pubDate>Sat, 05 May 2007 12:44:00 GMT</pubDate><guid>http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115439.html</guid><wfw:comment>http://www.tkk7.com/xiaoxiaoleemin/comments/115439.html</wfw:comment><comments>http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/115439.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/115439.html</trackback:ping><description><![CDATA[     鎽樿: 涓婁竴閮ㄥ垎涓紝鎴戜滑鐪嬪埌浜嗗浣曢氳繃content鍜宭abel provider鏉ユ樉紺篍MF妯″瀷錛岃繖涓閮ㄥ垎浠嬬粛濡備綍淇敼銆佺紪杈慐MF妯″瀷銆侲MF.Edit鏀寔鍩轟簬Command鐨勬ā鍨嬬紪杈戞柟寮忥紝鍙互鑷姩鐨剈ndo鍜宺edo銆侲MF.Edit鐨凜ommand Framework鍙互鍒嗕負涓ら儴鍒嗭紝絎竴閮ㄥ垎鏄痗ommon command framework錛屽叾涓畾涔変簡涓浜涘熀鏈殑鍛戒護鎺ュ彛錛屽疄鐜頒簡渚嬪basic command stack,compound command絳夛紝铏界劧榪欎簺鍛戒護涓昏鐢ㄤ簬EMF.Edit,浣嗘槸瀹為檯涓婂彲浠ョ嫭绔嬩簬EMF.Edit浣跨敤錛涚浜岄儴鍒嗘槸EMF.Edit 鍛戒護錛屾槸鎸囦竴浜涗笓闂ㄧ紪杈慐Object鐨勫懡浠ゃ?nbsp; <a href='http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115439.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/xiaoxiaoleemin/aggbug/115439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/xiaoxiaoleemin/" target="_blank">xiaoxiaoleemin</a> 2007-05-05 20:44 <a href="http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115439.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆奅MF錛欰 Developer's Guide銆嬭涔︾瑪璁扮涓夌珷 錛歁odel Editing with EMF.Edit錛堜笂錛?/title><link>http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115355.html</link><dc:creator>xiaoxiaoleemin</dc:creator><author>xiaoxiaoleemin</author><pubDate>Sat, 05 May 2007 10:08:00 GMT</pubDate><guid>http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115355.html</guid><wfw:comment>http://www.tkk7.com/xiaoxiaoleemin/comments/115355.html</wfw:comment><comments>http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/115355.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/115355.html</trackback:ping><description><![CDATA[    鏈功鐨勭浜岀珷浠嬬粛浜咵MF浜х敓鐨凪odel閮ㄥ垎鐨勪唬鐮侊紝浣犲彲浠ヤ嬌鐢‥MF Edit Framework鏉ヤ負model鏋勫緩鍔熻兘寮哄ぇ鐨勮鍥懼拰緙栬緫鍣ㄣ傚湪EMF涓轟綘鐢熸垚鐨勭紪杈戝櫒閲岋紝鍙互緙栬緫錛堝鍒訛紝綺樿創錛屾嫋鎷界瓑錛夈佹樉紺簃odel錛岃繕鍙互鏃犻檺鐨剅edo/undo銆傚鏋滆繖涓紪杈戝櫒涓嶈兘瀹屽叏婊¤凍浣犵殑闇姹傦紝浣犲彲浠ュ湪姝ゅ熀紜涓婂仛涓浜涗慨鏀癸紝鑲畾姣斾粠澶村紑濮嬪啓鑺傜害鏃墮棿銆?br>    Eclipse閫氳繃JFace涓殑涓浜沄iewer鏉ユ樉紺虹粨鏋勫寲鐨勬暟鎹紝榪欎簺Viewer涓嶇洿鎺ヤ粠model涓幏鍙栬鏄劇ず鐨勬暟鎹紝鑰屾槸閫氳繃ContentProvider鍜孡abelProvider鏉ュ彇寰楄鏄劇ず鐨勫唴瀹廣佹枃鏈互鍙婂浘鏍囩瓑淇℃伅銆備笉鍚岀殑Viewer闇瑕佷笉鍚岀殑ContentProvider鍜孡abelProvider錛?br>    <table width=419 border=1> <tbody> <tr> <td vAlign=center align=left> Viewer</td> <td>ContentProvider</td> <td>LabelProvider<br></td> </tr> <tr> <td> ListViewer<br></td> <td vAlign=center align=left>IStructureContentProvider  <br></td> <td>ILabelProvider<br></td> </tr> <tr> <td vAlign=center align=left> TreeViewer</td> <td vAlign=center align=left>ITreeContentProvider <br></td> <td vAlign=center align=left>ILabelProvider <br></td> </tr> <tr> <td vAlign=center align=left> TableViewer</td> <td vAlign=center align=left>IStructureContentProvider <br></td> <td vAlign=center align=left>ITableLabelProvider <br></td> </tr> </tbody> </table>     鍏朵腑ILabelProvider鏈塯etText(Object)鍜実etImage(Object)涓や釜鏂規硶錛孖TableLabelProvider鏈塯etColumnText(Object, int)鍜実etColumnImage(Object,int)涓や釜鏂規硶錛屽畠浠箣闂存病鏈夌戶鎵垮叧緋匯侷StructureContentProvider鏈塯etElements(Object)鏂規硶錛岃繑鍥炰竴涓狾bject鏁扮粍錛岃孖TreeContentProvider鏄叾瀛愮被錛屽彟鏈夎嚜宸辯殑鏂規硶getChildren(Object),getParent(Object)鍜宧asChildren(Objecct)涓変釜鏂規硶銆?br>    EMF Edit鏄妸Eclipse UI Framework錛圝Face錛夊拰EMF Framework榪炴帴璧鋒潵鐨勬ˉ姊侊紝鍖呮嫭涓ら儴鍒嗭紝鍏朵腑org.eclipse.emf.edit鏄笌UI鏃犲叧鐨勯儴鍒嗭紝org.eclipse.emf.edit.ui鏄笌UI鏈夊叧鐨勯儴鍒嗐傚墠涓閮ㄥ垎涓昏鍖呮嫭ItemProvider鍜孋ommmand銆?br>   <span style="FONT-WEIGHT: bold"> 1.Item Providers<br>    </span>item provider,榪欎釜鍚嶅瓧鏉ユ簮浜庡畠涓烘ā鍨嬩腑鍚勪釜鍙紪杈戠殑"items"(瀵硅薄錛?provides"鍔熻兘銆傚畠閫氬父鏄疎MF Adapters錛屼絾鏄篃鍙互涓嶆槸銆俆hey are used to adapt model objects so the model object can provide all of the interfaces that it needs to be viewed and edited.<br>    item provider涓昏鏈夊洓涓姛鑳斤細浣滀負content鍜宭abel provider錛?涓篍MF瀵硅薄鎻愪緵property source錛?鎷呭綋Command Factory錛?灝咵MF妯″瀷鐨勫彉鍖栭氱煡鍙戦佺粰Viewer銆傛瘡涓猧tem provider鍙互瀹炵幇涓婅堪鍏ㄩ儴鍔熻兘鎴栬呴儴鍒嗗姛鑳斤紝閫氬父鎯呭喌涓嬶紝item provider閫氳繃緇ф壙EMF Edit鐨勫熀綾?span style="FONT-WEIGHT: bold">ItemProviderAdapter</span>鏉ュ疄鐜板叏閮ㄧ殑鍔熻兘銆備笅闈㈠垎鍒粙緇嶈繖鍥涗釜鍔熻兘鍚勮嚜闇瑕佸摢浜涙柟娉曠殑鏀寔錛?br>    <br>    (1)<span style="FONT-STYLE: italic">Content and label item providers</span><br>    EMF.Edit鍒嗗埆閫氳繃AdapterFactoryContentProvider鍜孉dapterFactcoryLabelProvider鏉ユ彁渚沜ontent provider鍜宭abel provider鐨勫姛鑳斤紝榪欎袱涓被鐨勬瀯閫犲嚱鏁伴兘闇瑕佷竴涓猘dapter factory錛圗MF鐢熸垚鐨別dit閮ㄥ垎浠g爜涓殑**ItemProviderAdapterFactory錛岃礋璐d負鐗瑰畾鐨勭被鍨嬪垱寤烘垨鑰呭畾浣峚dapter錛夛紝瀹冧滑鐨勫緢澶氭柟娉曢兘閫氳繃鍒嗗彂鍒扮浉搴旂殑Item Provider鏉ュ疄鐜般傛瘮濡俫etChildren()鐨勫疄鐜板涓嬶細<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000"> hasChildren(Object object)<br>  {<br>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Get the adapter from the factory.</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    ITreeItemContentProvider treeItemContentProvider </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> <br>      (ITreeItemContentProvider)adapterFactory.adapt(object, ITreeItemContentProviderClass);<br><br>    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> Either delegate the call or return nothing.</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> <br>      treeItemContentProvider </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">  </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> <br>        treeItemContentProvider.hasChildren(object);<br>  }</span></div>     EMF.Edit涓烘ā鍨嬩腑鐨勬瘡涓被鐢熸垚涓涓?*ItemProvider綾伙紝璐熻矗涓篣I鐨勬樉紺烘彁渚涘叿浣撶殑瀹炵幇銆傛瘡涓被鍦ㄩ粯璁ゆ儏鍐典笅閮藉疄鐜頒簡5涓帴鍙?鍏朵腑鐨勪笁涓狪StructuredItemContentProvider(涓篖istViewer鍜孴ableViewer鎻愪緵contentProvider), ITreeItemContentProvider(涓篢reeViewer鎻愪緵contentProvider),IItemLabelProvider(涓篢reeViewer鍜孡istViewer鎻愪緵labelProvider)鏄敮鎸佽繖涓鍔熻兘鐨?<br>    濡傛灉鎴戜滑瑕佺敤TableViewer鏄劇ず璁㈠崟錛堟ā鍨嬩腑瀵瑰簲PurchaseOrder綾伙級錛岄偅涔堝簲璇ヤ慨鏀筆urchaseOrderItemProvider錛屼嬌瀹冨疄鐜癐TableItemLabelProvider錛屽悓鏃跺疄鐜版柟娉昰etColumnText鍜実etColumnImage銆傝繕瑕佸湪涓鴻妯″瀷鐢熸垚鐨凱OItemProviderAdapterFactory綾葷殑鏋勯犲嚱鏁頒腑娣誨姞瀵笽TableItemLabelProvider鐨勬敮鎸侊細<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #000000">...<br>supportedTypes.add(ITableItemLabelProvider.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">);</span></div>     <br>    (2)<span style="FONT-STYLE: italic">Item Property Source</span><br>    褰撴墦寮PropertySheet鏃訛紝AdapterFactoryContentProvider榪樻槸閫氳繃adapterFactory鎵懼埌鐩稿簲鐨勫疄鐜頒簡IItemPropertySource鎺ュ彛鐨刬tem Provider銆侲MF.Edit涓殑PropertySource綾誨疄鐜頒簡榪欎竴鎺ュ彛錛屽洜姝dapterFactoryContentProvider榪斿洖PropertySource鐨勪竴涓柊鍒涘緩鐨勫疄渚嬶紙浣滀負琚変腑鐨刬tem provider鐨剋rapper錛夌粰PropertySheet錛孭ropertySource鎶婂緢澶氭柟娉曠殑瀹炵幇鍒嗗彂緇欎簡itemPropertySource銆傚叾浠g爜濡備笅錛?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> IPropertySource getPropertySource(Object object)<br>  {<br>    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (object </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> IPropertySource)<br>    {<br>      </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> (IPropertySource)object;<br>    }<br>    </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br>    {<br>      IItemPropertySource itemPropertySource </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"><br>        (IItemPropertySource)<br>          (object </span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000"> EObject </span><span style="COLOR: #000000">&&</span><span style="COLOR: #000000"> ((EObject)object).eClass() </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>            </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000"> :<br>            adapterFactory.adapt(object, IItemPropertySourceClass));<br>  <br>      </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> <br>        itemPropertySource </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">  createPropertySource(object, itemPropertySource) : </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br>    }<br>  }<br><br>  </span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000"> IPropertySource createPropertySource(Object object, IItemPropertySource itemPropertySource)<br>  {<br>    </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> PropertySource(object, itemPropertySource);<br>  }</span></div>     鑷姩鐢熸垚鐨?*ItemProvider瀹炵幇鐨?涓帴鍙d腑鐨処ItemPropertySource灝辨槸鏀寔榪欎竴鍔熻兘鐨勶紝 鍏朵腑getPropertyDescriptors()鏂規硶榪斿洖鐨勫垪琛ㄥ喅瀹氫簡PropertySheet涓樉紺虹殑鍐呭鍒楄〃銆?br>    <br>    (3)<span style="FONT-STYLE: italic">Command Factory</span><br>    EMF.Edit鎻愪緵浜嗕慨鏀笶MF瀵硅薄錛堝彲浠ndo錛夌殑鏁村鏈哄埗錛屽茍涓旀彁渚涗簡涓浜涢氱敤鐨勫懡浠ゃ傝嚜鍔ㄧ敓鎴愮殑**ItemProvider瀹炵幇鐨?涓帴鍙d腑榪樻病鎻愬埌鐨処EditingDomainItemProvider灝辨槸鏀寔榪欎竴鍔熻兘鐨勩侲MF.Edit鐨凜ommand Framework闇瑕丒ditngDomain鎺ュ彛錛屽叾涓被AdapterFactoryEditingDomain濡傚悓鍓嶉潰鎻愬埌鐨凙dapterFactoryContentProvider鍜孉dapterFactoryLabelProvider錛屽畠璐熻矗鎶婄浉搴旂殑鏂規硶(姣斿getChildren()錛実etParent()絳夛級鍒嗗彂緇欏疄鐜頒簡IEditingDomainItemProvider鐨処tem Provider銆?br>    <br>    (4)<span style="FONT-STYLE: italic">Change Notification</span><br>    褰?*ItemProvider鎵adapt鐨勫璞$姸鎬佸彂鐢熷彉鍖栨椂錛?*ItemProvider浼氭敹鍒癗otification錛屽叾NotifyChanged()浼氳璋冪敤銆侷temProvider浣滀負Observer璐熻矗榪囨護涓嶇浉鍏崇殑浜嬩歡錛岀劧鍚庢妸鐩稿叧鐨勪簨浠朵紶閫掔粰妯″瀷鐨刢entral change notifier錛岄氬父鏄疄鐜頒簡IChangeNotifier鎺ュ彛鐨?*ItemProviderAdapterFactory銆?br>    褰撴垜浠湪PropertySheet涓慨鏀笽tem錛堣鍗曢」錛屽湪妯″瀷涓搴擨tem綾伙級鐨勫悕瀛楁椂錛岄鍏圛temPropertyDescriptor鐨剆etPropertyValue()鏂規硶琚皟鐢紝瀹冧細閫氳繃SetCommand淇敼鍚嶅瓧鎴栬呯洿鎺ヨ皟鐢↖tem鐨別Set(),鎬諱箣榪欎袱縐嶆柟娉曢兘浼氳皟鐢ㄥ埌ItemImpl鐨剆etName()鏂規硶錛岃鏂規硶涓垽鏂槸鍚﹂渶瑕佸彂閫侀氱煡錛屽鏋滈渶瑕侊紝鍒欏悜鎵鏈夌洃鍚琲tem瀵硅薄鐨刟dapter鍙戦侀氱煡錛堝嵆璋冪敤瀹冧滑鐨刵otifyChanged()鏂規硶錛夛紝榪欎簺adapter鍖呮嫭ItemItemProvide錛屽畠鐨刵otifyChanged()鏂規硶璋冪敤POItemProviderAdapterFactory錛圛ChangeNotifier綾誨瀷錛夌殑fireNotifyChanged()鏂規硶錛岀劧鍚庡啀璋冪敤鎵鏈夋敞鍐岀殑listener鐨刦ireNotifyChanged()銆傝繖浜沴istener鍙兘鏄疨ropertySheet錛孫utline瑙嗗浘涓殑TreeViewer絳夛紝鏀跺埌閫氱煡鍚庯紝鏇存柊瑙嗗浘浠ュ弽鏄爉odel鐨勫彉鍖栥傚綋鏈変簨浠跺彂鐢熼渶瑕侀氱煡JFace鐨刅iewer鏃訛紝鐪熸鐨刲istener騫朵笉鏄痸iewer鏈韓錛岃屾槸瀹冪殑content provider銆?br><br>    EMF.Edit鐨勫彟涓閮ㄥ垎閲嶈鍐呭Command Framework鐣欏埌涓嬩竴閮ㄥ垎浠嬬粛銆?br><br> <img src ="http://www.tkk7.com/xiaoxiaoleemin/aggbug/115355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/xiaoxiaoleemin/" target="_blank">xiaoxiaoleemin</a> 2007-05-05 18:08 <a href="http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/05/115355.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>銆奅MF錛欰 Developer's Guide銆嬭涔︾瑪璁扮浜岀珷 錛欵MF綆浠嬶紙涓嬶級http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/04/115344.htmlxiaoxiaoleeminxiaoxiaoleeminFri, 04 May 2007 13:44:00 GMThttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/04/115344.htmlhttp://www.tkk7.com/xiaoxiaoleemin/comments/115344.htmlhttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/04/115344.html#Feedback1http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/115344.htmlhttp://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/115344.html    1.Notification and Adapter
    EMF鐢熸垚鐨勬瘡涓涓被榪樻槸涓涓狽otifier綾誨瀷錛屽洜姝ゅ綋瀹冪殑灞炴ф垨鑰呭紩鐢ㄦ敼鍙樼殑鏃跺欏彲浠ュ彂鍑洪氱煡銆傝繖鏄竴涓緢閲嶈鐨勬ц川錛岄氳繃鐩戝惉EObject鐨勫彉鍖栧彲浠ュ強鏃跺湴鏇存柊瑙嗗浘鎴栬呬笌涔嬬浉鍏寵仈鐨勫璞°侲MF涓殑Notification Observer錛圠istener錛夊彨鍋欰dapter錛屽畠闄や簡鐩戝惉浜嬩歡浠ュ錛岃繕鍙互鎵╁睍鍏跺畠琛屼負(extend behavior)絳夈備竴涓狝dapter鍙互閫氳繃濡備笅鐨勬柟寮忔坊鍔犲埌浠諱綍涓涓狤Object瀵硅薄涓婏紙姣斿PurchaseOrder錛夛細
Adapter poObserver = 
aPurchaseOrder.eAdapters().add(poObserver);
    鐒跺悗錛屽綋aPurchaseOrder鐨勭姸鎬佸彂鐢熷彉鍖栨椂錛堟瘮濡俿etBillTo鏂規硶鍙戠敓浜嗭級錛宲oObserver鐨刵otifyChanged()鏂規硶浼氳璋冪敤銆?br>    EContentAdapter,鍙互娣誨姞鍒頒竴涓牴鍏冪礌錛屼竴涓祫婧愭垨鑰呬竴涓猺esource set,瀹冨彲浠ョ洃鍚繖浜涘厓绱犵殑浠諱綍瀛愬厓绱犵殑鐘舵佸彉鍖?
    Adapter鍦ㄥ疄鐜癰ehavior extension(姣斿涓嶉氳繃緇ф壙鏉ュ疄鐜版煇涓帴鍙g殑鍔熻兘錛夌殑鍔熻兘鏃訛紝鏄氳繃AdapterFactory鏉ュ畬鎴愮殑銆傛瘮濡傦細
POAdapter adapter = (POAdapter)somePOAdaterFactory.adapt(someObject,POAdapter.class);
    榪欐牱錛孭OAdapter綾誨瀷鐨刟dapter瀵硅薄琚坊鍔犲埌浜嗗璞omeObject涓娿?br>   
    2.Object Persistence
    EMF瀵逛換浣昺odel鐨勯粯璁ょ殑搴忓垪鍖栨柟寮忔槸XMI銆傛湁涓や釜璺熷簭鍒楀寲鐩稿叧鐨勫嚱鏁幫細eContainer()鍜宔Resource().涓嬮潰閫氳繃渚嬪瓙鏉ョ湅榪欎袱涓柟娉曠殑浣滅敤錛?br>
PurchaseOrder order = POFactory.eINSTANCE.createPurchaseOrder();
order.setBillTo("123 Maple Street");

Item item = POFactory.eINSTANCE.createItem();
item.setProductName("Apples");
item.setPrice(0.45);
item.setQuantity(20);

order.getItems.add(item);
    榪欓噷PurchaseOrder鍜孖tem鍒嗗埆鏄ā鍨嬩腑浠h〃璁㈠崟鍜岃鍗曢」鐨勭被銆傝繖鏃跺鏋滆皟鐢╥tem.eContainer()浼氳繑鍥瀘rder瀵硅薄銆備絾鏄鏋滆皟鐢╫rder.eContainer()鍒欎細榪斿洖null錛屽洜涓哄畠娌℃湁琚寘鍚湪浠諱綍鍏冪礌閲岃竟銆傝繖鏃秓rder鍜宨tem鐨別Resource()鏂規硶閮戒細榪斿洖null銆?br>    涓轟簡搴忓垪鍖栬繖浜涘璞★紝鎴戜滑搴旇鎶婂畠浠姞鍏ュ埌涓涓猂esource閲岃竟銆俁esource鏄竴涓唬琛ㄥ惔绔嬪瓨鍌ㄤ綅緗紙濡傛枃浠訛級鐨勬帴鍙c傛垜浠彧闇瑕佹妸鏍瑰厓绱犲姞鍏ュ埌Resource涓嵆鍙?br>
Resource resource = ;
resource.getContents().add(order);
     榪欐椂order鍜宨tem鐨別Resource錛堬級鏂規硶閮戒細榪斿洖resource瀵硅薄錛屽叾涓璱tem鏄氳繃order鍔犲叆鍒皉esource涓幓鐨勩傝繖鏃惰皟鐢╮esource.save(null)鍚庝袱涓璞″氨淇濆瓨涓嬫潵浜嗐?br>    浣嗘槸錛屽浣曞彇寰梤esource鍛紵鍙互鍊熷姪浜嶦MF涓殑ResourceSet錛?瀹冩槸鍒涘緩Resource鐨勫伐鍘傦紝灝辨槸涓緋誨垪resource鐨勯泦鍚堛?br>
ResourceSet resourceSet = new ResourceSetImpl();
URI fileURI = URI.createFileURI(new File("mypo.xml").getAbsolutePath());
Resource resource = resourceSet.createResource(fileURI);
resource.getContents().add(order);
resource.save(null);
    淇濆瓨瀹屾垚涔嬪悗錛屽浣曡鍙栧憿錛?
PurchaseOrder order = (PurchaseOrder)resource.getContents().get(0);
    ResourceSet榪樻敮鎸佽法鏂囨。鐨勫紩鐢紙cross-document reference)錛屽綋閬囧埌璺ㄦ枃妗g殑寮曠敤鏃訛紝鍏堢敤proxy瀵硅薄鏉ヤ唬鏇垮疄闄呯殑瀵硅薄錛屽綋絎竴嬈$湡姝d嬌鐢ㄨ繖涓璞$殑鏃跺欐墠resolve鎴愮湡姝g殑瀵硅薄銆侾roxy鏄竴涓叧浜庣洰鏍囩被鐨勪竴涓湭鍒濆鍖栫殑瀵硅薄錛屼絾鏄畠鎷ユ湁瀹為檯瀵硅薄鐨刄RI銆?br>  
    3.The Reflective EObject API
   
EObject defines a generic,reflective API for manipulating instances.
   
EClass orderClass = POPackage.eINSTANCE.getPurchaseOrder();
EAttribute shipToAttribute = POPackage.eINSTANCE.getPurchaseOrder_shipTo();
orderClass.eSet(shipToAttribute, "123 street");
String shipTo = orderClass.eGet(shipToAttribute);
    涓婇潰璋冪敤orderClass鐨別Set鍜宔Get鏂規硶姣旂洿鎺ヨ皟鐢╫rder鐨剆etShipTo()鍜実etShipTo()鏁堢巼瑕佷綆涓浜涳紝鍥犱負瀹冭switch鍋氫竴浜涙潯浠跺垽鏂紝浣嗘槸瀹冪殑浼樼偣鏄痮pen up the model for completely generic access.EMF.Edit涓殑AddCommand錛孲etCommand絳夐氱敤鐨勫懡浠ゅ氨鏄氳繃榪欑鏂瑰紡瀹炵幇鐨勩?br>   
    4.Dynamic EMF
   
鍦ㄦ病鏈夌敓鎴愭ā鍨嬩腑鍚勪釜綾葷殑浠g爜涔嬪墠錛屾垜浠篃鍙互浣跨敤浠栦滑鐨勫璞★紝濡備笅錛?br>
EPackage package = EcoreFactory.eINSTANCE.createEPackage();
EClass orderClass = EcoreFactory.eINSTANCE.createEClass();
orderClass.setName("PurchaseOrder");
package.getEClassifiers().add(orderClass);

EClass itemClass =
EcoreFactory.eINSTANCE.createEClass();
itemClass.setName("Item");
package.getEClassifiers().add(itemClass);

EAttribute shipToAttribute = EcoreFactory.eINSTANCE.createAttribute();
shipToAttribute.setName("shipTo");
shipToAttribute.setEType(EcorePackage.eINSTANCE.getEString());
orderClass.getEAttributes().add(shipToAttribute);
...
    鎺ヤ笅鏉ワ紝鎴戜滑鍙互榪欐牱鍒濆鍖栬繖浜涚被鐨勫璞★細
EFactory  factory = package.getEFactoryInstance();
EObject order = factory.create(orderClass);
order.eSet(shipToAttribute, “123 street");
    鑷蟲錛孍MF鐨勫熀鏈煡璇嗗氨浠嬬粛瀹屼簡錛屽鏋滀綘鍙槸闇瑕丒MF浜х敓鐨凪odel Code錛岄偅涔堥渶瑕佸涔犵殑涓滆タ灝辮繖涔堝浜嗐傚鏋滀綘榪橀渶瑕丒MF浜х敓鐨凟dit Code鍜孍ditor Code錛岄偅涔堣繕鏈夊彟澶栫殑鐭ヨ瘑闇瑕佸涔犮?br>

]]>
銆奅MF錛欰 Developer's Guide銆嬭涔︾瑪璁扮浜岀珷 錛欵MF綆浠嬶紙涓婏級http://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/04/115251.htmlxiaoxiaoleeminxiaoxiaoleeminFri, 04 May 2007 11:13:00 GMThttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/04/115251.htmlhttp://www.tkk7.com/xiaoxiaoleemin/comments/115251.htmlhttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/05/04/115251.html#Feedback0http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/115251.htmlhttp://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/115251.htmlEMF鐨勫厓妯″瀷Ecore  
    鎴戜滑閫氬父鎵璇寸殑妯″瀷(Model)鏄寚搴旂敤紼嬪簭鏇撮珮灞傛鐨勬弿榪幫紝閫氳繃瀹冨彲浠ョ敓鎴愰儴鍒嗙敋鑷沖叏閮ㄧ殑瀹炵幇浠g爜錛屽彲浠ョ敱UML絳夋爣鍑嗙殑鏂規硶鏉ュ畾涔夈侲MF(Eclipse Modeling Framework)涓殑妯″瀷灞傛娌℃湁榪欎箞楂橈紝瀹冨拰瀹炵幇鐩存帴鍏寵仈銆?br>    EMF鏄竴涓彲浠ヤ駭鐢熶唬鐮佺殑妗嗘灦錛屼綘鍙互閫氳繃UML綾誨浘銆乆ML Schema銆丣ava Interface絳変換浣曚竴縐嶆柟寮忔潵瀹氫箟EMF妯″瀷錛岃屼笖鍙互鐢變竴縐嶆柟寮忕敓鎴愬彟澶栧叾瀹冩柟寮忥紝鍦ㄨ繖閲孍MF 妯″瀷灝辨槸鎶婅繖涓夎呯粨鍚堝湪涓璧風殑鏇撮珮灞傛鐨勪竴縐嶈〃紺恒侲MF妯″瀷鏈川涓婃槸UML綾誨浘鐨勫瓙闆嗭紝瀹冩槸鍏充簬搴旂敤鐨勭被鍜屾暟鎹殑綆鍗曟ā鍨嬨?br>    鐢ㄦ潵鎻忚堪EMF妯″瀷鐨勬ā鍨嬶紙鍏冩ā鍨嬶級鍙仛Ecore錛孍core鏈韓涔熸槸涓涓狤MF妯″瀷錛屽洜姝ゅ畠鏄嚜宸辯殑鍏冩ā鍨嬶紝涔熷彲浠ヨEcore鏄竴涓厓鍏冩ā鍨嬨侲core妯″瀷鐨勪富瑕佺粍鎴愰儴鍒嗘湁錛?br>    EClass錛氫唬琛ㄤ竴涓被錛岄氬父鏈夎嚜宸辯殑鍚嶅瓧錛?涓垨鑰呭涓睘鎬с佸紩鐢ㄣ?nbsp;  
    EAttribute:浠h〃涓涓睘鎬э紝鏈夎嚜宸辯殑鍚嶅瓧鍜岀被鍨嬨?br>    EReference:浠h〃涓や釜綾諱箣闂寸殑鍏寵仈鍏崇郴鐨勪竴绔傛湁鍚嶅瓧錛屼唬琛ㄦ槸鍚﹁仛鍚堢殑boolean綾誨瀷鐨勬爣蹇楋紝浠ュ強鐩爣綾葷殑綾誨瀷銆?br>    EDataType錛氫唬琛ㄥ睘鎬х殑綾誨瀷錛屽彲浠ユ槸int鎴栬協loat絳夊師瀛愮被鍨嬶紝涔熷彲浠ユ槸java.util.Date絳夊璞$被鍨嬨?br>    褰撴垜浠湁浜嗚嚜宸辯殑鍏蜂綋搴旂敤鏃訛紝鎴戜滑浼氬疄渚嬪寲Ecore鐨勪互涓婂厓绱犱負榪欎釜鍏蜂綋鐨勫簲鐢ㄦ瀯閫犳ā鍨嬶紝縐頒負core妯″瀷銆俢ore妯″瀷鐨勫簭鍒楀寲閲囩敤XMI(XML Metadata Interchange)錛屽洜涓虹敤鏉ュ畾涔塩ore妯″瀷鐨勪笁縐嶆柟寮忥紙Java Interface,XML Schema錛孶ML)閮芥湁鍚勮嚜鐨勭己鐐癸紝涓嶉傚悎浣滀負core妯″瀷鐨勫簭鍒楀寲褰㈠紡銆?br>   
    2.鐩墠鐢熸垚Ecore妯″瀷鐨勪笁縐嶆柟娉?/span>
    錛?錛変粠UML鐢熸垚: 鐩存帴鐢‥core Editor鎴栬匫mondo鎻愪緵鐨勫伐鍏稥clipseUML;涔熷彲浠ヤ粠EMF Project鐨刉izard涓鍏dl鏂囦歡錛涜繕鍙互浠嶶ML宸ュ叿涓鍑恒傚叾涓涓縐嶆柟娉曞彲浠ヨ嚜鍔ㄧ殑鍚屾core妯″瀷涓庡伐鍏蜂腑緙栬緫鐨勬ā鍨嬶紙濡侲clipseUML緙栬緫鐨別cd鏂囦歡錛夛紝鑰屽悗涓ょ鏂規硶褰搖ml綾誨浘鏈変簡鍙樺寲鏃墮渶瑕侀噸鏂板鍏ユ垨鑰呭鍑烘墠鑳戒嬌core妯″瀷涓庝箣鍚屾銆?br>    錛?錛変粠Java Interface鐢熸垚錛氬湪瑕佸緩妯$殑綾繪垨鑰呮柟娉曞墠鍔?#8220;@model”娉ㄩ噴錛屾瘡涓睘鎬у拰寮曠敤瀵瑰簲涓涓猤et鏂規硶錛屼笉闇瑕乻et鏂規硶銆?br>
/**
 *@model
 
*/
public interface PurchaseOrder
{
    
/**
     @model
     
*/
    String getShipTo();

    
/**
     @model
     
*/
    String getBillTo();

    
/**
     @model type="Item" containment="true"
     
*/
    List getItems();
}

    (3)浠嶺ML Schema鐢熸垚錛氭ā鍨嬩腑鐨勬瘡涓被鐢ㄤ竴涓猚omplex type琛ㄧず錛屼竴涓睘鎬х敤涓涓唴宓岀殑element琛ㄧず錛屽紩鐢ㄥ垯鐢ㄤ竴涓唴宓岀殑灞炰簬鍙︿竴涓猚omplex type鐨別lement琛ㄧず銆傝繖鏍風粰瀹歴chema涔嬪悗錛屾ā鍨嬪疄渚嬬殑搴忓垪鍖栨牴鎹畠鏉ヨ繘琛屻?br>    闄や簡浠ヤ笂涓夌瀹氫箟妯″瀷鐨勬柟寮忎箣澶栵紝榪樺瓨鍦ㄥ叾瀹冪殑鏂瑰紡錛屾瘮濡傝錛岀洰鍓岴MF姝e湪鏀寔RDB Schema錛圧ational Database)鐨勬柟寮忔潵瀹氫箟妯″瀷銆?br>    
    3.浠g爜鐢熸垚
    妯″瀷鍒頒唬鐮佺殑鑷姩鐢熸垚鏄疎MF閲嶈鐨勫姛鑳戒箣涓錛屽ぇ澶ф彁楂樹簡鐢熶駭鐜囷紝鑰屼笖鐢熸垚鐨勪唬鐮佺畝媧侊紝楂樻晥銆?br>    Ecore涓殑姣忎釜綾伙紙EClass錛変細鐢熸垚涓涓帴鍙e拰涓涓疄鐜扮被錛孍MF鐗規剰閲囩敤浜嗚繖縐嶅疄鐜頒笌鎺ュ彛鐩稿垎紱葷殑璁捐銆傚叾涓殑鎺ュ彛閮戒細緇ф壙EObject榪欎竴EMF涓殑闆嗘帴鍙o紝瀹冨鍚宩ava.lang.Object鍦↗ava涓殑鍦頒綅錛屽畠涓昏鎻愪緵浜嗕笁涓姛鑳斤細eClass錛堬級鏂規硶榪斿洖璇ュ璞$殑metaobject錛沞Container錛堬級鍜宔Resource錛堬級鍙嶅埆榪斿洖鍖呭惈璇ュ璞$殑瀵硅薄鍜岃祫婧愶紱鍙﹀eGet錛堬級銆乪Set錛堬級銆乪IsSet錛堬級鍜宔Unset錛堬級絳夋柟娉曚負璁塊棶璇ュ璞℃彁渚涗簡API.EObject榪樼戶鎵夸簡Notifier鎺ュ彛錛屽綋瀵硅薄鍙戠敓鍙樺寲鏃訛紙濡傛垚鍛樺彉閲忕殑鍙栧煎彂鐢熶簡鍙樺寲錛変細鍙戝嚭閫氱煡錛堣瀵熻呰璁℃ā寮忥級銆傛瘮濡傛敼鍙極rder瀵硅薄鐨勫睘鎬hipTo鐨剆et鏂規硶鐨勫疄鐜板涓嬫墍紺?
public void setShipTo(String newShipTo)
{
   String oldShipTo 
= shipTo;
   shipTo 
= newShipTo;
   
if(eNotificationRequired())
      eNotify(
new ENotificationImpl(this, Notification.SET, POPackage.PURCHASE_ORDER_SHIP_TO, oldShipTO, shipTo));
}
   鍏朵腑eNotificationRequired()鏄疊asicNotifierImpl綾繪彁渚涚殑鏂規硶錛屽畠榪斿洖鏄惁闇瑕佽皟鐢╡Nofifier().
   闄ゆ浠ュ錛孍MF榪樹負姣忎釜妯″瀷鍒嗗埆鐢熸垚涓涓猣actory鍜宲ackage瀵瑰簲鐨勬帴鍙e拰瀹炵幇綾匯傚叾涓?*Factory緇ф壙浜嶦Factory錛屼負妯″瀷涓瘡涓被鐨勫垱寤烘彁渚沜reate***鏂規硶錛屽洜姝ゆ垜浠湪EMF涓竴鑸笉鐢╪ew鏉ュ垱寤哄璞°傚垱寤轟竴涓鍗曞璞$殑浠g爜濡備笅錛?br>
PurchaseOrder po = POFactory.eINSTANCE.createPurchaseOrder();
    濡傛灉**Factory涓病鏈変負浣犳兂瑕佺殑綾誨瀷鐢熸垚鐗瑰畾鐨刢reate***錛堬級鏂規硶錛岄偅涔堝彲浠ョ敤鍩虹被EFactory鐨刢reate錛圗Class class)鏂規硶錛屽皢瑕佸垱寤虹殑綾誨瀷浣滀負鍙傛暟浼犲叆鍗沖彲銆傛瘮濡傝錛屾ā鍨嬩腑鐢ㄥ埌Enumeration鎴栬呰嚜瀹氫箟鐨凪apEntry錛?*Factory涓氨涓嶄細鏈夌洿鎺ュ垱寤鴻繖涓や釜綾誨瀷鐨勫璞$殑鏂規硶錛屾垜浠彲浠ョ敤***Factory.eINSTANCE.create錛?*Package.eINSTANCE.getIntToIntEntry)鏉ュ畬鎴愩?br>   **Package浣垮緱鎴戜滑鍙互璁塊棶妯″瀷涓殑Ecore鍏冩暟鎹紝妯″瀷涓殑姣忎釜綾匯佹瘡涓睘鎬с佹瘡涓紩鐢ㄩ兘鍦?*Package涓搴斾竴涓猧nt鍊箋?br>   鐢熸垚鐨?*AdapterFactory綾誨彲浠ヤ負鐗瑰畾鐨勭被鍨嬪垱寤篈dapter銆?br>
   4.浠g爜鐨勯噸鏂扮敓鎴愪笌鍚堝茍
  
EMF鐢熸垚鐨勭被銆佹帴鍙c佹柟娉曘佸煙鍓嶉潰閮芥湁“@generated"鏍囪錛屽鏋滄敼鍙樿鏍囪錛岄偅涔堝湪閲嶆柊鐢熸垚浠g爜鐨勬椂鍊欙紝榪欎釜鏍囪涓嬬殑閮ㄥ垎淇濇寔涓嶅彉錛屼笉浼氶噸鏂扮敓鎴愩傚鏋滀綘淇敼浜唃etName錛堬級鏂規硶鐨勫疄鐜幫紝涔熺浉搴旂殑淇敼浜嗚鏂規硶鍓嶉潰鐨?@generated"鏍囪錛屼絾鏄綘鏃㈡兂淇濈暀鑷繁瀵硅繖涓柟娉曠殑淇敼錛屽張鎯崇湅鐪婨MF鑷姩鐢熸垚鐨勮繖涓柟娉曟槸浠涔堟牱瀛愮殑錛岃繖鏃跺彲浠ラ氳繃鍦ㄨ綾繪枃浠朵腑娣誨姞榪欐牱涓涓柟娉曟潵瀹炵幇錛?br>
/**
  *@generated
  
*/
public String getNameGen()
{
}
   榪欎釜鏂規硶鍚嶅瓧鐨勬湯灝懼姞涓婁簡Gen鍚庣紑錛岃繖鏍稥MF鍦ㄧ敓鎴愪唬鐮佺殑鏃跺欏彂鐜頒綘鎶奼etName錛堬級鍓嶉潰鐨?#8220;@generated"鏍囪淇敼浜嗭紝榪欐椂瀹冧細媯鏌ユ湁娌℃湁getNameGen()鏂規硶瀛樺湪錛屽鏋滄湁錛屽氨鎶奼etName鐨勯粯璁ゅ疄鐜版坊鍔犲湪榪欎釜鏂規硶閲岃竟銆傞噸鏂扮敓鎴愪唬鐮佸悗錛屽彂鐜癊MF涓篻etNameGen()鏂規硶娣誨姞浜嗗疄鐜拌鍙?return name".
   EMF浠g爜鐢熸垚鍣ㄦ槸浠巊enerator model 錛?genmodel鏂囦歡錛夎屼笉鏄痗ore model錛?ecore鏂囦歡錛夋潵鐢熸垚浠g爜鐨勶紝榪欓噷鐨刧enerator model鏄痗ore model鐨凞ecorator錛屽叾涓殑GenClass淇グEClass錛?GenFeature淇グEAttribute鍜孍Reference絳夛紝鍙﹀瀹冭繕鍖呭惈鐢熸垚浠g爜鐨勫寘鍚嶏紝鐢熸垚鐨凱ackage鍜孎actory綾葷殑鍓嶇紑鍚嶅瓧絳変俊鎭?br>   generator model鍜宔core model鍒嗙鐨勫ソ澶勬槸錛孍core鍏冩ā鍨嬪彧淇濆瓨妯″瀷淇℃伅錛岃岀嫭绔嬩簬浠g爜鐢熸垚鐩稿叧鐨勪竴浜涢澶栦俊鎭傚潖澶勬槸涓や釜妯″瀷鍙兘鍑轟簬涓嶄竴鑷寸殑鐘舵侊紝鍥犳淇敼浜唀core妯″瀷鍚庯紝搴旇鍦╣enmodel涓婇噸鏂板鍏core妯″瀷錛屼互淇濇寔涓や釜妯″瀷鐨勪竴鑷存с?br>   


]]>
銆奅MF錛欰 Developer's Guide銆嬭涔︾瑪璁扮涓绔狅細Eclipse姒傝堪http://www.tkk7.com/xiaoxiaoleemin/archive/2007/03/03/101612.htmlxiaoxiaoleeminxiaoxiaoleeminSat, 03 Mar 2007 05:26:00 GMThttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/03/03/101612.htmlhttp://www.tkk7.com/xiaoxiaoleemin/comments/101612.htmlhttp://www.tkk7.com/xiaoxiaoleemin/archive/2007/03/03/101612.html#Feedback0http://www.tkk7.com/xiaoxiaoleemin/comments/commentRss/101612.htmlhttp://www.tkk7.com/xiaoxiaoleemin/services/trackbacks/101612.html

Eclipse鏄竴涓紑婧愯蔣浠墮」鐩紝瀹冪殑鐩爣鏄彁渚涙渶濂界殑宸ュ叿闆嗘垚騫沖彴銆侲clipse杞歡鍏鋒湁Common Public License錛屽氨鏄浣犲彲浠ヤ嬌鐢ㄣ佷慨鏀瑰叾涓殑浠g爜錛屽彲浠ラ噸鏂板彂甯冧負free鐗堟湰錛屼篃鍙互浣滀負縐佹湁欏圭洰鐨勪竴閮ㄥ垎銆?br>       Eclipse欏圭洰鍒嗕負涓変釜瀛愰」鐩細Eclipse欏圭洰錛孴ools欏圭洰鍜孴echnology 欏圭洰銆?br>     
       Eclipse欏圭洰錛氫富瑕佸寘鎷珽clipse寮鍙戠殑鏍稿績緇勪歡錛屽嵆Eclipse SDK錛屽畠鐢ㄤ簬鏀寔騫沖彴鎴栬呮鏋剁殑寮鍙戙侲clipse鏈韓鏄敤Java寮鍙戠殑錛屼絾鏄畠鍙互鐢ㄤ簬瀹炵幇鍏跺畠璇█鐨勫紑鍙戝伐鍏楓侲clipse欏圭洰鍙堝垎涓轟笁涓瓙欏圭洰錛歅latform錛孞DT錛圝ava Development Tools),PDE(Plugin Development Tools).鍩轟簬榪欎笁涓瓙欏圭洰瓚充互浠繪剰鎵╁睍Eclpse妗嗘灦鎴栬呭紑鍙戝叾瀹冨伐鍏楓?br>

  • Platform錛欵clpse鐨勬牳蹇冪粍浠躲傚畠鎻愪緵浜嗘彃浠跺紑鍙戝拰宸ュ叿闆嗘垚鎵闇瑕佺殑妗嗘灦鍜屾湇鍔★紝姣斿鏍囧噯鐨勫伐浣滃彴鐢ㄦ埛鐣岄潰錛岄」鐩佹枃浠跺拰鏂囦歡澶圭殑綆$悊鏈哄埗絳夈?
  • JDT鏄疛ava鐨勯泦鎴愬紑鍙戠幆澧冿紝鐢氳嚦鍙互鐢ㄤ簬寮鍙慐clipse鏈韓銆?
  • PDE涓篍clipse鎻掍歡鎻愪緵view鍜宔ditor銆侾DE寤虹珛鍦↗DT鐨勫熀紜涓婂茍涓旇繘琛屼簡鎵╁睍錛屽畠鏀寔涓浜涢潪Java鐨勬彃浠跺紑鍙戞椿鍔紝姣斿瀹氫箟鎵╁睍鐐廣?
      Tools欏圭洰錛欵clipse騫沖彴寮鍙戝嚭鏉ョ殑鍚勭涓哄叾瀹冨簲鐢ㄦ彁渚涙敮鎸佺殑宸ュ叿銆傚CDT鏄竴涓疄鐜癈++闆嗘垚寮鍙戠幆澧冪殑瀛愰」鐩紝GEF鏄竴涓彁渚涘浘褰㈢紪杈戝姛鑳界殑瀛愰」鐩紝鑰孍MF鏄竴涓敱褰㈠紡鍖栨ā鍨嬪畾涔夎漿鍖栦負妯″瀷浠g爜鐨勫瓙欏圭洰銆?br>      Technology欏圭洰錛氫負鍏沖績Eclipse鐨勭爺絀跺憳鎴栬呭鏈晫浜哄+鎻愪緵鏈轟細銆傚XML Schema Infoset Model欏圭洰灝辨槸涓涓熀浜嶦MF鐨勭敤浜庤鍙栥佹搷浣淴ML Schema鐨勫簱銆?br>       
      涓嬮潰浠嬬粛涓涓婨clipse欏圭洰鐨凱latform瀛愰」鐩殑鍑犱釜閲嶈鐗瑰緛錛?br>    錛?錛塒lug-in浣撶郴緇撴瀯錛?br>      鍦‥clipse涓紝鎻愪緵鏌愪釜鍔熻兘鐨勫熀鏈崟鍏冩垨鑰呮瀯浠舵垚涓烘彃浠訛紙Plugin錛夈侲clipse騫沖彴浠ュ強鍦ㄥ叾涓婇潰鎵╁睍鐨勫叾瀹冧竴浜涘伐鍏烽兘鏄敱涓緋誨垪鎻掍歡緇勬垚銆傛彃浠跺寘鎷繍琛屾墍闇瑕佺殑Java浠g爜銆佸浘鐗囨枃浠躲佹枃鏈枃浠躲佸悕涓篜lugin.xml鐨凪anifest鏂囦歡絳夈俻lugin.xml澹版槑浜嗚鎻掍歡涓庡叾瀹冩彃浠剁殑鍏崇郴錛氬叾涓紝Requires澹版槑瀹冪殑榪愯鎵渚濊禆鐨勫叾瀹冩彃浠訛紱Exports澹版槑瀹冪殑鍏湁綾誨鍏跺畠鎻掍歡鐨勫彲瑙佹э紱Extension Point澹版槑浜嗗叾瀹冩彃浠朵嬌鐢ㄥ畠鐨勬柟寮忥紱Extensions澹版槑瀹冩墍浣跨敤鐨勫叾瀹冩彃浠剁殑鎵╁睍鐐廣?br>     Eclipse鍚姩鏃跺厛鎵懼埌鎵鏈夊彲鐢ㄧ殑鎻掍歡錛屼絾鏄笉鍏ㄩ儴鍚姩銆傚綋鐪熸闇瑕佹煇涓彃浠剁殑鏃跺欐墠涓鴻鎻掍歡鍒嗛厤鑷繁鐨凜lass loader騫惰繍琛屾彃浠訛紝榪欑鎬ц川鎴愪負“Lazy Start”銆?br>    錛?錛夊伐浣滃彴璧勬簮錛?br>    Eclipse涓祫婧愶紙resource錛夋槸鎸囧叿鏈夊涓嬬壒鎬х殑浠諱綍鏂囦歡鎴栬呮枃浠跺す錛氬彲浠ュ湪涓婇潰娉ㄥ唽Change Listener 浠ョ洃鍚祫婧愮殑鍙樺寲錛涘彲浠ュ湪涓婇潰娣誨姞閿欒淇℃伅鎴栬匱ODO鍒楄〃絳塎arker錛涘彲浠ヨ窡韙叾鍘嗗彶鍙樺寲銆侾roject鏄竴綾葷壒孌婄殑鏂囦歡澶圭被鍨嬬殑璧勬簮錛屽嵆鏂囦歡緋葷粺涓敤鎴鋒寚瀹氱殑涓涓枃浠跺す銆?br>    錛?錛塙I妗嗘灦錛?br>    Eclipse鐨刄I妗嗘灦鍖呮嫭SWT鍜孞Face錛屼互鍙婂畾涔変簡鏁翠釜EclipseIDE鐨勬暣浣撶粨鏋勭殑宸ヤ綔鍙扮晫闈€?br>
  •  SWT 錛圫tandard Widget Toolkit)鏄竴涓嫭绔嬩簬鎿嶄綔緋葷粺鐨勫浘褰㈠簱錛屽畠灝藉彲鑳藉鐨勮皟鐢ㄦ搷浣滅郴緇熺殑native widget銆傝孞ava鐨凙WT鍙湁List錛孴ext Field鍜孊utton錛堝悇縐嶆搷浣滅郴緇熶笅榪欎簺緇勪歡鐨勫瑙傜被浼鹼級絳夊簳灞傜粍浠舵槸璋冪敤鎿嶄綔緋葷粺鐨勶紝鍏跺畠緇勪歡閮芥槸Swing鑷繁妯℃嫙銆傛墍浠WT鍜孲wing鍦ㄤ笉鍚岀殑鎿嶄綔緋葷粺涓嬪紑鍙戝嚭鏉ョ殑鐣岄潰澶栬綾諱技錛屽鑷翠笌鏈湴鎿嶄綔緋葷粺鏇翠釜涓嶅崗璋冦傝孲WT鍙湁鍦ㄦ搷浣滅郴緇熸病鏈塶ative瀹炵幇鐨勬儏鍐典笅鎵嶈嚜宸辨ā鎷燂紝鍥犳寮鍙戠殑鐣岄潰涓庢湰鍦版搷浣滅郴緇熼鏍間竴鑷淬?
  •  JFace鏄敤SWT瀹炵幇鐨勬洿楂樺眰嬈$殑宸ュ叿闆嗭紝璐熻矗鍥懼儚瀛椾綋鐨勭鐞嗐佸璇濇銆佸悜瀵箋佽繘搴︽潯絳変換鍔°侸Face騫舵病鏈夊儚鐢ㄦ埛闅愯棌SWT鐨凙PI錛屽洜姝ょ敤鎴峰彲浠ュ悓鏃朵嬌鐢↗Face鍜孲WT銆侸Face鐨勪竴涓噸瑕佸唴瀹規槸鎻愪緵鏍囧噯鐨勮瘯鍥劇被錛屽 list錛宼ree錛宼able絳夌粍浠剁殑viewer錛屽畠浠笌SWT涓殑List錛孴ree錛孴able緇勪歡瀵瑰簲錛屽彧鏄粠鏇撮珮灞傛涓婃樉紺烘暟鎹?Action Framework鐢ㄦ潵涓鴻彍鍗曞拰宸ュ叿鏉℃坊鍔犲懡浠わ紝鏄疛Face鐨勫彟涓涓昏鍐呭銆?
  • 宸ヤ綔鍙版槸鐢ㄦ埛浣跨敤Eclipse鐨勪富紿楀彛錛岀敱SWT鍜孞Face瀹炵幇銆備竴涓富紿楀彛鐢變竴緋誨垪鐨剉iew鍜宔ditor緇勬垚銆傚伐浣滃彴涓妚iew鍜宔ditor鐨勪綅緗彲浠ヨ嚜鐢辨帓鍒楋紝姣忕鎺掑垪鏂瑰紡鍙仛涓涓狿erspective銆?/li>

 



]]>
主站蜘蛛池模板: 亚洲一区日韩高清中文字幕亚洲| 男人的好看免费观看在线视频| 国产免费人成在线视频| 亚洲欧美乱色情图片| 成年18网站免费视频网站| 亚洲一区二区免费视频| 久久午夜免费视频| 亚洲中文字幕一二三四区苍井空| 日韩视频在线精品视频免费观看 | 国产亚洲成人在线播放va| 九一在线完整视频免费观看| 亚洲精品无码久久不卡| 最近免费中文字幕中文高清| 国内精品99亚洲免费高清| 久久福利青草精品资源站免费 | 99久久精品日本一区二区免费| 亚洲国产成+人+综合| 成年美女黄网站18禁免费 | 亚洲欧美日韩中文字幕一区二区三区 | 成人免费视频网址| 特级aa**毛片免费观看| 亚洲色成人中文字幕网站| 久久久精品免费视频| 亚洲一级片在线观看| 精品免费久久久久久成人影院| 农村寡妇一级毛片免费看视频| 国产专区一va亚洲v天堂| 99re在线视频免费观看| 亚洲中文字幕无码爆乳app| 亚洲av无码不卡私人影院| 免费国产污网站在线观看| 亚洲综合色7777情网站777| 免费国产一级特黄久久| 美女无遮挡拍拍拍免费视频| 亚洲精品私拍国产福利在线| 中文字幕无码免费久久99| 九九九国产精品成人免费视频| 久久精品国产亚洲AV麻豆~| 成年人免费视频观看| 在线免费观看伊人三级电影| 亚洲最大福利视频|