文档章节

GMF之Shapes实例Part3:为结点Node设置图片或颜色

双子座
 双子座
发布于 2011/08/24 18:49
字数 256
阅读 544
收藏 1

1、把要用到的图片放在org.eclipse.myTest.shapes.diagram工程下的icons/custom文件夹下,我用的是ReserveShapeFigure.jpg,然后刷新这个工程。

2、我想要设置图片的元素是ReserveShape1,打开ReserveShape1EditPart.java,它在该工程的org.eclipse.myTest.shapes.diagram.edit.parts包下。

3、为ReserveShape1EditPart类添加静态成员变量,代码如下:

/**
 * @generated NOT
 */
private static final ImageDescriptor descriptor = ShapesDiagramEditorPlugin
        .findImageDescriptor("icons/custom/ReserveShapeFigure.jpg");
private static final Image originalImage = descriptor.createImage();
public static final ImageData OrgImageData = originalImage.getImageData();

4、在ReserveShape1EditPart.java中找到类ReserveShape1Figure定义部分,也就是public class ReserveShape1Figure extends RectangleFigure {……},在类ReserveShape1Figure中覆盖paintFigure(Graphics graphics)方法:

/**
 * @generated NOT
 */
public void paintFigure(Graphics graphics) {
    super.paintFigure(graphics);
    // 设置结点渐变颜色
    // graphics.setForegroundColor(ColorConstants.blue);
    // graphics.setBackgroundColor(ColorConstants.yellow);
    // graphics.fillGradient(bounds, true);
    // 设置结点图片,并且使得图片的大小总与图形一致
    Dimension size = this.getSize();
    ImageData data = OrgImageData.scaledTo(size.width, size.height);
    Image image = new Image(Display.getCurrent(), data);
    graphics.drawImage(image, getLocation());
}

5、运行效果如下图:

而且,可以满足图片的大小随着图形的改变而改变。

程序代码请见我的代码分享http://www.oschina.net/code/snippet_164134_5913

© 著作权归作者所有

双子座
粉丝 540
博文 78
码字总数 61009
作品 0
南京
程序员
私信 提问
GMF之Shapes实例Part6:给结点添加图片并实现保存

之前给结点设置图片都不能保存,下次打开后还是原来的图片。接下来就是实现永久保存,其实就是给Shape结点所对应的模型元素添加一个属性ID,这个ID的值在创建模型时确定,并且,我们选择图片...

双子座
2011/10/06
505
0
GMF之Shapes实例Part1:创建一个GMF项目

接触GEF与GMF有一段时间了,感觉它们的功能还是很强大的,只是我学的比较慢。也许每个人的学习方法不一样,我比较习惯做简单的例子。今天下午也不干活了,写几篇关于GMF入门的博客。以后有时...

双子座
2011/08/24
1K
13
GMF中设置Base Package

你好,我想问你一个问题,你写的GMF之Shapes实例Part6,这个部分里面有: 2. 保存shapes.ecore_diagram,删除shapes.genmodel,重新创建一个shapes.genmodel,类似GMF之Shapes实例Part1中,别...

lovewbo
2012/03/27
141
2
GMF之Shapes实例Part4:为结点Node设置右击菜单并更换图片

在上一篇文章中,我们实现了为结点设置图片,但是我们还不能修改结点的图片,所有相同类型结点的图片是一样的。 本例首先给结点添加右击菜单,然后实现修改结点图片的功能。 1、修改Reserve...

双子座
2011/09/08
637
1
GMF 教程 Mindmap 2

对Step1做补充操作,主要增加的功能: 为Topic结点添加划分(compartment),实现结点嵌套,使得可以在结点上半部显示结点名称,在下半部可以添加新的内容(这里是加入Thread子结点) Graphi...

双子座
2013/03/13
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

shangcheng-my

1.数据库主键、外键类型为bigint,那么在后台应该用什么类型的变量定义? 后台用string接收,因为前段传过来的一般都是json字符串,后台直接接收,mysql是可以吧数字类型的字符串转换为对应的...

榴莲黑芝麻糊
昨天
2
0
微服务架构依赖图

基于spring-cloud-alibaba + dubbo

龙影
昨天
5
0
Centos7 安装zabbix-agent

rpm -i https://repo.zabbix.com/zabbix/4.2/rhel/6/x86_64/zabbix-release-4.2-2.el6.noarch.rpm 可以到https://repo.zabbix.com/zabbix找到对应的版本 yum install zabbix-agent -y 出现E......

abowu
昨天
8
0
文本编辑器GNU nano 4.4 发布

GNU nano 4.4 "Hagelslag" 更新日志: 启动时,光标可以放在第一个或最后一个出现位置 字符串前面带有+/string 或 +?string的字符串。 发生自动硬包装时((--breaklonglines),任何前导引号...

linuxCool
昨天
7
0
你知道字节序吗

字节序 最近在调一个自定义报文的接口时,本来以为挺简单的,发现踩了好几个坑,其中一个比较“刻骨铭心”的问题就是数据的字节序问题。 背景 自定义报文,调用接口,服务端报文解析失败 iO...

杭城小刘
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部