- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 GMF中,删除节点和连线的实现
在GMF中,有时我们需要programmatically删除节点或连线,该如何实现呢? 由于GMF框架用的是MVC模式,所以在删除节点或连线的时候,需要删除该节点或连线对应的view和model。有了这个概念后,删除节点和连线便简单了。 先介绍删除连线的方法。 首先,我们得获得org.eclipse.gmf.runtime.notatio
2012-07-15 16:45:38
1040
原创 GMF中,如何给属性排序
之前搜到一篇《GEF 给PropertySheetPage设置属性排序功能》的博客,如何将这种方法移植到GMF中呢?可以如下做: 首先,新建一个类MyPropertySheetPage,继承至PropertySheetPage。 public class MyPropertySheetPage extends PropertySheetPage { @
2012-06-29 09:53:01
1027
原创 GMF中,如何给节点的输入和输出赋值
图1 ecore模型 图2 实例 在GMF中,将某个连接线(如上图连线1)指向某个节点(如图2 b节点)后,此节点b的输入便是连线1,但GMF默认不会自动给此节点b的incomings赋值(为连线1)。同理,也不会对此节点的输出(outcomings)赋值(为连线2)。如何解决这个问题呢? 很简单,这么做就可以了: 找
2012-06-14 17:43:24
854
原创 GMF中,禁止delete from diagram
在GMF中,有个很烦人的东西,就是delete from diagram。delete from diagram的意思是只在视图中删除,而并不删除它对应的model。因此,当你delete from diagram后,图元在图中暂时消失了,但再次打开此图时,这个图元仍然存在。 怎么解决禁止delete from diagram的问题呢? 首先:修改DiagramEdit
2012-06-13 16:46:06
707
原创 GMF中,自动画连接线
忘记将自动画连接线的代码贴出来了,特此补一补: private void drawLink(ModuleEditPart sourceModuleEditPart, ModuleEditPart targetModuleEditPart) { IElementType type = ModuleElementTypes.Link_3001; // 连
2012-06-08 11:29:08
818
原创 GMF中,如何不打开editor保存图片
之前的博客介绍了将当前editor保存为图片的方法。但由于项目里的需求有变,需要在不打开editor的情况下,通过图文件保存图片。由于保存图片的操作必须获得diagram的editpart才能保存,而目前已知的获取editpart的方法只有先打开editor才能获得。那还有其他办法吗? 答案是有的。GMF保存图片对应CopyToImageUtil这个类,这个类里有个方法:c
2012-05-14 21:53:36
1004
原创 eclipse中,将外部文件挂接到当前工程中以及programmatically更新视图
在我的项目中,有这样一个需求:要求在project explorer(CNF视图)中显示一个非workspace空间中的文件(即这些文件放在一个缓存里)。我们可以通过创建链接将文件给链接到当前工程中。但如果在这个链接文件的父目录里新增加了一些文件,如何将这些文件给自动挂接到project explorer中呢? 我们可以这样创建一个链接文件夹,然后文件夹下面的文件便可以在pro
2012-04-13 18:34:59
1499
1
原创 GMF的保存图片代码
GMF有提供保存图片的功能,但有时我们想自己在其他地方添加菜单,然后调用GMF的保存图片的代码,实现保存图片的功能。可这样做: CopyToImageDialog dialog = new CopyToImageDialog(Display.getCurrent().getActiveShell(), path, fileName); if (d
2012-03-22 21:39:03
600
原创 GMF中,如何不打开editor得到此editor的模型对象
在前面的博客中,我介绍了一些如何获得activie editor里面图元属性的方法。 但如果我们要进行一些比较高级的定制,比如需要分析每个图与每个图之间、或者每个图中的图元与另一个图中的图元有什么关系,则这时我们便会遇到一个麻烦:如何不打开editor而通过此editor对应的文件得到此editor的模型对象(可以通过此模型对象获得diagram的属性,比如图的name,aut
2012-02-29 18:13:42
828
原创 GMF中,图元属性垂直居中布局
童鞋们,要获得以下效果,该如何做呢? 按如下步骤即可: 看图中的Grid Layout 1以及Grid Layout Data true,用到了网格布局的方法。 第一个Grid Layout Data true的属性如下设置: 第二个G
2012-02-26 22:30:26
539
原创 GMF中,创建向导页
创建向导页很简单,直接new一个GMF生成的XXXCreateWizard就行了 TestCreationWizard creationwizard = new TestCreationWizard(); creationwizard .init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);
2012-02-26 21:51:50
429
原创 GMF中,自动创建图元(create nodes programmatically)
以下是创建图元的代码: IElementType type = XXXElementTypes.Xxxx_1001 ; //要创建的图元对象的IElementType CreateViewRequest createViewRequest= CreateViewRequestFactory.getCreateShapeRequest(type
2012-02-26 21:44:22
1157
2
原创 GMF中,由xxxEditPart获得模型对象的方法的方法
其实在前面博客中已提及一部分,在此做个整理: 法1: XXXImpl xxxImpl = xxxEditPart.resolveSemanticElement();//此方法比较简便,一行代码便可以了 法2: View view = (View) xxxEditPart.getModel(); XX
2012-02-26 21:14:42
522
原创 GMF中,编辑图元属性的方法
GMF中,经常需要修改图元属性。如果我们直接通过XXXImpl.setXXX();这种方法设置的话,运行后会报错,这是因为在GMF中,必须要在写事务中才能修改资源属性(这里的资源指真正存到图文件里的对象)。 首先要获得某个图元的EditPart,然后将其转换为此图元的语义模型,之后便可以进行图元属性的修改了: XXXImpl xxxImpl = XXXEd
2012-02-26 20:58:14
1521
原创 GMF中,获得当前editor的EditPart
很多时候,我们需要获得当前editor的EditPart,以便进行诸如在当前editor中自动创建图元,删除图元以及获得图元属性,修改图元属性之类的操作。 在GMF中,我们可以如下获得当前editor的EditPart: XXXDiagramEditor xxxDiagramEditor= (XXXEditor) PlatformUI.getWorkbenc
2012-02-26 20:22:42
1193
原创 GMF提示Can't find genClass for class '...' in package ...model的解决办法
今天在生成Gen Model时,碰到Can't find genClass for class '...' in package ...model的问题,原因是genmodel是invalid或者old了,解决办法如下: 首先,找到*.gmfmap,右键单击Create generator model..如下图: 点击下一步,直到出现以下对话框: 点
2011-12-23 15:00:54
708
深入GMF/EMF/GEF
2013-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人