第1章 Eclipse简介 1
1.1 安装Eclipse 1
1.2 第一个应用程序:Hello World 4
1.2.1 透视图 4
1.2.2 页目 5
1.2.3新建一个类 5
1.2.4启动 7
1.3 Java开发中重要的首选项 7
1.3.1工作台首选项 8
1.3.2已安装的JRE 9
1.3.3编译器首选项 10
1.3.4格式化代码 11
1.3.5模板 12
1.4任务和问题 13
1.4.1问题 14
1.4.2通用任务 15
1.4.3书签 16
1.5代码片断编辑测试窗 16
1.6本章小结 18
第2章 使用Eclipse高效编程 19
2.1小型帮助系统 19
2.1.1 系统信息 19
2.1.2帮助与悬浮式帮助 19
2.1.3 Java信息视图 21
2.1.4代码自动补全 21
2.1.5修正辅助 25
2.1.6 Java编辑器中的简易功能 26
2.2源代码导航 28
2.3代码重构 29
2.3.1修改类型 29
2.3.2代码重构 30
2.4撤销和重做 33
2.5本地历史记录 33
2.5.1 资源比较 33
2.5.2替换为历史版本 34
2.5.3恢复已删除资源 34
2.6本章小结 34
3.2 使用 36
3.1 安装 36
第3章 (可视化)组合艺术 36
3.3 首选项 37
3.4组合 37
3.5 Bean及Bean属性 38
3.5.1 通用Bean 38
3.5.2属性 39
3.6布局 39
3.7事件处理 39
3.8本章小结 40
第4章 组织代码 41
4.1 工作台 41
4.2.3 资源同步 42
4.2.2资源存储 42
4.2.4导航 42
4.2 资源 42
4.2.1 资源类型 42
4.3 关联 43
4.4 包 44
4.4.1文件夹和包 44
4.4.2导航 45
4.4.3层次结构 45
4.5 大纲视图 46
4.5.1表示 47
4.5.2上下文功能 48
4.6搜索 49
4.6.1搜索功能 49
4.6.2查找和替换 50
4.7.1停放窗口 51
4.7.2叠放窗口 51
4.6.3标记 51
4.7部署编辑器和视图 51
4.7.3桌面窗口 52
4.7.4快速视图 52
4.7.5打开和关闭窗口 52
4.7.6最大化窗口 52
4.7.7最小化窗口 53
4.8管理透视图 53
4.8.1定义新透视图 53
4.8.2配置透视图 54
4.9导入文件 54
4.10项目属性 56
4.11 Java浏览透视图 57
4.12本章小结 58
第5章 项目1:Duke Speaks 59
5.1 创建项目 59
5.2语音合成简介 60
5.3扩展FreeTTS系统 60
5.3.1动画事件 61
5.3.2动画器 62
5.3.3嵌入 66
5.3.4连接Java音频系统 68
5.4用户界面 69
5.4.1动画效果的脸 69
5.4.2控制面板 72
5.4.3模型 72
5.4.4表示 76
5.4.5完整的应用程序 90
5.4.6导出应用程序 93
5.5 参考文献 94
5.6本章小结 94
第6章 项目开发 95
6.1 调试 95
6.1.1 调试配置 95
6.1.2调试视图 96
6.1.3控制程序执行 97
6.1.4管理断点 98
6.1.5 Java console 99
6.1.6远程调试 100
6.2 JUnit 100
6.2.1准备JUnit 101
6.2.2建立一个测试集 102
6.2.3运行测试集 104
6.3文档 105
6.3.1试一下:Javadoc选项 105
6.3.2再试一下:命令行选项 106
6.4本章小结 107
第7章 项目开发高级专题 108
7.1 团队开发 108
7.1.1建立存储库 108
7.1.2存储库中的项目 110
7.1.3版本管理 111
7.1.4团队工作 111
7.1.5其他功能 112
7.2.2环境 113
7.2.3关联 113
7.2扩展工具 113
7.2.1 刷新 113
7.3本章小结 114
第8章 SWT库 115
8.1 SWT功能组概览 116
8.2 SWT的优点与不足 117
8.2.1 SWT的优点 117
8.2.2 SWT的缺点 117
8.3 SWT包 118
8.4事件 118
8.4.1监听器 118
8.4.4监听器、适配器和事件概览 119
8.4.3事件 119
8.4.2适配器 119
8.5小部件 121
8.5.1 Widget类 121
8.5.2 Control类 122
8.5.3可视化(小部件)概览 122
8.5.4 Display类、Shell类和Monitor类 122
8.5.5 Dialog类 127
8.5.6 Composite、Group类和Canvas类 130
8.5.7 Button类 130
8.5.8 Slider类和Scale类 132
8.5.9 ProcessBar类 133
8.5.10 Scrollable接口和ScrollBar类 133
8.5.11 Text类和Label类 133
8.5.12表格、列表框和组合框 135
8.5.13树形控件 139
8.5.14 Sash类 140
8.5.15 TabFolder类 141
8.5.16 ToolBar类 142
8.5.17可移动的工具组 143
8.5.18 Menu类 143
8.5.19自定义小部件 147
8.5.20浏览器小部件 149
8.6布局器 149
8.6.1可视化布局器概览 150
8.6.2 FillLayout类 150
8.6.3 RowLayout类 150
8.6.4 GridLayout类 151
8.6.5 FormLayout类 153
8.6.6 StackLayout类 155
8.7图形 156
8.7.1 图形上下文 156
8.7.2颜色 157
8.7.3字体 157
8.7.4图像 158
8.7.5 Cursor类 160
8.8在SWT中使用Swing 160
8.8.1嵌入内容 161
8.8.2事件 161
8.9输出至打印机 166
8.10.1剪贴板 167
8.10数据传输 167
8.10.2拖放 168
8.11资源管理 169
8.12 Windows32支持(OLE) 170
8.13 Pocket PC上的SWT 170
8.14访问性 171
8.15本章小结 171
第9章 JFace 172
9.1 资源管理 172
9.1.1类FontRegistry 172
9.1.2类ImageRegistry 172
9.1.3类JFaceColors 173
9.1.4类JFaceResources 173
9.2对话框和窗口 173
9.2.1一些Dialog的子类 174
9.2.2实现自己的对话框类 176
9.2.3使对话框长时间运行 179
9.3 视图 180
9.3.1视图事件模型 180
9.3.2视图层次 181
9.3.3单元格编辑器 182
9.3.4数据传输 183
9.4文本处理 183
9.4.1文本处理基类 183
9.4.2类ProjectionViewer 190
9.4.3合适的文本字段和组合框 190
9.5操作和菜单 190
9.5.1接口IAction 190
9.5.2管理器 191
9.6向导 192
9.6.1类Wizard 192
9.6.2类WizardPage 193
9.6.3类WiardSelectionPage 194
9.6.4类WizardDialog 194
9.7首选项 194
9.7.1 类PreferenceStore和PrefenceConverter 194
9.7.2类PreferencePage 195
9.7.3字段编辑器 195
9.7.4首选项页面树 197
9.8本章小结 198
第10章 项目2:Jukebox 199
10.1 目标设计与实现 199
10.2安装项目 200
10.3播放器模块 202
10.3.1布局 202
10.3.2线程 203
10.3.3类Player.java 203
10.3.4接口BasicPlayerListener 220
10.4播放清单领域模型 221
10.4.1接口 221
10.4.2实现接口IPlaylist 228
10.4.3访问特性 230
10.4.4管理记录 231
10.4.5内容提供者 233
10.4.6播放清单切换 233
10.4.7选择 234
10.5描述窗口 235
10.6播放清单视图 238
10.6.1类PlaylistWindow 239
10.6.2类PlaylistViewer 241
10.6.3嵌套的网格布局 248
10.6.4工具栏 250
10.6.5文件选择对话框 251
10.6.6菜单 252
10.7类PlaylistLabelProvider 255
10.7.1返回一个警告图标 255
10.7.2单元格文本 257
10.8类FileCellEditor 258
10.9描述编辑器 260
10.10类DescriptionEditorDialog 261
10.10.1代码扫描器 262
10.10.2内容助手 263
10.10.3 SourceViewer配置 267
10.10.4 SourceViewer 268
10.11 部署Jukebox 270
10.12本章小结 271
第11章 Eclipse平台的插件开发 273
11.1 Eclipse平台的体系结构 273
11.1.1扩展点 274
11.1.2 OSGi 274
11.1.3最简单的平台 274
11.1.4 RCP与IDE的比较 274
11.1.7帮助系统 275
11.1.5资源管理 275
11.1.6用户界面 275
11.1.8团队支持 276
11.1.9其他插件组 276
11.1.10体系结构小结 276
11.2 Eclispe平台的核心类 277
11.2.1 Platform(平台)类 277
11.2.2 Plugin(插件)类 277
11.2.3 Preference(首选项)类 278
11.2.4路径规范 278
11.2.5监控长时间运行的进程 279
11.3 Eclipse工作区 279
11.3.1资源 279
11.3.3应对资源修改 283
11.3.2标记 283
11.3.4长时间运行的进程管理 284
11.4插件配置 285
11.4.1插件开发透视图 285
11.4.2插件清单 287
11.4.3最重要的SDK扩展点 290
11.4.4模式编辑器 296
11.5 Eclipse用户界面组件 298
11.5.1表单 299
11.5.2 Eclipse工作台 304
11.5.3 Eclipse工作台的体系结构 305
11.5.4 Eclipse工作台的事件处理 306
11.5.5编辑器 308
11.5.6视图 314
11.5.7操作 318
11.5.8对话框 323
11.5.9工作台向导 325
11.5.10首选项与属性页 327
11.5.11定义透视图 327
11.5.12帮助系统 328
11.5.13备忘单 332
11.6本章小结 334
第12章 开发自己的Eclipse产品 335
12.1 嵌入式Ant 335
12.1.1配置 336
12.1.2编辑Ant脚本 337
12.2插件与段 337
12.3功能部件 338
12.4部署 339
12.4.1 部署功能部件 340
12.4.2部署完整的产品 340
12.4.3自定义产品 341
12.4.4填充工作空间 342
12.4.5创建更新站点 344
12.5从更新站点安装 346
12.5.1添加更新站点 346
12.5.2安装功能部件 346
12.5.3更新功能部件 346
12.5.4管理配置 347
12.5.5安装句柄 347
12.6产品国际化 347
12.6.1程序中的文本常量 348
12.6.2清单文件中的文本常量 349
12.6.3帮助文本和备忘单 349
12.6.4部署语言包 350
12.7补丁 351
12.8本章小结 351
第13章 项目3:Eclipse插件——Spell Checker 352
13.1 Spell Checker的核心类 353
13.1.1引擎 353
13.1.2概述 353
13.2建立项目 354
13.3插件配置 356
13.3.1清单文件plugin.xml 356
13.3.2模式document Tokenizer.exsd 361
13.4类Plugin 362
13.3.3导入文件 362
13.4.1 字典URL 364
13.4.2初始化首选项 365
13.4.3管理器 366
13.5拼写检查操作 367
13.5.1类SpellCheckingTarget 367
13.5.2工厂方法 369
13.5.3选择 370
13.5.4 文档管理 371
13.5.5文本替换 372
13.5.6释放 373
13.5.7类CheckSpellingAction Delegate 374
13.6.1类SpellCorrectionView 382
13.6修正窗口 382
13.6.2视图操作 392
13.6.3管理图片 393
13.7 GUI类的对等核心类 395
13.7.1管理器 395
13.7.2选择插件 397
13.7.3运行引擎 400
13.7.4管理引擎 401
13.7.5创建引擎 402
13.7.6处理错误单词 403
13.7.7操作 405
13.9.1首选项 406
13.9.2领域模型 406
13.9配置Spell Checker 406
13.8分析文档 406
13.9.3 GUI 408
13.9.4读取PreferenceStore 414
13.10帮助系统 415
13.10.1帮助目录 415
13.10.2上下文相关帮助 416
13.10.3活动帮助 417
13.10.4运行帮助操作 418
13.11 Java属性插件 419
13.11.1创建项目 420
13.11.2清单 420
13.11.4清单 421
13.11.3 Tokenizer扩展 421
13.11.5插件类 422
13.11.6首选项 423
13.11.7首选项页面 424
13.11.8 Java属性Tokenizer 425
13.11.9帮助系统 426
13.12 Spell Checker的国际化 426
13.12.1 Java代码中的文本常量 426
13.12.2清单文件中的文本常量 429
13.12.3创建语言段 429
13.13部署Spell Checker 432
13.13.1定义Spell Checker功能部件 432
13.13.2配置Ant脚本 435
13.13.3定义语言功能部件 437
13.13.4定义更新站点 439
13.14本章小结 440
1 3.1 3.5安装 440
第14章 胖客户端平台 441
14.1定义与动机 441
14.2插件与RCP 442
14.3创建应用程序 442
14.3.1接口IPlatformRunnable 442
14.3.2类WorkbenchAdvisor 443
14.4测试胖客户端应用程序 445
14.5部署胖客户端应用程序 446
14.6高级产品自定义 446
14.7全局欢迎界面 447
14.8本章小结 447
15.1概述 448
第15章 项目4:胖客户端应用程序——Hex游戏 448
15.2创建项目 449
15.3清单文件plugin.xml 450
15.3.1必需的Eclipse插件 450
15.3.2声明应用程序 450
15.3.3定义透视图 451
15.3.4定义视图 451
15.3.5产品自定义 451
15.3.6链接欢迎界面 451
15.3.7添加帮助 452
15.3.8完整的清单文件 452
15.4类RcpApplication 454
15.5类RcpWorkbenchAdvisor 454
15.6类RcpPerspective 455
15.7.2接口IGame 456
15.7接口IGame与IStatusListener 456
15.7.1接口IStatusListener 456
15.8类HexView 457
15.9游戏引擎 463
15.10欢迎界面 467
15.11 测试 469
15.12部署 470
15.13本章小结 470
第16章 总结与展望 472
16.1编程风格 472
16.1.1可执行的原型系统 472
16.1.2自动测试 473
16.1.3改进 473
16.2 Java 1.5 475
16.1.4拥抱变化 475
16.1.5保存能量 475
16.3本章小结 477
附录A 一些有用的Eclipse插件 478
附录B 移植项目到新版本Eclipse 481
B.1项目 481
B.2插件 481
B.3移植到Eclipse 3 482
附录C 重要下载 483
C.1项目1:DukeSpeakers 483
C.2项目2:Jukebox 483
C.3项目3:SpellChecker插件 483
C.4本书站点 483