swt组件到GEF编辑器的拖动支持
来源:互联网 发布:linux配置lamp环境 编辑:程序博客网 时间:2024/04/29 16:04
最近在项目中,需要完成从资源管理器(navigator)向GEF编辑器中拖放结点的功能。
现总结个人体会如下(具体的实现流程,请参考http://www.eclipse.org/articles/Article-GEF-dnd/GEF-dnd.html):
1. GEF封装了底层的SWT拖放。无需自己定义DragSource和DropTarget。
2. GEF的拖拽功能需要
(1).一个可以注册在GEF 中上的监听器,该监听器需实现TransferDropTargetListener接口,一般来讲,直接继承AbstractTransferDropTargetListener类会更好些。
(2).一个生成拖放数据的工厂类,该类需实现CreationFactory 接口。
(3).在GEF编辑器中,为GraphicalViewer注册该监听器,一般在initializeGraphicalViewer()方法中添加
getGraphicalViewer().addDropTargetListener(new FileTransferDropTargetListener(getGraphicalViewer()));
3. DND拖放参数
一般在监听器中的处理拖动方法中,对拖动的操作类型进行设置。如:
protected void handleDragOver() {
getCurrentEvent().detail =DND.DROP_COPY;
super.handleDragOver();
}
Description
DND.DROP_COPY
拖放创建一个新的copy
DND.DROP_LINK
拖放创建一个链接
DND.DROP_MOVE
拖放创建一个移动
4. Transfer
Transfer是拖放的关键。不同类型的拖放数据,应在监听器的初始化时,选择合适的。
其中,TextTransfer默认处理文本拖动,FileTransfer默认处理文件拖动,在我的项目中,我采用的是LocalSelectionTransfer。
- swt组件到GEF编辑器的拖动支持
- GEF 外部组件到GEF编辑器的拖动支持
- 拖动无标栏的SWT窗口
- GEF、SWT、JFace、RCP学习心得
- SWT无标题栏窗口的拖动
- 封装SWT组件的原则
- GEF几何图形编辑器
- GEF编辑器滚动条
- rap 是否支持 gef
- 关于GEF 画板palette 的编辑器中的位置信息
- SWT 应用程序 实现的Drag and Drop(DND) 和 GEF 树上元素的拖拽
- SWT:Tree支持的两个特殊事件
- SWT的鼠标滚轮支持心得体会
- 制作支持多选的 SWT Combo
- SWT OLE 对ActiveX的支持
- SWT:实现自我绘制的Button组件
- SWT:实现自我绘制的Button组件
- SWT:实现自我绘制的Button组件
- 使用XMLHTTP组件实现HTTP协议下的分块断点续传
- opencv 将两张图片显示到一幅图片中
- List Set Map 实现类用法总结
- Android模拟器安装程序及上传音乐并播放
- Ural 1033
- swt组件到GEF编辑器的拖动支持
- Android---网络交互之客户端请求服务端资源后续
- 很简单的一个故事
- MapServer使用笔记(三)
- ubuntu server 升级桌面系统+远程登录
- Android---网络交互之客户端请求服务端资源
- 开发iPhone应用程序(一)
- Wince6下比较好用的一个手写软件
- Singleton模式