本文由kira__kira贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 ChinaPub 在线购买:info.asp?id=36806 CSDN 在线阅读:.netbookfiles550 CowNew 开源团队: 部件?? 74 3.2.2 Text 部件?? 74 3.2.3 Tray. 74 3.2.4 Table. 74 3.2.5 在 SWT 中显示 AWTSwing 对象?? 75 3.3 异步作业调度?? 76 3.4 对话框?? 79 3.4.1 信息提示框?? 79 3.4.2 值输入对话框?? 80 3.4.3 错误对话框?? 81 3.4.4 颜色选择对话框?? 82 3.4.5 字体对话框?? 83 3.4.6 目录选择对话框?? 83 3.4.7 文件选择对话框?? 84 3.4.8 自定义对话框及配置保存与 加载?? 85 3.5 首选项?? 86 3.6 Eclipse 资源 API 和文件系统?? 88 3.6.1 资源相关接口的常见方法?? 89 3.6.2 方法中 force 参数的意义?? 91 3.6.3 资源相关接口的方法使用 示例?? 91 3.6.4 在 Eclipse 中没有当前项目?? 92 3.7 Java 项目模型?? 92 3.7.1 类结构?? 92 3.7.2 常用工具类?? 94 3.7.3 常用技巧?? 95 3.7.4 设定构建路径实战?? 100 3.7.5 如何研读 JDT 代码?? 105 3.8 插件开发常见的问题?? 106 3.8.1 InvocationTargetException 异常的处理?? 106 3.8.2 Adaptable 与 Extension ObjectInterface 模式?? 107 3.8.3 千万不要使用 internal 包?? 111 3.8.4 打开视图?? 111 3.8.5 查找扩展点的实现插件?? 111 3.8.6 项目 nature. 111 3.8.7 透视图开发?? 112 3.8.8 关于工具条路径?? 113 3.8.9 Eclipse 的日志?? 116 第 4 章 属性视图?? 117 4.1 基本使用?? 117 4.1.1 IPropertySource 接口说明?? 118 4.1.2 对象实现 IPropertySource 接口?? 120 4.1.3 对象适配成 IPropertySource 对象?? 125 4.2 属性视图高级话题?? 128
4.2.1 属性分类?? 128 4.2.2 复合属性?? 133 4.2.3 常用属性编辑器?? 140 4.2.4 自定义属性描述器?? 146 第 5 章 开发 Hibernate 插件?? 154 5.1 功能描述?? 154 5.2 XML 文件的处理?? 158 5.2.1 XML 处理技术比较?? 158 5.2.2 Dom4j 的使用?? 159 5.2.3 XStream 的使用?? 165 5.3 实体模型文件创建向导?? 169 5.4 模型的定义和模型文件处理?? 176 5.5 实体属性描述器?? 187 5.6 实体编辑器?? 193 5.6.1 字段的编辑?? 193 5.6.2 编辑器基类?? 200 5.6.3 实体编辑器核心配置界面?? 203 5.6.4 多页实体编辑器?? 224 5.7 代码生成?? 228 5.7.1 代码生成器接口?? 228 5.7.2 代码生成器配置文件?? 232 5.7.3 代码生成向导?? 235 5.7.4 公共工具类 CommonUtils. 243 5.8 Hibernate 代码生成器?? 245 5.8.1 命名策略?? 246 5.8.2 工具类?? 247 5.8.3 代码生成的 JET 代码?? 251 5.9 CowNewStudio 使用实
1 例?? 259 第 6 章 基于 GEF 的界面设计工具?? 263 6.1 GEF 简介?? 263 6.1.1 Draw2D.. 263 6.1.2 请求与编辑策略?? 264
6.1.3 视图与编辑器?? 264 6.1.4 GEF 的工作过程?? 265 6.2 系统需求?? 265 6.2.1 界面设计工具的分类?? 265 6.2.2 功能描述?? 266 6.3 构建模型?? 267 6.4 实现控制器?? 275 6.4.1 窗体和组件的控制器?? 275 6.4.2 编辑策略?? 279 6.4.3 命令对象?? 283 6.5 窗体文件创建向导?? 287 6.6 组件加载器?? 289 6.7 编辑器?? 295 6.8 代码生成和构建器?? 310 6.8.1 代码生成?? 310 6.8.2 构建器?? 313 6.8.3 为项目增加构建器?? 320 6.9 实现常用组件?? 323 6.9.1 标签组件?? 323 6.9.2 按钮组件?? 327 6.9.3 复选框?? 331 6.9.4 编辑框?? 336 6.9.5 列表框?? 338 6.10 使用演示?? 346 前 言
Eclipse 是一款非常优秀的开源 IDE,非常适合 Java 开发,由于支持插件技术,受到了越来越多的开发者 的欢迎。 作为一款优秀的平台,如果我们只是使用 Eclipse 的现有功能进行开发,无疑不能发挥出 Eclipse 的全部 威力, 如果能根据需要开发基于 Eclipse 的插件, 那么将会大大提高开发效率。 现在市场上已经有了几本 Eclipse 的相关书籍,但基本上都是偏重于 Eclipse 的使用,很少有涉及到基于 Eclipse 的插件开发的书籍,即使有讲 述到 Eclipse 插件开发的,其内容也是浅尝辄止,根本没有对有一定复杂程度和实用性的插件开发进行讲解。 Eclipse 的插件体系是非常复杂的,学习门槛也非常高,为了帮助国内开发人员掌握 Eclipse 的插件开发 技术,从而开发出满足自己要求的插件,本书将系统地介绍 Eclipse 插件各方面的知识,并且通过实际的开发
案例来演示这些知识的实战性应用。 书中的对应的 Eclipse 版本为 Eclipse 3.2,可以从 、Ruby、JavaScript 等语言都没 有很好的全面支持代码编写、调试以及重构的开发工具,使用这些语言进行开发非常麻烦。 l 为自己开发的语言配备开发工具。有时我们会开发一款新的开发语言,为了方便使用,我们也需要为其 提供相应的开发工具。 l 为控件库、框架等提供开发工具。Echo2、Tapestry、Spring 等都是非常优秀的产品,但是通过手工编码 的方式使用这些产品仍然是非常麻烦的,如果能配备图形化的开发工具,那么通过简单地鼠标拖拽就可 以快速完成工作。 l 为产品提供二次开发工具。很多公司都有自己的产品,而这些产品一般都提供了二次开发的能力,开发 人员只要进行少量的编码或者配置就可以很轻松的实现针对特定客户的个性化功能。由于二次开发人员 的技术水平相对较差,
2 如果能提供一个图形化的二次开发工具也必将提高二次开发的效率及质量。 对于上面的几种情况, 已经有很多开发人员探索着实现了, 比如 Boa Constructor 就是一款用 Python 语言 编写的 Python 开发工具, 润乾报表提供了用 Swing 技术实现的报表设计器。 这种所有功能全盘自己实现的方 式有如下的缺点: l 必须自己处理所有的细节问题。比如实现一个语言的开发工具就必须自己处理语法高亮、语法分析、代 码提示、调试、重构、可视化的界面编辑器以及代码生成等,这些问题的处理对开发人员的要求非常高, 而且开发工作量也非常大。 l 各个工具的差异性非常大,增加了用户的学习成本。 l 不同的工具之间的集成非常困难。由于不同的工具是由各个厂商独立开发出来的,互相之间的集成非常 麻烦,不仅使用的时候需要运行多个工具,而且经常需要在多个实现相似功能的工具之间做出取舍。 Delphi、VS.Net Studio、JBuilder、NetBeans 等都提供了一定的扩展机制,我们只要按照要求编写插件就 能在这些工具中开发扩展功能,但是这些工具提供的扩展功能是非常简单和有限的,我们几乎无法完成编写 开发工具这样复杂的功能。 做为 IDE 界的一匹黑马,Eclipse 在几年内异军突起,很多开源项目或者商业化的产品都提供了相应的 Eclipse 插件,比如 Echo2、GWT、Struts 等开源产品以及 IBM Websphere、Crystal、金蝶、普元等商业公司 的开发工具都基于 Eclipse 进行开发,甚至 Borland 也将新版本的 JBuilder 移植到 Eclipse 上。Eclipse 能够得 到这么多厂商的支持,究其原因有如下几点:免费且开源;开放性;可扩展性强;对开发工具的开发提供了 强大的支持;基于 Eclipse 的产品更专业;各种插件可以组合使用。 免费且开源
大多数开发工具都是按用户数收费的,对于开发人员比较多的公司来说开发工具的支出是一笔不小的费 用, 而且基于这些开发工具开发出来的扩展插件在发布的时候也会涉及到授权的问题。 Eclipse 是免费使用的, 这样就为公司节省了不小的一笔开支,而且只要遵守 EPL 协议,那么基于 Eclipse 开发的扩展插件可以任意 发布。Eclipse 是开源的,通过研读 Eclipse 的代码,我们能更快的开发出高质量的插件。 开放性
Eclipse 并没有局限于 Java 语言,我们可以开发非 Java 语言的开发插件,比如 Ruby、Python、CC++、 C#以及 PHP 等语言都有了 Eclipse 上的开发插件。而且 Eclipse 也没有限定插件的应用领域,所以 Eclipse 成 为了很多领域开发工具的基础,不仅 IBM、金蝶、普元等企业级系统开发商选择 Eclipse 做为其开发工具的 基础,而且像风河系统公司、Accelerated 科技、Altera、TI 和 Xilinx 等嵌入式系统公司也将 Eclipse 平台作为 自
3 身开发工具的基础。 可扩展性强
Eclipse 采用微内核架构,其核心只有几兆大小,我们平时使用的代码编辑、调试、查找以及重构等功能 都是以插件的形式提供的。我们不仅可以扩展现有插件,而且还可以提供扩展点,这样其他用户同样可以基 于我们的插件开发扩展插件从而满足用户的个性化需求,这样我们只需要实现我们个性化的功能即可,通用 功能由基础插件来完成。比如我曾经开发过一个 Python 的远程调试插件,由于 PyDev 已经提供了本地调试 的功能,所以我对 PyDev 进行了少量扩展开发就完成了这个插件。 对开发工具的开发提供了强大的支持
Eclipse 提供了新建向导、 代码编辑、 调试、运行、图形化界面以及代码生成等开发工具常见功能的支持, 这大大简化了一个复杂开发工具的开发。只需数十行代码就可以实现语法高亮、代码提示等代码编辑功能、 只需数百行代码就可以实现调试功能、只需数百行代码就可以实现一个所见即所得的图形化编辑器,这一切 让开发一个专业的开发工具变得如此简单。这样厂商只要按照自己领域相关的逻辑进行定制,其他的基础功 能则由 Eclipse 提供, 这使得厂商能够把更多的精力投入到自己熟悉的业务领域。 比如我们要开发一个 Python 的所见即所得的界面绘制工具, 那么我们只需要基于 GEF 进行少量开发即可实现一个所见即所得的图形化编 辑器,而生成的 Python 代码的编辑、调试以及重构等功能则由现有的 PyDev 插件来完成。可以想像如果没 有 Eclipse 的话,我们从头开发一个 Python 的图形化编辑器需要我们处理多少的技术难题! 基于 Eclipse 的产品更专业
一个专业的开发工具通常需要考虑很多问题,比如需要考虑被选择对象的属性编辑方式、长时间操作的 进度条展示、 编辑窗口的布局方式以及工具选项的配置等问题, 这些问题 Eclipse 的开发人员已经替我们考虑 好了,我们开发的插件将自动拥有这些功能,这使得我们的插件显得更加专业。 各种插件可以组合使用
以前每开发一个开发工具,都需要实现代码版本控制等功能,而在 Eclipse 中则已经有了支持 VSS、CVS 和 SVN 等版本控制协议的插件,我们只要实现我们的开发工具即可,这些版本控制插件可以正交的和我们 的插件组合使用,并且用户可以选择任何他们喜欢的版本控制插件,使得我们的工具使用起来更加灵活。 现在市场上已经有了 XML 编辑器、版本控制、UML 绘制工具及 EJB 开发工具等插件,并且这些插件也 有不同的厂商实现的多个
4 版本, 这样用户可以随意挑选他们喜欢的插件, 在同一个 Eclipse 环境中任意组合这 些插件来完成复杂的功能。 Eclipse 的出现使得 IDE 市场出现了一个新的格局,主流的开发工具都开始向 Eclipse 靠拢,这不仅使得 开发工具的开发变得更容易了,中小型企业甚至个人也能开发一个实用的开发工具出来。这些基于 Eclipse 的开发工具不仅能提高开发效率, 而且将用户统一到 Eclipse 平台中, 减少了用户的学习成本。 相信基于 Eclipse 的插件开发将成为未来开发工具的主流,那么就让我们开始激动人心的 Eclipse 插件开发学习之旅吧! 第2章
Eclipse 插件开发
Eclipse 已经不仅仅是一个开发工具了,它更是一个平台。在 Eclipse 下开发的插件可以不仅限用于 Java 语言,现在已经出现了 C++、Python、C#等语言的开发插件,而且我们还可以把它当成一个应用框架,用它
开发与编程无直接关系的系统,比如信息管理软件、制图软件、聊天软件等。不过目前国内大部分开发人员 还仅仅是把 Eclipse 当成了一个开发工具来使用, 没有发挥它的最大潜力。 开发人员一直是在网上寻找相应功 能的插件,一旦没有相应的插件或者插件安装失败就抱怨 Eclipse 没有 JBuilder 之类的工具强大。 “工欲善其 事,必先利其器” ,Eclipse 的插件开发其实并不复杂,我们只要稍加学习,就能开发出满足我们个性化要求 的插件,从而大大提高开发效率。学会 Eclipse 插件开发可在以下几个方面给人们带来方便: l l l l
开发满足用户要求的插件。 如果现有的开源第三方插件有一些 bug,我们也可以自己进行修改,而不必依赖于插件的开发者修 补 bug。 可以在第三方开源插件的基础上做二次开发,从而使其更能满足个性化要求。
在使用一些 Eclipse 插件的时候如果出现问题我们也能更快地发现问题的所在,并快速排除问题。 本章我们将首先介绍插件开发的一些基础知识,然后就以一个具有实用价值的插件为例介绍插件开发的 ① 整个过程,学习完整个例子之后,我们就可以开发一些实用的插件了 。
2.1 Eclipse 插件开发介绍 2.1.1 开发插件的步骤
开发一个插件需要如下几步。 (1) 标识需要进行添加的扩展点以便与插件进行集成。 (2) 根据扩展点的规范来编写扩展代码。 (3) 编写 plugin.xml 文件描述正在提供的扩展
5
(最新版)自己动手写开发工具--基于Eclipse的工具开发毕业论文



