今天终于成功的编译了一个ecore文件,输出的结果是genmodel文件,然后在用这个genmodel文件generate model/edit/editor,就能够得到一个最简单的属性输入框。在编辑这个ecore文件的时候,遇到了几个问题,虽然都不大但是我觉得有一定的代表意义。从ibm的redbook上面几乎都能找到答案,然后再加以实践,问题都能解决。先看一眼总体的截图:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------第一个问题就是根据ecore生成genmodel的时候系统不响应,点击“finish”仍处在那个界面上。原因很简单,就是ecore文件有错误。我ft,有错误为什么不提示?无论是在eclipse还是在其他的xml文件查看器比如xmlspy2005pro都没有出错提示,以至于我一致以为是我的脑子出了问题:(大方向找对就开始解决错误。第二个问题是每一个Eclass和所有的Eattribute和Ereference都必须由Etype,还不能是默认的。如果在UML图中是java基础类比如int,boolean,String等等都可以选择E*与其对应的类(Eint,Eboolean,EString)。第三个,如果遇到了非常用类,比如InputStream等,就需要在试图中创建一个新的EDataType,用它来代表我们要用的类。下图是InputStream的属性列表,结合他简单的说一下如何定制这种EDataType:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------DefaultValue和Serializable不用去管它,Instance Class Name里面输进去要指代的原始类,这里我们输入的是java.io.InputStream,Name里面输入的是这个对象的名字。保存以后在EAttribute元素的EType里面就能看到我们自己定义的类了。p.s. genmodel文件不能在Eclipse编辑器中修改,只能按照文本方式修改,非常的不方便,因为很有可能出错。这个时候就只能对ecore文件进行修改,然后再生成genmodel文件。 genmodel生成的代码不能直接加入实现的接口类中的一些方法,需要在后面手动添加。很简单,ctrl+1选择相应的选项就行了。 我觉得emf生成的代码只是一个框架,具体的实现细节似乎还需要我们手动的输进去,建模要是能在完整就好了,呵呵,懒鬼:P
posted on 2005-04-10 11:11 youthyflyer 阅读(1122) 评论(0) 编辑 收藏 所属分类: EMF&GEF学习和实践
Powered by: BlogJava Copyright © youthyflyer