
GMF
文章平均质量分 53
supermmao
这个作者很懒,什么都没留下…
展开
-
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 · 709 阅读 · 0 评论 -
GMF中,如何给属性排序
之前搜到一篇《GEF 给PropertySheetPage设置属性排序功能》的博客,如何将这种方法移植到GMF中呢?可以如下做: 首先,新建一个类MyPropertySheetPage,继承至PropertySheetPage。 public class MyPropertySheetPage extends PropertySheetPage { @原创 2012-06-29 09:53:01 · 1028 阅读 · 1 评论 -
GMF中,如何给节点的输入和输出赋值
图1 ecore模型图2 实例 在GMF中,将某个连接线(如上图连线1)指向某个节点(如图2 b节点)后,此节点b的输入便是连线1,但GMF默认不会自动给此节点b的incomings赋值(为连线1)。同理,也不会对此节点的输出(outcomings)赋值(为连线2)。如何解决这个问题呢? 很简单,这么做就可以了: 找原创 2012-06-14 17:43:24 · 854 阅读 · 0 评论 -
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 阅读 · 0 评论 -
GMF中,自动画连接线
忘记将自动画连接线的代码贴出来了,特此补一补: private void drawLink(ModuleEditPart sourceModuleEditPart, ModuleEditPart targetModuleEditPart) { IElementType type = ModuleElementTypes.Link_3001; // 连原创 2012-06-08 11:29:08 · 818 阅读 · 0 评论 -
GMF中,如何不打开editor保存图片
之前的博客介绍了将当前editor保存为图片的方法。但由于项目里的需求有变,需要在不打开editor的情况下,通过图文件保存图片。由于保存图片的操作必须获得diagram的editpart才能保存,而目前已知的获取editpart的方法只有先打开editor才能获得。那还有其他办法吗? 答案是有的。GMF保存图片对应CopyToImageUtil这个类,这个类里有个方法:c原创 2012-05-14 21:53:36 · 1004 阅读 · 1 评论 -
GMF的保存图片代码
GMF有提供保存图片的功能,但有时我们想自己在其他地方添加菜单,然后调用GMF的保存图片的代码,实现保存图片的功能。可这样做: CopyToImageDialog dialog = new CopyToImageDialog(Display.getCurrent().getActiveShell(), path, fileName); if (d原创 2012-03-22 21:39:03 · 600 阅读 · 0 评论 -
GMF中,由xxxEditPart获得模型对象的方法的方法
其实在前面博客中已提及一部分,在此做个整理: 法1: XXXImpl xxxImpl = xxxEditPart.resolveSemanticElement();//此方法比较简便,一行代码便可以了 法2: View view = (View) xxxEditPart.getModel(); XX原创 2012-02-26 21:14:42 · 522 阅读 · 0 评论 -
GMF中,如何不打开editor得到此editor的模型对象
在前面的博客中,我介绍了一些如何获得activie editor里面图元属性的方法。 但如果我们要进行一些比较高级的定制,比如需要分析每个图与每个图之间、或者每个图中的图元与另一个图中的图元有什么关系,则这时我们便会遇到一个麻烦:如何不打开editor而通过此editor对应的文件得到此editor的模型对象(可以通过此模型对象获得diagram的属性,比如图的name,aut原创 2012-02-29 18:13:42 · 828 阅读 · 0 评论 -
GMF中,创建向导页
创建向导页很简单,直接new一个GMF生成的XXXCreateWizard就行了 TestCreationWizard creationwizard = new TestCreationWizard(); creationwizard .init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);原创 2012-02-26 21:51:50 · 429 阅读 · 0 评论 -
GMF中,图元属性垂直居中布局
童鞋们,要获得以下效果,该如何做呢? 按如下步骤即可: 看图中的Grid Layout 1以及Grid Layout Data true,用到了网格布局的方法。 第一个Grid Layout Data true的属性如下设置: 第二个G原创 2012-02-26 22:30:26 · 539 阅读 · 0 评论 -
GMF中,自动创建图元(create nodes programmatically)
以下是创建图元的代码: IElementType type = XXXElementTypes.Xxxx_1001 ; //要创建的图元对象的IElementType CreateViewRequest createViewRequest= CreateViewRequestFactory.getCreateShapeRequest(type原创 2012-02-26 21:44:22 · 1157 阅读 · 6 评论 -
GMF中,编辑图元属性的方法
GMF中,经常需要修改图元属性。如果我们直接通过XXXImpl.setXXX();这种方法设置的话,运行后会报错,这是因为在GMF中,必须要在写事务中才能修改资源属性(这里的资源指真正存到图文件里的对象)。 首先要获得某个图元的EditPart,然后将其转换为此图元的语义模型,之后便可以进行图元属性的修改了: XXXImpl xxxImpl = XXXEd原创 2012-02-26 20:58:14 · 1521 阅读 · 0 评论 -
GMF中,获得当前editor的EditPart
很多时候,我们需要获得当前editor的EditPart,以便进行诸如在当前editor中自动创建图元,删除图元以及获得图元属性,修改图元属性之类的操作。 在GMF中,我们可以如下获得当前editor的EditPart: XXXDiagramEditor xxxDiagramEditor= (XXXEditor) PlatformUI.getWorkbenc原创 2012-02-26 20:22:42 · 1193 阅读 · 0 评论 -
GMF中,删除节点和连线的实现
在GMF中,有时我们需要programmatically删除节点或连线,该如何实现呢? 由于GMF框架用的是MVC模式,所以在删除节点或连线的时候,需要删除该节点或连线对应的view和model。有了这个概念后,删除节点和连线便简单了。 先介绍删除连线的方法。 首先,我们得获得org.eclipse.gmf.runtime.notatio原创 2012-07-15 16:45:38 · 1040 阅读 · 0 评论