GEF学习笔记
孤独的狼2021
这个作者很懒,什么都没留下…
展开
-
GEF学习笔记
八进制的博客园:http://www.cnblogs.com/bjzhanghao/archive/2005/02/09/103595.html转载 2013-01-22 14:09:29 · 306 阅读 · 0 评论 -
GEF常见问题3:自身连接
在类图里能看到一些对象具有对自己的引用,通常这些引用用于表达树状结构,即父子节点都是同一类对象。用GEF绘制这样的连接线一般是通过转折点(Bendpoint)实现的,如果你的GEF应用程序里还不能使用Bendpoint,请按照上一篇介绍的步骤添加对Bendpoint的支持。原先我们的GefPractice应用程序是不允许一条连接线的起点和终点都是同一个图形的,因为这样会导致连接线缩成一个点转载 2013-01-23 14:03:31 · 575 阅读 · 0 评论 -
GEF常见问题8:导出到图片
利用org.eclipse.draw2d.SWTGraphics类和org.eclipse.swt.graphics.ImageLoader类可以实现把画布导出到图片文件的功能,原理是在内存里创建一个空白的Image,然后把Diagram画到它上面,最后保存到指定文件和格式。我们可以把导出工作分为两部分,第一部分负责提供要导出的IFigure实例(若要导出整个画布,应从GraphicalV转载 2013-01-23 14:21:02 · 486 阅读 · 0 评论 -
GEF常见问题6:使用对话框
除了利用Eclipse提供的属性视图以外,GEF应用程序里当然也可以通过弹出对话框修改模型信息。要实现双击一个节点打开对话框,在NodePart里要增加的代码如下:public void performRequest(Request req) { if(req.getType().equals(RequestConstants.REQ_OPEN)){ Mes转载 2013-01-23 14:17:12 · 572 阅读 · 0 评论 -
GEF常见问题4:非矩形图元
现在假设要把原来GefPractice例子里的矩形图元节点换成用椭圆形表示,都需要做哪些改动呢?很显然,首先要把原来继承RectangleFigure的NodeFigure类改为继承Ellipse:public class NodeFigure extends Ellipse /*RectangleFigure*/{ ..}这样修改后可以看到编辑器中的图元已经变成椭圆形了。但如果转载 2013-01-23 14:08:13 · 580 阅读 · 0 评论 -
GEF常见问题1:为图形编辑器设置背景图片
GEF的RootEditPart对应的Figure是一个由多个Layer组成的LayeredPane,每个Layer负责包含不同类型的图形元素,如节点、连接、网格线等等。所以要让图形编辑器显示一个图片作为背景,可以在它们其中一个层里绘制这个图片,也可以添加一个层专门放置背景图片.static Image BG_IMAGE=new Image(null,"c:\\bg.jpg");pro原创 2013-01-23 13:51:27 · 856 阅读 · 0 评论 -
GEF常见问题7:计算字符串在画布上占据的空间
要准确的计算文字在画布上占据的空间,可以利用org.eclipse.swt.graphics.GC的stringExtent()方法实现,见下面的代码:GC gc = new GC(Display.getDefault());gc.setFont(yourFont);//这一步不可缺少,因为有些字体里各字符的宽度是不同的Point size = gc.stringExtent(text转载 2013-01-22 14:20:00 · 266 阅读 · 0 评论 -
GEF常见问题5:自动布局
利用自动布局功能,我们可以把本来不包含图形信息的文件以图形化的方式展示出来,典型的例子比如将一组Java接口反向工程为类图,那么图中每个图元的坐标应该必须都是自动生成的。GEF里提供了DirectedGraphLayout类用来实现自动布局功能,下面介绍一下怎样在程序里使用它。DirectedGraphLayout提供的visit()方法接受一个org.eclipse.draw2d.gra转载 2013-01-23 14:12:40 · 560 阅读 · 0 评论 -
GEF常见问题2:具有转折点的连接线
从直线连接转换到可以任意增减转折点的折线连接,因为模型里要增加新的元素,所以模型、editpart和图形部分都要有所修改,显得稍微有些烦琐,但其实很多代码是通用的。这个过程主要分为以下几个部分:1、在模型里增加转折点对应的类(这些转折点在GEF里称作Bendpoint),在类里要具有两个Dimension类型用来记录Bendpoint相对连接线起止点的位置。在连接类里要维护一个Bend转载 2013-01-23 13:57:00 · 970 阅读 · 0 评论 -
GEF中鼠标双击事件的获取
就是在figure对应的editpart中重载方法performRequest(Request req),并判断req的type是否为equestConstants.REQ_OPEN,如果是,则处理双击事件。原创 2013-01-22 14:04:21 · 527 阅读 · 0 评论 -
使用图形编辑框架GEF创建基于Eclipse的应用程序
简介: 了解使用图形编辑框架(Graphical Editing Framework,GEF)创建基于 Eclipse 的应用程序涉及的最初步骤。此外,介绍了目前在 Eclipse 中引导创建图形编辑器过程使用的选项。本文将介绍使用图形编辑框架(Graphical Editing Framework,GEF)的步骤。我们不是完整地完成每个步骤,而是将使用您的应用程序模型的子集,并先使该原创 2013-01-22 17:26:24 · 2638 阅读 · 1 评论