﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-后羿射日-随笔分类-EMF&amp;GEF学习和实践</title><link>http://www.blogjava.net/youthyflyer/category/980.html</link><description>在Eclipse的海洋中一口接一口的喝水~~</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:40:11 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:40:11 GMT</pubDate><ttl>60</ttl><item><title>初识ecore文件</title><link>http://www.blogjava.net/youthyflyer/archive/2005/04/10/3063.html</link><dc:creator>youthyflyer</dc:creator><author>youthyflyer</author><pubDate>Sun, 10 Apr 2005 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/youthyflyer/archive/2005/04/10/3063.html</guid><wfw:comment>http://www.blogjava.net/youthyflyer/comments/3063.html</wfw:comment><comments>http://www.blogjava.net/youthyflyer/archive/2005/04/10/3063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youthyflyer/comments/commentRss/3063.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youthyflyer/services/trackbacks/3063.html</trackback:ping><description><![CDATA[<P>今天终于成功的编译了一个ecore文件，输出的结果是genmodel文件，然后在用这个genmodel文件generate model/edit/editor，就能够得到一个最简单的属性输入框。<BR><BR>在编辑这个ecore文件的时候，遇到了几个问题，虽然都不大但是我觉得有一定的代表意义。从ibm的redbook上面几乎都能找到答案，然后再加以实践，问题都能解决。<BR><BR>先看一眼总体的截图：<BR>----------------------------------------------------------------------------------------------<BR><IMG height=404 alt=diagram.gif src="http://www.blogjava.net/images/blogjava_net/youthyflyer/GEF_EMF_study/diagram.gif" width=544 border=0><BR>----------------------------------------------------------------------------------------------<BR>第一个问题就是根据ecore生成genmodel的时候系统不响应，点击“finish”仍处在那个界面上。原因很简单，就是ecore文件有错误<IMG height=1 src="/FreeTextBox/Utility/spacer.gif" width=1>。我ft，有错误为什么不提示？无论是在eclipse还是在其他的xml文件查看器比如xmlspy2005pro都没有出错提示，以至于我一致以为是我的脑子出了问题:(<BR><BR>大方向找对就开始解决错误。<BR><BR>第二个问题是每一个Eclass和所有的Eattribute和Ereference都必须由Etype，还不能是默认的。如果在UML图中是java基础类比如int，boolean，String等等都可以选择E*与其对应的类（Eint，Eboolean，EString）。<BR><BR>第三个，如果遇到了非常用类，比如InputStream等，就需要在试图中创建一个新的EDataType，用它来代表我们要用的类。下图是InputStream的属性列表，结合他简单的说一下如何定制这种EDataType：<BR>------------------------------------------------------------------------------------------------<BR><IMG height=148 alt=InputStream.gif src="http://www.blogjava.net/images/blogjava_net/youthyflyer/GEF_EMF_study/InputStream.gif" width=571 border=0><BR>------------------------------------------------------------------------------------------------<BR><BR>DefaultValue和Serializable不用去管它，Instance Class Name里面输进去要指代的原始类，这里我们输入的是java.io.InputStream，Name里面输入的是这个对象的名字。保存以后在EAttribute元素的EType里面就能看到我们自己定义的类了。<BR><BR><BR>p.s.&nbsp; <BR>&nbsp;&nbsp;&nbsp; genmodel文件不能在Eclipse编辑器中修改，只能按照文本方式修改，非常的不方便，因为很有可能出错。这个时候就只能对ecore文件进行修改，然后再生成genmodel文件。<BR><BR>&nbsp;&nbsp;&nbsp; genmodel生成的代码不能直接加入实现的接口类中的一些方法，需要在后面手动添加。很简单，ctrl+1选择相应的选项就行了。<BR><BR>&nbsp;&nbsp;&nbsp; 我觉得emf生成的代码只是一个框架，具体的实现细节似乎还需要我们手动的输进去，建模要是能在完整就好了，呵呵，懒鬼:P</P><img src ="http://www.blogjava.net/youthyflyer/aggbug/3063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youthyflyer/" target="_blank">youthyflyer</a> 2005-04-10 11:11 <a href="http://www.blogjava.net/youthyflyer/archive/2005/04/10/3063.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始学习EMF~ </title><link>http://www.blogjava.net/youthyflyer/archive/2005/04/07/2943.html</link><dc:creator>youthyflyer</dc:creator><author>youthyflyer</author><pubDate>Thu, 07 Apr 2005 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/youthyflyer/archive/2005/04/07/2943.html</guid><wfw:comment>http://www.blogjava.net/youthyflyer/comments/2943.html</wfw:comment><comments>http://www.blogjava.net/youthyflyer/archive/2005/04/07/2943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youthyflyer/comments/commentRss/2943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youthyflyer/services/trackbacks/2943.html</trackback:ping><description><![CDATA[<P>直观的概念：EMF是一个框架，有点像傻瓜相机，只要给出一个模型，就可以生成一堆你想要的东西。</P>
<P>模型的源泉在于一个xml文件，根据它生成core，然后进一步的创造出provider和editor</P>
<P>似乎是，那既然如此，现在的问题是EMF和GEF究竟有什么联系？或者说究竟在一个程序中二者分别扮演什么角色？</P>
<P>努力钻研中，随时修改我的笔记</P><img src ="http://www.blogjava.net/youthyflyer/aggbug/2943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youthyflyer/" target="_blank">youthyflyer</a> 2005-04-07 15:19 <a href="http://www.blogjava.net/youthyflyer/archive/2005/04/07/2943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>