本书系统地介绍了SWT、Draw2D、GEF、JET等与Eclipse插件开发相关的基础知识,并且以实际的开发案例来演示这些知识的实战性应用,通过对这些实际开发案例的学习,读者可以非常轻松地掌握Eclipse插件开发的技能,从而开发出满足个性化需求的插件。 本书以一个简单而实用的枚举生成器作为入门案例,通过该案例读者能学习到扩展点、SWT、JET等Eclipse插件开发的基本技能;接着对Eclipse插件开发中的基础知识进行了介绍,并且对属性视图的使用做了重点介绍;最后以两个具有一定复杂程度的插件(Hibernate建模工具和界面设计器)为案例介绍了SWT、Draw2D、GEF、JET等技术的综合运用。 本书不仅适合于Eclipse插件开发初学者学习,对于有一定相关开发经验的开发人员也具有很高的参考价值。
目 录 第1章 Eclipse插件 1
1.1 插件的安装 1
1.1.1 直接复制安装 1
1.1.2 links安装方式 2
1.1.3 Eclipse在线安装方式 3
1.2 内置JUnit插件的使用 5
1.3 可视化GUI设计插件 ——Visual Editor 9
1.3.1 Visual Editor的安装 9
1.3.2 一个登录界面的开发 10
1.4 Eclipse的反编译插件 21
1.4.1 为什么要反编译 21
1.4.2 常用Java反编译器 22
1.4.3 反编译不完全的代码的 查看 23
1.5 WTP插件使用 26
第2章 Eclipse插件开发 30
2.1 Eclipse插件开发介绍 30
2.1.1 开发插件的步骤 30
2.1.2 Eclipse插件开发学习资源的 取得 31
2.2 简单的案例插件功能描述 31
2.3 插件项目的建立 33
2.3.1 建立项目 33
2.3.2 以调试方式运行插件项目 38
2.4 改造EnumGeneratorNewWizardPage 类 39
2.4.1 修改构造函数 39
2.4.2 修改createControl方法 40
2.4.3 修改initialize方法 41
2.4.4 修改handleBrowse方法 46
2.4.5 修改dialogChanged方法 49
2.4.6 分析updateStatus方法 50
2.4.7 取得界面控件值的方法 51
2.5 开发枚举项编辑向导页 51
2.5.1 初始化 53
2.5.2 相关环境数据的处理 54
2.5.3 代码生成 54
2.6 编写代码生成器 57
2.7 功能演示、打包安装 64
第3章 插件开发导航 68
3.1 程序界面的基础——SWT/JFace 68
3.1.1 SWT的类库结构 68
3.1.2 SWT中的资源管理 70
3.1.3 在非用户线程中访问 用户线程的GUI资源 70
3.1.4 访问对话框中的值 72
3.1.5 如何知道部件支持 哪些style 73
3.2 SWT疑难点 74
3.2.1 Button部件 74
3.2.2 Text部件 74
3.2.3 Tray 74
3.2.4 Table 74
3.2.5 在SWT中显示AWT/Swing 对象 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 Object/Interface模式 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使用实例 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
