近一段事件在研究eclipse,记录点滴,防止忘记
1.带调色板的GEF编辑器的拖拽
在调色板的ViewerProvider中定义拖拽源
viewer.addDragSourceListener(new TemplateTransferDragSourceListener(viewer));
在编辑器中定义目的地监听
_viewer.addDropTargetListener(new LocalSelectionDropTargetListener(_viewer));
_viewer.addDropTargetListener(new PDTemplateTransferDropTargetListener(_viewer));
_viewer.addDropTargetListener(new ResouceDropTargetListener(_viewer));
主要注意的是定义的源是PDTemplateTransferDropTargetListener类型的监听,他会自动判断是否是匹配的类型,所以其他的监听是不会执行的,他会自动区分类型,不是依靠的isEnable进行判断的。
2.拖拽到容器内的处理过程
在定义Editor的时候会根据textEditor的model取得DocumentEditPart,然后会设置EditPart的值(通过工厂取得)
在拖拽的过程中,取得EditPart,然后根据取得其对应的策略,通过策略取得对应的Command,然后执行Command
执行完成以后会调用postPostExecute更新执行结果
3.HTMLEditor(wtp中得控件),在初始化GraphicEditor的时候一定要先初始化TextEditor,他需要TextEditor的model设定GraphicEditor属性
4.调色板上拖拽图标的内容
主要采用扩展机制,如果定义了扩展的机制,就采用扩展机制的,如果没有定义,采用默认的。
5.所有拖拽的小图标都是TagToolPaletteEntry的对象
6.EditPart中得setContents,他是用来设置Viewer的内容,他包含二个方法,一个是
public void setContents(EditPart editpart) {
getRootEditPart().setContents(editpart);
}
另外一个是
public void setContents(Object contents) {
Assert.isTrue(getEditPartFactory() != null,
"An EditPartFactory is required to call setContents(Object)");//$NON-NLS-1$
setContents(getEditPartFactory().createEditPart(null, contents));
}
6.GEF退拽生成对象的原理
视图添加拖拽addDropTargetListener,添加的监听是个TemplateTransferDropTargetListener的子类,其中TemplateTransferDropTargetListener包含了一个方法getFactory是制定对象生成的工厂类。
实际拖拽过来如何判断需要那个工厂类,需要看TemplateTransferDropTargetListener中使用getFactory的方法
protected Request createTargetRequest() {
// Look at the data on templatetransfer.
// Create factory
CreateRequest request = new CreateRequest();
request.setFactory(getFactory(TemplateTransfer.getInstance()
.getTemplate()));
return request;
}
也就是说在生成的request中已经 包含了使用工厂类的类别,就可以根据拖拽对象的不同生成对应的对象。
7.排序的常量是PositionConstants
分享到:
相关推荐
### Eclipse SWT开发点滴 #### 一、第三方包的引用 在使用Eclipse进行SWT开发时,经常会遇到需要引入第三方库的情况。以下是引入第三方库的具体步骤: 1. **工程项目增加Libraries** - 右键点击项目 -> `Build ...
### C语言点滴-赵岩.docx #### 一、程序猿&&程序媛 - **1.1 装备篇** - **1.1.1 衣着**:介绍程序员在工作场合中的着装建议,强调舒适度与专业性。 - **1.1.2 键盘和鼠标**:探讨适合编程工作的键盘和鼠标的...
【记事本管理系统】是一款专为安卓平台设计的轻量级应用,旨在提供简洁美观的记事功能,方便用户快速记录日常生活、学习或工作中的点滴信息。这款APP的设计初衷是作为课程设计的一部分,展示了开发者在Android开发...
【标题】:“Android随手记”是一款专为Android平台设计的笔记应用,旨在提供便捷的记录功能,让用户随时随地捕捉生活中的点滴。源代码的开放性使得它成为初学者学习Android开发的良好资源。 【描述】:该项目提供...
通过这份日记,我们可以了解到实习过程中的点滴学习与成长。 在实习初期,实习生了解了公司的基本运营模式和员工工作方式,初步接触了IT部门的运作。这阶段的学习主要是适应新环境和理解公司文化。实习生在面对新的...
标签中的“人人”指的是人人网,这是一个中国社交媒体平台,用户可以在上面分享生活点滴、交流思想,与朋友保持联系。在“人人测试端”中,开发者实现了与人人网API的接口对接,允许用户登录、获取好友列表、查看...
在Java生态系统中,还有许多重要的工具和框架,如Eclipse、IntelliJ IDEA等集成开发环境,以及JUnit、Mockito等测试工具。《Java夜未眠》或许会分享作者在使用这些工具时的经验,如何提高开发效率,如何确保代码质量...
《Java程序员上班那点事儿》这本书,正如其名,旨在揭示Java程序员在日常工作中的点滴细节,帮助初入职场或有经验的开发者更好地理解和应对工作中的挑战。书中涵盖了许多实际问题和解决方案,旨在提升读者的技能水平...
开发工具选用Eclipse或IntelliJ IDEA,数据库管理使用MySQL,前后端交互则依赖于AJAX,以提供更流畅的用户体验。 2. 系统需求分析 在进行系统设计前,需进行可行性分析,包括经济可行性、技术可行性和操作可行性。...
这篇文档包含了六篇程序员实习日记,记录了一位实习生在2020年期间学习和工作的点滴,主要涉及Java编程、开源框架、数据库管理和Web应用开发等主题。以下是这些日记中提炼出的重要知识点: 1. **Java编程框架**:...
这款软件主要用于个人记事,帮助用户记录生活、工作中的点滴信息,是学习编程和软件开发过程中的一次实践尝试。通过分享这个项目,作者希望与同样对编程和技术感兴趣的朋友们共同学习和进步。 在 MemoSam2 这个...
通过研究Tomcat源码,开发者可以学习到Web服务器的设计原则,理解Servlet容器的工作机制,掌握JSP和EL的编译过程,以及网络通信和多线程编程的相关知识。此外,对于那些需要对Tomcat进行性能优化、安全性增强或功能...
环境说明文档通常会包含如何搭建开发环境的步骤,如安装JDK、Tomcat服务器、MySQL数据库以及配置相关的开发工具(如Eclipse或IntelliJ IDEA)。此外,它还可能指导如何导入项目、部署应用以及运行数据库脚本。 通过...
Genymotion提供了Eclipse插件,允许开发者在Eclipse内直接启动和控制Genymotion模拟器,方便进行调试和测试。安装此插件后,开发者无需离开IDE就能实现快速部署和运行应用,提高了开发效率。 综上所述,"genymotion...
正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...
标题中的“随时记录自己的每一天(java记事本)”指的是一个使用Java编程语言开发的应用程序,它设计用于帮助用户日常记录生活中的点滴,无论是心情、事件还是其他琐碎事务。这个应用程序可能具备基本的文本编辑功能,...
【清爽型夏日九宫格日记网】是一款基于Java Web技术构建的应用程序,设计风格简洁,适合夏季主题,为用户提供一个在线记录生活点滴的平台。它采用JSP(JavaServer Pages)作为视图层技术,结合SQL Server数据库进行...
4. **动态分享**:用户可以发布个人动态,分享生活点滴、学习心得等,其他用户可以点赞、评论,形成互动。 5. **通知提醒**:WebSocket使得服务器可以实时向用户推送新消息、好友申请等通知,确保用户不会错过任何...
【Android备忘录记事本Shuffle源代码】是一款针对Android平台设计的记事本应用的源码,它提供了一种高效、便捷的方式来记录和管理日常生活中的点滴事务。这款源码由国外开发者编写,以其良好的代码规范和较高的参考...