文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发数据结构使用图形编辑框架创建基于 Eclipse 的应用程序
精品推荐
特别推荐
·网游外挂编写完全攻略
·开发WDM型的USB设备驱动程序
·数据库设计范式深入浅出
·理解软件保护技术之序列号方式
·大型网站必鉴:分销渠道的结构
·你的代码真的很健壮吗
·利用HOOK拦截封包原理
·四种网络游戏外挂的设计方法
·程序语言效率比较
·五子棋算法
热点TOP10
·剖析备份个人数据十大注意事项
·BPEL的基本活动介绍
·BPEL模型基础
·VS2005视频教程之站点地图[视频]
·DB2数据库部分日常实用操作
·数据结构教程 第十五课 串的表示和实现
·MD5算法解释
·逆向思维 《魔兽世界》封包分析
·IE工具条插件Toolbar开发简介
·网游外挂编写完全攻略

使用图形编辑框架创建基于 Eclipse 的应用程序

日期:2008年6月12日 作者: 查看:[大字体 中字体 小字体]



另一个有趣的区别是连接支持的代码。与 getModelChildren() 类似, getModelSourceConnections() 和 getModelTargetConnections() 应当返回表示节点之间连接的模型对象。超类在必要时创建对应的 EditPart,并将它们添加到源和目标连接 EditPart 列表。请注意,连接是由每端的节点引用的,而其 EditPart 只需创建一次。GEF 确保只创建一次连接,该工作是通过首先检查查看器中是否已经存在连接来完成的。

建立连接
编写连接 EditPart 实现没有太大的区别。首先生成 AbstractConnectionEditPart 的子类。跟前面一样,可以实现 refreshVisuals() ,以将属性从模型映射到图形。连接可能还拥有约束,尽管这些约束与前面的约束略有不同。这里,连接路由器使用约束来使连接转向(bend)。此外,连接 EditPart 的图形必须是 Draw2D Connection ,它引入了另一个需求:连接锚(connection anchor)。

连接必须由 ConnectionAnchor “锚定”在两端。因此,必须在连接 EditPart 中或在节点实现中表明使用哪些锚。缺省情况下,GEF 假定节点 EditPart 将通过实现 NodeEditPart 接口而提供锚。这样假定的一个原因是,锚的选择取决于各端上的节点正在使用的图形。连接 EditPart 不应了解节点正在使用的图形的任何内容。另一个原因是,当用户创建连接时,连接 EditPart 是不存在的,因此节点必须能够自己显示反馈。作为清单 2 的延续,我们在清单 3 中添加了必要的锚支持。

清单 3. 将锚支持添加到“节点”EditPart

public class MyNodeEditPart
extends AbstractGraphicalEditPart
implements NodeEditPart
{
...
public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
return new ChopboxAnchor(getFigure());
}
public ConnectionAnchor getSourceConnectionAnchor(Request request) {
return new ChopboxAnchor(getFigure());
}
public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
return new ChopboxAnchor(getFigure());
}
public ConnectionAnchor getTargetConnectionAnchor(Request request) {
return new ChopboxAnchor(getFigure());
}

...
}

技巧 #2
别忘记真正实现 NodeEditPart 接口。否则您的方法将永远不会被调用。

以连接(connection)为参数的方法是对现有连接 EditPart 设置锚时使用的方法。其它两个方法以请求(request)作为参数。这些方法是用户创建新连接时的编辑过程中使用的。对于本示例,所有情形都将返回 chopbox 锚。chopbox 锚只查找线与节点图形的边框相交的点。

实现连接 EditPart 是比较简单的。请注意,甚至无需创建图形,因为缺省的 PolylineConnection 创建适合于大多数场合(请参阅清单 4)。

清单 4. 初始的连接 EditPart 实现

public class MyConnectionEditPart extends AbstractConnectionEditPart {
protected void createEditPolicies() {
...
}

protected void refreshVisuals() {
PolylineConnection figure = (PolylineConnection)getFigure();
MyConnection connx = (MyConnection)getModel();
figure.setForegroundColor(MagicHelper.getConnectionColor(connx));
figure.setRoutingConstraint(MagicHelper.getConnectionBendpoints(connx));
}
}

技巧 #3
最重要的是了解何时使用以及何时不使用 ConnectionEditPart。当用户可以选择某些东西并可与之进行交互的时候,就使用连接 EditPart。它可能与模型中的某个对象直接相关,并且通常可由自己删除。

如果您只是拥有一个需要绘制直线的节点或容器,那么只须用图形的 paint 方法绘制直线,或者组合一个图形,该图形包含 Polyline 图形。

连接始终都必须拥有源和目标。如果您需要一个连接,该连接可以在没有源或没有目标的情况下存在,那么比较好的方法是只继承 AbstractGraphicalEditPart ,并使用连接图形。

侦听模型

上一页 [1] [2] [3] [4] [5] [6] 下一页 




上一篇:利用套接字机制实现Flash与数据库连接

下一篇:注册ActiveX控件的几种方法

相关文章:
·为什么iexplore.exe在打开网页时CPU使用会100%?
·溯雪使用说明
·键盘的使用与指法训练
·从零开始 无线网络终极应用宝典
·Firefox 使用常见问题和解决方法
·GHOST使用方法(图解)
·注册表应用100例—注册表使用全攻略之十一
·Vista系统使用技巧总结
·添加或删除启动时自动运行的程序
·WindowsXP应用技巧的具体总结
相关软件:
·黑客视频教程 VMware虚拟机的安装和使用
·C语言程序设计
·黑客视频教程-灰鸽子远控使用教程
·使用GPMC随心所欲管理组策略
·Adobe Photoshop CS 2 简体中文使用指南
·Windows环境下32位汇编语言程序设计
·数码相机购买使用宝典 V1.03.29
·注册表实例应用视频教程swf
·Excel应用宝典
·AUTOCAD 2002机械设计应用与实例

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot