文档章节

GMF中的小知识点

双子座
 双子座
发布于 2012/02/18 20:34
字数 376
阅读 604
收藏 0
GMF

1、根据EditPart得到标记模型:editpart.getModel();

2、根据EditPart得到语义模型:((org.eclipse.gmf.runtime.notation.View) editpart.getModel()).getElement();

3、创建图形后禁止改变图形大小:在相应的EditPart中添加或修改代码

/**
 * @generated NOT
 */
public EditPolicy getPrimaryDragEditPolicy() {
    EditPolicy result = super.getPrimaryDragEditPolicy();
    if (result instanceof ResizableEditPolicy) {
        ResizableEditPolicy ep = (ResizableEditPolicy) result;
        ep.setResizeDirections(PositionConstants.NONE);//创建后不能改变大小
    }
    return result;
}
4、创建图形后禁止改变图形位置:在相应的EditPart添加或修改代码
/**
 * @generated NOT
 */
public EditPolicy getPrimaryDragEditPolicy() {
    EditPolicy result = super.getPrimaryDragEditPolicy();
    if (result instanceof ResizableEditPolicy) {
        ResizableEditPolicy ep = (ResizableEditPolicy) result;
        ep.setDragAllowed(false);// 创建后不能拖动
    }
    return result;
}

5、在GMF项目中获取当前Display或者Shell:PlatformUI.getWorkbench().getDisplay().getActiveShell()

6、为图形添加双击事件:在图形对应的EditPart中重写performRequest(Request req)方法,当req.getType().equals(REQ_OPEN)时表明是双击事件。

public void performRequest(Request req) {
    if (req.getType().equals(REQ_OPEN)) {
        //说明是双击事件,在这里添加操作
    }
    super.performRequest(req);
}

7、获得运行时的工作目录:Platform.getInstanceLocation().getURL().getPath()

8、使用扩展点为图形添加右击菜单:http://my.oschina.net/plumsoft/blog/32958

9、过滤右击菜单项:http://my.oschina.net/plumsoft/blog/35167

10、连线的Source图形与Target图形

con.getSourceAnchor().getOwner();
con.getTargetAnchor().getOwner();

11、获取当前的编辑器

XXXDiagramEditor xxxDiagramEditor = (XXXDiagramEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();

12、获得当前编辑器的editPart

XXXEditPart xxxEditPart = (XXXEditPart)xxxDiagramEditor.getDiagramEditPart();

13、用代码实现保存

利用11中获得的编辑器,执行save方法,由于save的方法是IProgressMonitor类型,而IProgressMonitor是一个接口,可以自定义一个实现IProgressMonitor接口的对象,如CustomProgressMonitor,执行保存时:

xxxDiagramEditor.doSave(new CustomProgressMonitor());


© 著作权归作者所有

双子座
粉丝 540
博文 78
码字总数 61009
作品 0
南京
程序员
私信 提问
关于GMF控件显示错误的问题!

我在学习GMF的相关知识,由于刚入门,所以对于GMF的内部框架不清楚 我从数据库中取出相关的数据,自己生成文件后,把文件提交给GMF,生成图形控件 开始 生成图形控件后 控件图标上面有个叉叉...

色艺双绝
2013/08/29
94
0
MDSF:如何使用GMF来做TOGAF建模工具

在MDSF:架构工具简要功能说明中说到我要做一个支持TOGAF的架构工具,本篇介绍一下如何使用GMF来做一个简单的建模工具。 前提知识   如果你还不知道生成建模工具的基本过程以及基础知识,请...

技术小胖子
2017/11/14
0
0
GMF完成后运行的界面中图标如何设置成自己想要的图标

@双子座 你好,想跟你请教个问题: 在网上看到你发布了很多关于GMF的知识,我想问你一个关于GMF的问题,怎样可以将图1中的各个节点的图标换成自己想要的图标,就像图2中显示的那样,“复杂属...

lovewbo1230
2012/12/31
253
1
GMF里实现editpolicyProviders扩展点

通过org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders扩展点可以给GMF应用里的editpart增加所需要的editpolicy,通过editpolicy返回的command,就可以自由的控制editpart的行为。顺便...

青夜之衫
2017/12/07
0
0
Graphical Modeling Framework简介

本文假设读者有Eclipse平台应用程序开发经验,了解Eclipse平台的插件机制,使用EMF和GEF开发过应用程序。在本文中,“Eclipse应用程序”等价于“Eclipse插件”。 Eclipse是一个开源的平台,从...

青夜之衫
2017/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Taro 兼容 h5 踩坑指南

最近一周在做 Taro 适配 h5 端,过程中改改补补,好不酸爽。 本文记录📝遇到的问题,希望为有相同需求的哥们👬节约点时间。 Taro 版本:1.3.9。 解决跨域问题 h5 发请求会报跨域问题,需...

dkvirus
45分钟前
3
0
Spring boot 静态资源访问

0. 两个配置 spring.mvc.static-path-patternspring.resources.static-locations 1. application中需要先行的两个配置项 1.1 spring.mvc.static-path-pattern 这个配置项是告诉springboo......

moon888
今天
2
0
hash slot(虚拟桶)

在分布式集群中,如何保证相同请求落到相同的机器上,并且后面的集群机器可以尽可能的均分请求,并且当扩容或down机的情况下能对原有集群影响最小。 round robin算法:是把数据mod后直接映射...

李朝强
今天
4
0
Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
今天
19
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部