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

来源 :总裁 | 被引量 : 0次 | 上传用户:areyoureadygolaopo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:通过对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.size.equals(d)) {
  return;
  }
  this.size = d;
  firePropertyChange(PROP_SIZE,null,d);
  }
  …………………
  }
  


  图2 View的实现图
  


  图3 Draw2D结构图
  
  3.2 视图的设计
  如图2所示:视图是应用软件的表示部分,用于展现数据模型的内容,是用户与编辑器交互的窗口。 它向用户提供一个友好界面,使得用户能够使用图形化的方式方便地查看、编写指定的文件。编辑器的视图部分主要包括主菜单区、工具区、编辑区。主菜单区主要是显示整个编辑器的所有文件;工具区则是显示各种基本图形模型,主要图形的编辑就是将工具区的图形模型拖放到编辑区,以实现基本本体图形的编辑;编辑区是整个编辑器的核心部分,它是一个大视图,整个本体的图形展示都在编辑区,各种基本图形的属性及它们之间的关系都在编辑区中实现。虽然GEF可以使用任何图形包作为View层,但实际上GEF对Draw2D的依赖是很强的。图3是Draw2D结构图,Draw2D是基于SWT的图形处理包。如果一个应用仅需要显示图形,只用Draw2D就足够了;若该应用的模型要求以图形化的方式被编辑,那么最好使用GEF。
  举例来说:EditPart(org.eclipse.gef.EditPart)接口并不要求引入任何Draw2D的类,但最常使用的AbstractGraphicalEditPart类的CreateFigure()方法就需要返回IFigure类型。由于这个原因,在GEF的SDK中索性包含Draw2D包就不奇怪了。
  3.3 控制器的设计
  GEF框架的控制器称为EditPart 。每一个模型都对应着一个EditPart ,主要作用是将模型和视图联接起来,实现模型与视图之间的同步操作。 为了实现代码的重用,EditPart被分为Command 和EditPolicy 两部分。同一个EditPolicy 可以被安装到多个EditPart中,同一个Command 也可以被多个EditPolicy 所使用。当图形模型发生改变的时候,图形模型对应的EditPart 中的EditPolicy 通过传递过来的参数,产生相应的命令对象,从而通过命令对象来实现对模型的更新修改。
  当用户有请求时,Editpart 获得该请求,通过已有的各种策略来判断应发出的命令,并向数据模型发出与该请求对应的命令,使得数据模型发生改变,而对模型的改变会即时获得语法检查,以决定该请求是否合法。若合法,则向Editpart 发出属性改变的消息,最后由Editpart 将对模型的修改结果返回给视图,成为用户可见的结果。控制器示意代码如下:
  public abstract class NodePart extends AbstractGraphicalEditPart implements PropertyChangeListener,NodeEditPart {
  …………………
  //对不同的请求刷新视图
  public void propertyChange(PropertyChangeEvent evt) {
  if (evt.getPropertyName().equals(Node.PROP_LOCATION))
  refreshVisuals();
  else if (evt.getPropertyName().equals(Node.PROP_SIZE))
  refreshVisuals();
  else if (evt.getPropertyName().equals(Node.PROP_INPUTS))
  refreshTargetConnections();
  else if (evt.getPropertyName().equals(Node.PROP_OUTPUTS))
  refreshSourceConnections();
  }
  //安装Policy
  protected void createEditPolicies() {
  installEditPolicy(EditPolicy.COMPONENT_ROLE,new NodeEditPolicy());
  installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,new
  NodeGraphicalNodeEditPolicy());
  installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,new
  NodeDirectEditPolicy());
其他文献
新员工入职,试用期学不会打够级扑克,或将不能转正;  供应商货款5个工作日必须支付完毕,否则将对负责采购、财务人员进行工作考核;  员工没有特殊情况,不允许加班,否则要交纳“快乐基金”;  你见过这样的“奇葩”公司吗?  济南连心物业公司的掌门人、董事长、省“五一劳动奖章”获得者王宏勇就是这么坚持的。他的解释是:  —— 不会休息就不会工作,打扑克不但能丰富员工业余生活,更能锻炼员工的团体协调能力
期刊
8月21日,从日本返回的济南广电2020东京奥运会转播团队才刚刚解除隔离回到济南与家人团聚,此时距离他们出发已整整1个月零2天。  时间回到7月14日上午,东京奥运会转播团队出征仪式在济南广播电视台举行,这支包括导播、字幕、慢动作制作、现场导演、摄像、音频、视频岗位的19人团队,是除中央台、北京、上海、广东、厦门地方台以外唯一一个整建制出征奥运会赛事转播的团队。他们的目标是奔赴东京执行本届奥运会6
期刊
如果选一座城市来表达“海誓山盟”,相信许多年轻人的答案是青岛。  这座诗意浪漫的城市,将万种风情糅入山海城中,释放着无限魅力。青岛有温柔缱绻的一面,也有时尚动感的一面,这里从不缺青春的活力,也不缺爱情的甜蜜。  9月30日到10月7日,由青岛市人民政府、山东省文化和旅游厅指导,中共青岛市委宣传部、青岛市文化和旅游局、青岛市市南区人民政府主办,中共青岛市市南区委宣传部、市南区文化和旅游局承办的202
期刊
摘 要:随着FDI在广东的不断发展,广东的产业结构有了很大的改善;但同时也存在一些问题。应该充分发挥社会主义市场经济的优势,通过一系列市场化的手段,进一步促进广东的产业结构升级,特别是集团化农业、知识型服务业的发展。  关键词:FDI;产业结构升级    1 FDI的概念及研究意义  按照国际货币基金组织的定义,FDI指在投资人以外的国家所经营的企业拥有持续利益的一种投资,其目的在于对该企业的经营
期刊
摘 要:中国农村经济改革30年,经济制度上发生了翻天覆地的根本性的变化,从农民首创家庭联产承包到党的十一届三中全会敞开农村改革大门从乡镇企业异军突起到邓小平南巡讲话市场配置资源;从农村税费改革到义务教育“二免一补”;从农村经济合作组织到社会主义的新农村建设,向世人展现出一幅幅波澜壮阔的改革景象。  关键词:改革开放;农村改革;30年    中国农村经济改革30年,经济制度上发生了翻天覆地的根本性的
期刊
摘 要:长期以来国家对于少数民族地区都采取无偿支援的方针,久而久之大家潜意识里把这种民族政策导向下的无偿援助看成一种对其他地区的负担,这种优惠政策与市场经济的矛盾也是显而易见的。运用比较优势理论探讨市场经济条件下,如何恰当对待民族地区优势资源的开发及如何合理制定相关财税政策,对树立从政府到地方的正确理念,构建和谐社会,都具有重要的现实意义  关键词:民族特色企业;比较优势;政策优惠;自我发展   
期刊
摘 要:如何对住户医疗服务产出进行科学准确的核算是国家卫生医疗核算体系中一个重要的课题。将SHA的处理方法与当前主流的住户无偿劳动核算方法进行比较,对其进行评价,最后对我国的住户卫生医疗产出核算提出建议。  关键词:SHA ;住户卫生医疗产出核算 ;无偿劳动    在SHA中产出的定义就包括了家庭成员提供的个人服务,此种情况下,它们等于达到同种目的所需要的社会转移支付。SHA的这种处理方法清楚表明
期刊
摘 要:改革开放是决定中国命运的关键抉择,是决定党和国家的大事。总结党的改革开放的宝贵经验,对于推动中国特色社会主义的伟大实践,具有现实意义。  关键词:改革开放;实践;经验    自20世纪70年代末开始,中国启动了波澜壮阔的政治经济改革,时至今日已历30年,从农村到城市、从经济领域到政治文化领域、对内对外进行了改革开放。改革开放使得“中国人民的面貌、社会主义中国的面貌、中国共产党的面貌发生了历
期刊
摘 要:由于历史的原因,生活水平偏低,交通、信息严重滞后,以及农村重男轻女的封建社会恶习,成为农村少数民族适龄女童失学的主要原因。在我国许多少数民族地区,女性所享受的教育机会远远要低于男性,她们长期处于低水平低素质状态,从而世代形成恶性循环。分析了农村少数民族女童教育的现状及原因。着重从学校个案工作、家庭个案工作剖析农村少数民族女童教育问题,并提出社会工作者在解决农村少数民族女童教育问题中责任重大
期刊
摘 要:从企业信息化与ERP双向互动的新视界,探讨如何彻底改变当前普遍存在的企业被动实施ERP的弊端,使企业管理与ERP互动促进,共同走上新台阶。  关鍵词:ERP;互动;实施;流程再造;信息平台;一体化    1 国药化试的信息化之道  国药化试是全国最大规模的实验室产品专业生产商和经销商,产品包括化学试剂、生化试剂、诊断试剂、玻璃仪器、实验室仪器及设备等,涵盖了实验室产品的各个领域。经过多年的
期刊