`

EMF模型文件对比/比较(emf.compare)

阅读更多

如果使用Text形式比较EMF模型文件,对于模型的移动,不能很好的处理。如果使用EMF-compare则能很清晰的展现这种差异,对于团队协作对比/查看 修改的内容很有用。

 

dev环境搭建:

1、获取emf.compare的源码, https://github.com/eclipse/emf.compare

2、获取google的相关插件(恰好RAP插件中有,我就直接用了。也可以从下载链接中的google-dropins获得,把这些jars放到dropins目录下)

3、把源码导入到工作空间。

/org.eclipse.emf.compare
/org.eclipse.emf.compare.edit
/org.eclipse.emf.compare.ide
/org.eclipse.emf.compare.ide.ui

 

运行

去掉平台默认的compare的插件,选中工作空间中的compare的插件。



 

 

查看Compare的效果:



 

实现自定义EMF模型的比较:

1、实现自定义EMF模型,使用Example提供的例子即可搭建一个简单的EMF例子(我这里通过Examples->EMF Validation Framework Plug-ins->General Validation Example创建);

2、为自己的模型定义添加EMF-Compare功能。

先看效果:



 

要实现这样的功能,其实很简单,只要为文件的后缀添加compare的扩展点即可。

 

   <extension
         point="org.eclipse.compare.structureMergeViewers">
      <viewer
            class="org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.EMFCompareStructureMergeViewerCreator"
            extensions="extlibrary"
            id="o.e.compare.ide.ui.internal.structureMergeViewer"
            label="libCompare Structure Merge Viewer">
      </viewer>
   </extension>

 

Compare源码相关:

和其他包括schema的插件不同,解析Compare的扩展点的代码都放置在CompareUIPlugin类里面。

 

org.eclipse.compare.internal.CompareUIPlugin.registerExtensions()

 

 

在org.eclipse.emf.compare.ide.ui的插件里面添加了compare的两个扩展点:

 · org.eclipse.compare.structureMergeViewers

比较结果的呈现视图,也就是对比的两个EMF文件的差异视图。

 · org.eclipse.compare.contentMergeViewers

选中两个EMF的文件,比较之后差异显示在以树形结构的StructureCompareView中,通过双击其中的节点后,就会用到contentMergeViewers视图来呈现真正内容的不同。(包括了eobject,emfcompare_diff,eText,resource_contents四种

 

------------老版本,比较烦,需要定义contentType---------

  org.eclipse.emf.compare;bundle-version="1.2.2",
 org.eclipse.emf.compare.diff;bundle-version="1.2.2",
 org.eclipse.emf.compare.epatch;bundle-version="1.2.0",
 org.eclipse.emf.compare.ui;bundle-version="1.2.2",
 org.eclipse.emf.common.ui;bundle-version="2.7.0",
 org.eclipse.core.contenttype;bundle-version="3.4.100"

 

   <extension
         point="org.eclipse.compare.contentMergeViewers">
      <viewer
            class="org.eclipse.emf.compare.ui.viewer.content.ParameterizedContentMergeViewerCreator"
            id="test.org.eclipse.emf.compare.ui.contentmergeviewer.ModelContentMergeViewer"/>
            
            <contentTypeBinding
            contentMergeViewerId="org.eclipse.emf.compare.ui.contentmergeviewer.ModelContentMergeViewer"
            contentTypeId="test.org.eclipse.emf.compare.ui.contenttype.ModelContentType"/>
   </extension>
   <extension
         point="org.eclipse.compare.structureMergeViewers">
      <viewer
            class="org.eclipse.emf.compare.ui.viewer.structure.ParameterizedStructureMergeViewerCreator"
            extensions="*"
            id="test.org.eclipse.emf.compare.ui.structuremergeviewer.ModelStructureMergeViewer"/>
  <contentTypeBinding
            structureMergeViewerId="test.org.eclipse.emf.compare.ui.structuremergeviewer.ModelStructureMergeViewer"
            contentTypeId="test.org.eclipse.emf.compare.ui.contenttype.ModelContentType"/>
  
   </extension>
   
      <extension
         point="org.eclipse.core.runtime.contentTypes">
      <content-type
            file-extensions="database,logicview,action,entity"
            id="test.org.eclipse.emf.compare.ui.contenttype.ModelContentType"
            name="modelContentTypeName"
            priority="normal">
      </content-type>
   </extension>

 

参考链接:

1、[借用Eclipse 实现文本内容对比功能](http://lggege.iteye.com/blog/505837)

  • 大小: 54.5 KB
  • 大小: 31.7 KB
  • 大小: 18.9 KB
分享到:
评论

相关推荐

    EMF Explorer (VC2015) 源码

    这是国外一个大神(http://www.flounder.com/personal.htm)在 2008 年写的一个 EMF 文件解析程序。虽然是 12 年前的代码了,但依然很有参考价值。 这是使用 VC++ 2015 编译通过的源码,并且修正了原版代码在解析 ...

    eclipse插件介绍

    EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在这里下载 http://www.eclipse.org/downloads/index.php 1.lomboz J2EE插件,开发JSP,EJB http://forge.objectweb.org/projects/lomboz 1....

    缩略图查看器集合

    缩略图查看器集合~可以直接看在窗口看各种图片

    EMF图片转为JPG/PNG

    EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码

    奇好图片转PDF工具4.2.1免费安装版

    奇好图片转PDF软件是一款专门的图片格式转换器,它可以帮助用户轻松的将其他图片转换为PDF格式文件,它支持JPEG、PNG、BMP、GIF、WMF、EMF、EPS、TIFF等8种图片格式,同时它支持批量转换多张图片,并且这款软件完全...

    Activiti插件报错,需要的eclipse插件

    解决这个问题 Missing requirement: Activiti Eclipse BPMN 2.0 Designer 5.14.1 (org.activiti.designer.feature.feature.group 5.14.1) requires 'org.eclipse.emf.transaction 1.4.0' but it could not be found

    文件下载及web文件的contentType类型大全

    ".emf"="application/x-emf" ".eml"="message/rfc822" ".ent"="text/xml" ".epi"="application/x-epi" ".eps"="application/x-ps" ".eps"="application/postscript" ".etd"="application/x-ebx" ".exe"="application...

    eclipse-emf for activity

    An error occurred while collecting items to be installed session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=). ...

    org.eclipse.emf.transaction-1.8.0.201405281451.jar

    解决4.7.2版本eclipse不能在线安装activiti插件的问题

    Eclipse 界面开发插件集合

    包括开发awt,swing,swt用到的所有插件 EMF2.20.zip GEF-runtime-3.2.zip VE-Automated-Tests-1.2.1.zip VE-examples-1.2.1.zip VE-SDK-1.2.1.zip

    emf文件格式详解

    包含3个文件: 微软emf文件格式详解.pdf emf.hlp (Enhanced Metafiles in Win32) emfexplorer_src.zip

    svg2emf:自动从code.google.compsvg2emf导出

    使用蜡染和FreeHEP VectorGraphics库将SVG(可缩放矢量图形)文件转换为EMF(增强型元文件)文件 public void testConvert() throws IOException { String svgUrl = " ...

    EMF Parser (TypeScript) 源码

    FromEMF.js 是 UDOC.js 中的 EMF 文件解析器。 此代码是把 FromEMF.js 用 TypeScript 改写的版本,并且修正了原版代码在解析 EXTTEXTOUTW 时的一个小问题。 原版代码及说明在这里 ...

    EMF文件提取文本,预览,打印

    emf文件是windows的一种打印格式,该资源可以对emf文件进行文本提取和推送打印机打印以及转换成图像

    JSON的EMF映射插件EMFJSON.zip

    EMFJSON 是一个 JSON 的 EMF 映射插件。 Eclipse Update: http://ghillairet.github.com/emfjson/releases/0.3.2/ 标签:EMFJSON

    emf eclipse

    NULL 博文链接:https://xblia.iteye.com/blog/1285282

    org.eclipse.emf.ant_2.1.0.jar

    org.eclipse.emf.ant_2.1.0.jarorg.eclipse.emf.ant_2.1.0.jarorg.eclipse.emf.ant_2.1.0.jarorg.eclipse.emf.ant_2.1.0.jar

    eclipse-emf-2.6.0-1.el6.i686.rpm

    eclipse-emf-2.6.0-1.el6.i686.rpm

    flowable-designer-5.22.rar

    org.eclipse.emf.transaction-1.8.0.201405281451.jar org.eclipse.emf.validation_1.7.0.201306111341.jar org.eclipse.emf.workspace_1.5.1.v20120328-0001.jar 安装 Eclipse → Help → Install New Software ...

Global site tag (gtag.js) - Google Analytics