基于Eclipse本体图形编辑器设计与实现.docVIP

基于Eclipse本体图形编辑器设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Eclipse本体图形编辑器设计与实现

基于Eclipse本体图形编辑器设计与实现   摘 要:通过对Eclipse平台和GEF框架的介绍,分析了Eclipse平台在图形编辑方面的优越性。结合本体编辑,设计并实现了基于Eclipse 平台下的本体编辑器,对编辑器的系统结构做了详细地分析。编辑器由模型、视图、控制器三部分组成,由于采用基于MVC 模式的GEF 框架,使得软件结构清晰,明显缩短了软件的开发周期,提高了软件的可维护性和代码的重用性。   关键词:Eclipse;本体论;图形编辑框架;模型――视图――控制器      1 MVC设计模式   MVC 是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。 MVC 把应用程序分成3 个核心模块:模型、视图和控制器。   模型:软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的界面表达和I/ O操作。   视图:把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。 它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。   控制器:处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。      2 GEF 图形编辑框架   GEF ( Graphical Editing Framework) 是Eclipse平台下的图形编辑插件,可用于为已有的应用创建一个图形编辑器界面。GEF运用基于SWT 绘图插件Draw2d 在Eclipse 中创建图形环境。利用GEF提供的公共方法或者在特殊的领域下可以扩展它们GEF 使用能简洁地改变应用于视图1 GEF结构图图模型的MVC 架构。 GEF 是一个能为大多数程序提供链接和构造基础的完整应用。包括:流程构造器、图形界面构造器、UML 图表编辑器(例如流程图和类图) ,及类似于HTML 的所见即所得的文本编辑器。      图1给出了GEF结构图。      3 本体图形编辑器的设计与实现   3.1 数据模型的设计   数据模型对象负责存储显示内容的抽象,所有的核心数据都存储在model 对象中。数据模型主要包括两大部份:代表节点的node 模型和代表连接的connection 模型,每一个节点模型和每一个连接模型都代表一个本体语言中的一个语法元素。 数据模型代表了本体语言中的元素,各种模型之间的关系必须符合本体语言的语法关系,节点模型主要是表示本体语言中的各种基本元素,如类、属性、实例等。连接模型:连接模型主要是表示本体语言中的各种关系,如子类父类的继承关系、子属性父属性的继承关系、类与实例的关系等。node模型示意代码如下:   public class Node extends Element {   …………………..   //模型位置和尺寸的确定   protected Point location = new Point(0,0);   protected Dimension size = new Dimension(100,150);   //连接起点和终点集合的定义   private List souceConnection=new ArrayList();   private List targetConnection=new ArrayList();   public void addtargetConnection(Object connection){   this.targetConnection.add(connection);   firePropertyChange(PROP_INPUTS,null,null);   }   public void addsourceConnection(Object connection){   this.soouceConnection.add(connection);   firePropertyChange(PROP_OUTPUTS,null,null);   }   public void setLocation(Point p) {   if (this.location.equals(p)) {   return;   }   this.location = p;   firePropertyChange(PROP_LOCATION,null,p);   }   public void setSize(Dimension d) {   if (this.

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档