GMF使用自定义图像搭建图形化建模工具
来源:互联网 发布:订货会软件 编辑:程序博客网 时间:2024/06/01 08:06
在利用GMF
开发的图形化建模环境中使用直观的图像标识建模元素能够更有效地支持用户进行建模。下面介绍导入外部图片作为元素标识的方法。
首先,在GMF
所在工作空间中创建一个Plugin-in
项目。
然后在该项目的src
下的与Plugin-in
项目同名的包下创建两个java
文件,分别为:
/*AbstractElementFigure.java*/package cn.edu.nudt.executabledm2.diagram.custom;import org.eclipse.draw2d.Graphics;import org.eclipse.draw2d.Label;import org.eclipse.draw2d.Panel;import org.eclipse.draw2d.geometry.Rectangle;import org.eclipse.swt.SWT;import org.eclipse.swt.graphics.Color;import org.eclipse.swt.graphics.Image;public abstract class AbstractElementFigure extends Panel{ private Label label = new Label(); protected static ImageUtil imgUtil=new ImageUtil(); public AbstractElementFigure() { add(label); customizeFigure(); setSize(64, 64); } protected abstract void customizeFigure(); public void setIcon(Image icon) { label.setIcon(icon); } public void setText(String text) { label.setText(text); } public Label getLabel() { return label; } public void setColor(Color color) { setBackgroundColor(color); } public void setBounds(Rectangle bounds) { bounds.setSize(64, 64); super.setBounds(bounds); label.setBounds(bounds); } public void paint(Graphics g) { int saved = g.getAntialias(); g.setAntialias(SWT.ON); super.paint(g); g.setAntialias(saved); } }
/*ImageUtil.java*/package cn.edu.nudt.executabledm2.diagram.custom;import org.eclipse.swt.graphics.Image;import org.eclipse.ui.plugin.AbstractUIPlugin;public class ImageUtil { public Image getImgFromPlugIn(String plugIn,String path){ Image result=AbstractUIPlugin.imageDescriptorFromPlugin(plugIn, path).createImage(); return result; } }
之后,在该项目目录内创建一个与src
同级别的目录icons
,将所有加载的图片放在该目录下。并为每一个自定义的图像写一个java
类,一个为CapabilityViewpoint
定义的一个java
类:
/*CapabilityViewpointFigure.java*/package cn.edu.nudt.executabledm2.diagram.custom;import org.eclipse.swt.graphics.Image;public class CapabilityViewpointFigure extends AbstractElementFigure{/*cn.edu.nudt.executabledm2.diagram.custom为包名,图片放在icons目录下*/ private static final Image icon= imgUtil.getImgFromPlugIn("cn.edu.nudt.executabledm2.diagram.custom", "icons/CapabilityViewpoint.png"); @Override protected void customizeFigure() { setIcon(icon); } }
对于不同的项目,不同的图像,需要修改的只有三处,一是针对不同图像的类名和图像的文件名,一个就是根据不同项目需要设置的包名。其中图像的文件名和包名都用在getImgFromPlugIn
函数中。
然后,在GMF
项目的gmfgraph
模型的Canvas
节点下的Figure Gallery Defualt
节点下创建Figure Descriptor
元素,并为其创建一个Custom Figure
子元素,设置其Qualified Class Name
属性,例如cn.edu.nudt.executabledm2.diagram.custom.CapabilityViewpointFigure
。
然后就可以将创建的Figure Descriptor
分派给gmfgraph
中的相应的Node
节点,供建模环境使用了。
由于修改了gmfgraph
,需要重新生成gmfgen
模型(不需要重新生成gmfmap
,并根据需要对gmfgen
文件进行相应调整,如为支持双击打开子视图修改部分类名等),并重新生成代码。
之后,修改生成的依赖该自定义图元的diagram
所在项目的MANIFEST.MF文件,在文件的最后添加一行代码:
Import-Package: cn.edu.nudt.executabledm2.diagram.custom
将新建的Plugin-in
项目的包导入到该项目中。或者在出现依赖图元定义错误后,选择由Eclipse自动修正问题。
运行项目,创建图形化建模环境,现在创建相应元素就会显示相应的图片。
注意:如果在GMF
中构建的Custom Figure
下没有添加Label
子元素,则必须为其添加一个布局,例如FlowLayout
,否则生成的代码会有问题,图片在图形化编辑器中就无法显示。
参考文献
http://blog.csdn.net/javaman_chen/article/details/6447458
- GMF使用自定义图像搭建图形化建模工具
- 利用GMF构建双击节点展开子视图的图形化建模环境
- 工作流图形化建模工具界面截图
- GMF自定义figure
- Eclipse GMF Tutorial中文例程(1-创建GMF图形编辑器)
- 使用数据库建模工具进行数据库建模
- 使用数据库建模工具进行数据库建模
- ILmerge图形工具使用
- GMF 双击图形打开新窗口编辑
- PD12 建模工具的使用
- 建模工具EA的使用
- 建模所使用的工具
- GMF
- gmf
- 使用GMF开发可视化界面编辑器(二)——自定义Figure
- UML(统一建模语言[图形化])
- Android 02 shape自定义图形工具
- 使用XAML创建自定义图形
- 排序算法之冒泡算法
- CMake使用说明
- wget参数说明和用法举例
- JNI调用
- 关于对套接字的理解
- GMF使用自定义图像搭建图形化建模工具
- linux学习笔记
- Copy On Write和fork、vfork(很容易理解的图解)
- ListView控件绑定数据
- 简单Linux C线程池
- mysql sql优化
- JRE,JDK和JVM的区别
- 只有0和1的数
- 使用request.getParameter()读取参数时出现的中文乱码现象