xiaoxiaoleemin

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

2007年5月4日

posted @ 2008-11-18 15:17 xiaoxiaoleemin 阅读(2530) | 评论 (0)编辑 收藏

posted @ 2008-10-16 13:53 xiaoxiaoleemin 阅读(838) | 评论 (0)编辑 收藏

posted @ 2008-04-03 12:53 xiaoxiaoleemin 阅读(709) | 评论 (0)编辑 收藏

     摘要: 要让编辑器生动起来,GMF框架提供了更简单的方法,有些特性甚至不用修改代码只通过设置一下gmfgraph中某些元素的属性就可以实现。这一点,比GEF简单的多。  阅读全文

posted @ 2008-04-01 23:05 xiaoxiaoleemin 阅读(714) | 评论 (0)编辑 收藏

     摘要: 在Java中用JDOM才操作xml文件很方便,需要的代码量也比其它XML解析器要少的多。下面用一个简单的例子来说明JDOM读写xml的最基本的步骤。  阅读全文

posted @ 2007-05-09 18:16 xiaoxiaoleemin 阅读(1635) | 评论 (1)编辑 收藏

     摘要: 这里介绍基于Type的连接的建立方法,仍然用上一篇基于Reference的连接中用到的例子School,有老师类和学生类,同时老师能够指导多名学生。这种指导关系在GMF编辑器中用连接来表示,基于Type的连接就是在ecore模型中为该连接创建一个类TeacherToStudent,ecore模型对应的ecore_diagram图形如下所示:
  阅读全文

posted @ 2007-05-07 14:42 xiaoxiaoleemin 阅读(580) | 评论 (0)编辑 收藏

     摘要: 我习惯于直接用ECore Editor建立ecore模型,如果装了GMF插件的话,在ecore文件上点击鼠标右键,通过菜单“Initialize ecore-diagram diagram file”可以生成类似类图的表示,这样可以从整体上看模型。而且在建模的过程中可以随时"Validate"以检查当前存在的错误。以下是一些常见的问题:  阅读全文

posted @ 2007-05-07 14:10 xiaoxiaoleemin 阅读(984) | 评论 (1)编辑 收藏

     摘要: GMF中的Link有两个,分别是基于Type的和基于Reference的。对于前者,在ecore模型中有一个类对应这个连接,创建一个连接即创建了该类的一个实例,试想,如果一个模型比较复杂,有很多连接时,这种方法要在模型中要为连接建立很多与业务无关的类,使得模型非常复杂;对于后者,没有必要为每个连接在ecore中建立一个类,而是设置该连接对应的Reference即可。下面用一个school的模型来说明基于Reference的连接的建立方法,这个模型非常简单,如下图  阅读全文

posted @ 2007-05-06 23:15 xiaoxiaoleemin 阅读(1180) | 评论 (4)编辑 收藏

     摘要: GMF是Eclipse的一个插件,如同其它插件一样,它首先需要安装在相应版本的Eclipse上。另外,它还需要其它几个插件  阅读全文

posted @ 2007-05-06 21:08 xiaoxiaoleemin 阅读(1511) | 评论 (0)编辑 收藏

     摘要: 上个帖子介绍了如何显示PropertySheet视图,这里继续介绍如何显示Outline视图,还是只关心与显示大纲视图相关的代码:
public class MySchoolEditor extends EditorPart implements ISelectionListener {
...
protected IContentOutlinePage contentOutlinePage;  阅读全文

posted @ 2007-05-06 18:03 xiaoxiaoleemin 阅读(766) | 评论 (0)编辑 收藏

     摘要: 前面的几篇是读了《EMF:A Developer's Guide》一书前三章的读书笔记,我觉得这三章的内容是最重要的,介绍了EMF Framework的一些设计、结构以及实现的问题。但是这些只是一些原理性的东西,要熟练掌握EMF的方法是在项目中应用它,我们可以从修改EMF生成的代码入手。EMF生成的编辑器是MultiPageEditor,比较复杂,我们可以参考它自己写一个普通的Editor,在这个过程中可以熟悉哪些代码是用于实现哪些功能的。  阅读全文

posted @ 2007-05-06 17:24 xiaoxiaoleemin 阅读(2058) | 评论 (2)编辑 收藏

     摘要: 上一部分中,我们看到了如何通过content和label provider来显示EMF模型,这一部分介绍如何修改、编辑EMF模型。EMF.Edit支持基于Command的模型编辑方式,可以自动的undo和redo。EMF.Edit的Command Framework可以分为两部分,第一部分是common command framework,其中定义了一些基本的命令接口,实现了例如basic command stack,compound command等,虽然这些命令主要用于EMF.Edit,但是实际上可以独立于EMF.Edit使用;第二部分是EMF.Edit 命令,是指一些专门编辑EObject的命令。  阅读全文

posted @ 2007-05-05 20:44 xiaoxiaoleemin 阅读(768) | 评论 (0)编辑 收藏

     摘要: 本书的第二章介绍了EMF产生的Model部分的代码,你可以使用EMF Edit Framework来为model构建功能强大的视图和编辑器。在EMF为你生成的编辑器里,可以编辑(复制,粘贴,拖拽等)、显示model,还可以无限的redo/undo。如果这个编辑器不能完全满足你的需求,你可以在此基础上做一些修改,肯定比从头开始写节约时间。
Eclipse通过JFace中的一些Viewer来显示结构化的数据,这些Viewer不直接从model中获取要显示的数据,而是通过ContentProvider和LabelProvider来取得要显示的内容、文本以及图标等信息。  阅读全文

posted @ 2007-05-05 18:08 xiaoxiaoleemin 阅读(921) | 评论 (0)编辑 收藏

     摘要: EMF Framework提供了模型变化通知、持久化支持、操纵EMF对象的反射API等功能来帮助用户提高工作效率,下面分别详细介绍一下。
1.Notification and Adapter
EMF生成的每一个类还是一个Notifier类型,因此当它的属性或者引用改变的时候可以发出通知。这是一个很重要的性质,通过监听EObject的变化可以及时地更新视图或者与之相关联的对象。EMF中的Notification Observer(Listener)叫做Adapter,它除了监听事件以外,还可以扩展其它行为(extend behavior)等。  阅读全文

posted @ 2007-05-04 21:44 xiaoxiaoleemin 阅读(912) | 评论 (1)编辑 收藏

     摘要: 1.EMF的元模型Ecore
我们通常所说的模型(Model)是指应用程序更高层次的描述,通过它可以生成部分甚至全部的实现代码,可以由UML等标准的方法来定义。EMF(Eclipse Modeling Framework)中的模型层次没有这么高,它和实现直接关联。
EMF是一个可以产生代码的框架,你可以通过UML类图、XML Schema、Java Interface等任何一种方式来定义EMF模型,而且可以由一种方式生成另外其它方式,在这里EMF 模型就是把这三者结合在一起的更高层次的一种表示。EMF模型本质上是UML类图的子集,它是关于应用的类和数据的简单模型。  阅读全文

posted @ 2007-05-04 19:13 xiaoxiaoleemin 阅读(1015) | 评论 (0)编辑 收藏