标题：Eclipse权威开发指南（第2版）
基本信息
原书名： The Java Developer’s Guide to Eclipse, 2nd Edition  原出版社： Addison-Wesley
作者： （美）Jim D'Anjou, Scott Fairbrother, Dan Kehn, John Kellerman, Pat McCarthy    
译者： 束尧 丁凡 许国梁
出版社：清华大学出版社
ISBN：7302139105
上架时间：2006-12-28
出版日期：2006 年12月
开本：185×260
页码：907
版次：2-1
内容简介
本书由ibm eclipse jumpstart小组成员编写，荣获第15届jolt大奖，是全世界java开发人员学习eclipse的首选读本。该书从第1版开始，就以经典的内容影响无数java程序员，受到业界专家和读者的极大推崇。无论您是否拥有eclipse开发经验，本书都将使您获益匪浅。
“本书根据eclipse 3.0进行了全面更新与修订，是一本最具权威性的eclipse参考书——工具构建者、胖客户端应用程序开发人员和需要定制与扩展eclipse环境的任何用户的必备指南。”
——ibm eclipse项目管理总监dave thomson 
作者简介
Jim D’Anjou是IBM Silicon Valley Lab的一位资深软件工程师、IT专家，曾在加利福尼亚大学伯克利分校获得计算机科学学位，拥有25年的行业经验。在关系数据库、数据库工具、应用程序资源库和开发工具等产品的开发中，他担任过众多技术和管理职位。他拥有软件过程自动化方面的两项美国专利。在2001年的3月，Jim加入了Eclipse Jumpstart小组，担任讲师和行业顾问。
目录
第ⅰ部分 使 用 eclipse 
第1章 引言 3 
1.1 eclipse作为应用程序开发工具的宿主 4 
1.2 不仅仅是工具的宿主，eclipse还作为客户端应用程序的宿主 5 
1.3 什么是eclipse？ 6 
1.3.1 工具与应用程序的集成平台 6 
1.3.2 java开发环境 7 
1.3.3 开源社区 8 
1.3.4 eclipse基金会的目标 9 
1.3.5 作为用户和捐献者(contributor)参与社区 10 
1.3.6 eclipse许可证 10 
1.4 获取与安装eclipse 11 
1.5 本章小结 11 
1.6 参考文献 12 
第2章 eclipse入门 13 
2.1 第一步 14 
2.1.1 提示没有任何jre可用的对话框 14 
2.1.2 创建您的第一个项目 15 
2.1.3 eclipse的外观：编辑器、视图和透视图 16 
2.1.4 用户界面概述 18 
.2.1.5 首选项介绍 19 
2.2 基本的eclipse使用 20 
2.2.1 在eclipse中工作 21 
2.2.2 了解eclipse用户界面 22 
2.2.3 任务、书签和问题 28 
2.2.4 后台处理 29 
2.2.5 eclipse的帮助功能 30 
2.3 资源管理 36 
2.3.1 工作空间 36 
2.3.2 有关项目的更多内容 42 
2.3.3 资源的导入和导出 44 
2.3.4 资源移动 46 
2.3.5 文本编辑器 47 
2.3.6 快速差别—— 实时变化通知 48 
2.3.7 文件编码 48 
2.3.8 打印 49 
2.4 eclipse定制 49 
2.4.1 透视图 49 
2.4.2 渐进显示 51 
2.4.3 在eclipse中运行多窗口和多工作空间 51 
2.4.4 改变键盘快捷键 54 
2.4.5 定制jre 55 
2.4.6 在eclipse中使用其他计算机程序 55 
2.4.7 性能 60 
2.5 练习概述 61 
2.6 本章小结 61 
2.7 参考文献 62 
第3章 使用java开发工具 63 
3.1 jdt入门 64 
3.1.1 jdt用户界面概述 64 
3.1.2 jdt基础 65 
3.1.3 使用jdt视图 68 
3.1.4 搜索 69 
3.2 编写java代码 71 
3.2.1 java编辑器概述 71 
3.2.2 键入辅助 76 
3.2.3 代码辅助 77 
3.2.4 代码生成 80 
3.2.5 导航java错误和警告 81 
3.2.6 使用快速修正功能来修改java错误 82 
3.2.7 重构 83 
3.2.8 使用代码模板 86 
3.2.9 字符串外部化 87 
3.2.10 生成javadoc 88 
3.2.11 在不同的jre下编写java代码 90 
3.2.12 编译代码 91 
3.2.13 eclipse与ant的集成 92 
3.3 java元素的使用 94 
3.3.1 文件夹 94 
3.3.2 java项目 94 
3.3.3 类和接口 98 
3.3.4 导入java元素 98 
3.3.5 java元素的本地历史记录 98 
3.4 调整jdt性能 99 
3.5 jdt视图和首选项的更多内容 100 
3.5.1 视图内容过滤 100 
3.5.2 package explorer视图 100 
3.5.3 hierarchy视图 101 
3.5.4 call hierarchy视图 102 
3.5.5 outline视图 103 
3.5.6 problems视图 103 
3.5.7 search视图 103 
3.5.8 java type hierarchy透视图 103 
3.5.9 java browsing透视图 104 
3.6 练习概述 105 
3.7 本章小结 106 
3.8 参考文献 106 
第4章 java程序的运行与调试 107 
4.1 运行java代码 108 
4.1.1 使用运行和调试命令 108 
4.1.2 管理启动配置 109 
4.1.3 对代码片断编辑测试窗页面中的表达式进行求值 111 
4.2 调试 112 
4.2.1 基本的调试活动 113 
4.2.2 表达式求值 115 
4.2.3 修改变量和字段的值 116 
4.2.4 使用java编辑器进行调试 116 
4.2.5 对当前所调试的程序进行操作 117 
4.2.6 console视图中的程序输出 119 
4.2.7 有关断点的更多知识 119 
4.2.8 java异常断点 121 
4.2.9 将程序与源代码相关联 123 
4.2.10 热代码替换 123 
4.3 远程调试 124 
4.4 练习概述 125 
4.5 本章小结 126 
4.6 参考文献 127 
第5章 协同使用eclipse 129 
5.1 eclipse对cvs的支持 130 
5.2 eclipse的通用小组支持 131 
5.2.1 eclipse小组支持的基本原则 132 
5.2.2 配置小组支持 132 
5.3 为初学者准备的cvs概述 133 
5.3.1 cvs的一些重要设计原则 133 
5.3.2 修订版：任何东西都不会被丢失 134 
5.3.3 更新：跟上小组的进度 134 
5.3.4 提交：共享您的资源 134 
5.3.5 版本设置：捕获资源的当前状态 135 
5.3.6 分支和合并：支持并行开发 135 
5.3.7 在分支和合并时对于修订版本号发生了什么 136 
5.3.8 使用cvs管理二进制文件 136 
5.4 eclipse中的cvs用户界面 136 
5.4.1 cvs repository exploring透视图：资源库主页 137 
5.4.2 cvs repositories视图 137 
5.4.3 cvs annotate视图 141 
5.4.4 cvs resource history视图 141 
5.4.5 查看cvs命令 143 
5.4.6 cvs是如何管理工作空间中项目的 143 
5.4.7 在team快捷菜单中可获得的cvs操作 144 
5.4.8 team synchronizing透视图和synchronize向导 146 
5.4.9 处理同一文件的并发更新 147 
5.4.10 使用cvs的watch/edit支持以避免对同一文件的并行更新 148 
5.4.11 恢复被删除的文件 150 
5.4.12 其他cvs用户界面元素 150 
5.5 特殊情况及其处理 151 
5.5.1 对项目资源进行重命名、移动和删除 151 
5.5.2 取消修改：使用替换和比较操作 152 
5.5.3 通过建立分支来进行版本维护和新版本开发 152 
5.6 其他功能 152 
5.6.1 编辑器中的快速差别功能对cvs的支持 153 
5.6.2 补丁程序：快速而又简单地共享更改 153 
5.6.3 项目集：加快新工作空间 153 
5.6.4 断开项目与cvs的连接或为项目重分派一个cvs资源库 154 
5.7 练习概述 154 
5.8 本章小结 155 
5.9 参考文献 155 
第6章 eclipse环境管理 157 
6.1 eclipse安装实例概览 158 
6.1.1 eclipse的目录内容 158 
6.1.2 eclipse的平台配置 159 
6.1.3 features目录 160 
6.1.4 plugins目录 161 
6.2 理解运行时配置 161 
6.2.1 用户界面中的功能部件详细信息 162 
6.2.2 配置详细信息 163 
6.3 协调首选项设置 164 
6.3.1 同步首选项设置 164 
6.3.2 定义新的首选项默认设置 165 
6.4 理解配置管理的基本原理 167 
6.4.1 update manager介绍 168 
6.4.2 配置基础 168 
6.4.3 安装位置类型 169 
6.4.4 update manager的api命令 170 
6.5 使用update manager 170 
6.5.1 安装位置的添加和删除 171 
6.5.2 功能部件的禁用和启用 171 
6.5.3 从更新站点安装功能部件 172 
6.5.4 将服务应用于功能部件 173 
6.5.5 相关练习 173 
6.6 配置的管理 174 
6.6.1 理解默认配置处理 174 
6.6.2 使用备用配置 175 
6.6.3 在工作空间和配置之间强制建立一对一关系 177 
6.7 本章小结 178 
6.8 参考文献 178 
第ⅱ部分 扩展eclipse基础 
第7章 扩展eclipse，亦利亦弊 181 
7.1 对扩展eclipse感到兴奋吗？您肯定会的！ 181 
7.2 一个简单而实用的示例 182 
7.3 短暂接触“hello, world” 183 
7.4 提出恰当的问题比知道答案更重要 185 
7.4.1 怎样把扩展显示在用户界面中，显示在哪里 186 
7.4.2 扩展用户界面的常用方法 186 
7.4.3 用户界面的扩展怎样感知某些事件(如用户的选择)？ 189 
7.4.4 怎样扩展对象(如显示在outline视图中的对象) 193 
7.4.5 不同视图中显示的相同对象之间的关系 194 
7.4.6 怎样通过程序更改jdt模型 195 
7.5 接下来我们学习哪些内容 197 
第8章 eclipse体系结构概述 199 
8.1 历史和现状 200 
8.2 体系结构的最高优先级：可扩展性与集成 201 
8.3 eclipse作为ide平台和作为胖客户端应用程序 203 
8.4 eclipse platform runtime 204 
8.5 用户界面架构 205 
8.5.1 标准小部件工具箱 205 
8.5.2 jface用户界面架构 206 
8.6 workbench架构 208 
8.6.1 存储持久性值 209 
8.6.2 使用胖客户端平台创建应用程序 209 
8.6.3 使用并发性架构维持对用户的快速响应 210 
8.6.4 通过功能组管理用户界面 210 
8.6.5 扩展workbench集成开发环境 211 
8.7 本章小结 212 
8.8 参考文献 212 
第9章 插件开发入门 213 
9.1 插件入门 214 
9.1.1 集成情景 215 
9.1.2 发布自己的插件 217 
9.2 扩展和扩展点入门 217 
9.3 实现插件的基本步骤 220 
9.3.1 声明自己的插件清单 222 
9.3.2 定义自己的插件类 225 
9.3.3 安装自己的插件 226 
9.4 使用插件开发环境 227 
9.4.1 pde视图和编辑器 227 
9.4.2 管理运行时环境和开发环境 230 
9.4.3 创建并运行插件 231 
9.5 练习概述 232 
9.6 本章小结 233 
9.7 参考文献 233 
第10章 使用胖客户端平台创建应用程序 235 
10.1 在rcp上构建应用程序的理由 235 
10.1.1 给企业带来的好处 235 
10.1.2 给软件开发者带来的好处 236 
10.1.3 给用户带来的好处 236 
10.2 复习eclipse体系结构 237 
10.2.1 eclipse应用程序类型 240 
10.2.2 eclipse的运行 241 
10.2.3 定义一个eclipse应用程序 242 
10.3 重用eclipse的时机 243 
10.3.1 非ui的插件组件 243 
10.3.2 swt图形用户界面 244 
10.3.3 基于添加项的workbench用户界面 245 
10.3.4 ide扩展 245 
10.4 实现自己的workbench 246 
10.4.1 可以在workbench中配置什么 249 
10.4.2 启动并运行自己的应用程序 250 
10.4.3 配置自己的应用程序 250 
10.4.4 支持来自其他插件的ui添加项 251 
10.5 练习概述 252 
10.6 本章小结 253 
10.7 参考文献 253 
第11章 创建扩展点：其他人怎样扩展您的插件 255 
11.1 扩展点和扩展之间的关系 255 
11.2 查看激活的插件、扩展以及扩展点的正式列表 257 
11.3 怎样定义扩展点 258 
11.3.1 选择需要让其他人扩展或配置的现有代码 258 
11.3.2 声明扩展点 260 
11.3.3 为预期的行为定义接口 261 
11.3.4 处理用于扩展点的注册表项 264 
11.3.5 通过以前定义的接口契约调用适当的方法 265 
11.4 处理动态插件 266 
11.5 怎样启用基于模式的new extension向导 267 
11.5.1 为什么要定义一个模式 268 
11.5.2 模式编辑器 268 
11.6 示例概述 269 
11.7 本章小结 269 
11.8 参考文献 269 
第12章 插件开发的高级专题 271 
12.1 从eclipse 2.1移植插件 271 
12.2 插件类加载器 272 
12.3 运行时发现以及延迟加载 273 
12.4 强制进行前期插件激活 274 
12.5 插件粒度 275 
12.6 插件片断 275 
12.6.1 片断用作语言包 276 
12.6.2 片断作为专用于某个平台的内容 276 
12.7 本章小结 277 
12.8 参考文献 277 
第13章 定义功能部件和产品 279 
13.1 功能部件 279 
13.1.1 功能部件的概念 279 
13.1.2 功能部件的定义 281 
13.1.3 烙印功能部件的商标 285 
13.1.4 安装功能部件 287 
13.2 产品 292 
13.2.1 创建产品定义 292 
13.2.2 定义产品介绍的内容 293 
13.2.3 在eclipse platform上构建自己的产品 294 
13.3 练习概述 295 
13.4 本章小结 295 
13.5 参考文献 296 
第ⅲ部分 扩展eclipse workbench 
第14章 swt：一个轻便但出色的小部件体系 299 
14.1 swt应用程序的基本结构 300 
14.2 常见的swt小部件 302 
14.3 对事件作出响应 304 
14.4 怎样使用布局管理器来布置swt小部件 307 
14.4.1 填充布局 310 
14.4.2 行布局 310 
14.4.3 栅格布局 312 
14.4.4 窗体布局 315 
14.4.5 栈布局 317 
14.4.6 布局管理器总结 317 
14.5 错误处理 317 
14.6 小部件有特殊的销毁需求 318 
14.7 使用线程来分离ui和非ui行为 320 
14.8 swt包概述 322 
14.9 swt对swing的支持 323 
14.10 eclipse forms 323 
14.11 示例概述 324 
14.12 本章小结 324 
14.13 参考文献 325 
第15章 jface查看器 327 
15.1 查看器基础 327 
15.1.1 查看器的概念 327 
15.1.2 查看器的外观 328 
15.1.3 查看器的类型 328 
15.1.4 查看器的用法 329 
15.1.5 使用查看器的原因 329 
15.2 查看器架构 330 
15.2.1 类结构 330 
15.2.2 内容提供者、内容查看器与标签提供者之间的关系 331 
15.3 创建基本的内容查看器的配置 332 
15.3.1 确定输入 332 
15.3.2 创建查看器 333 
15.3.3 创建内容提供者 334 
15.3.4 创建标签提供者 334 
15.3.5 把查看器与内容提供者、标签提供者连接起来 336 
15.3.6 定义到查看器的输入内容 336 
15.3.7 实现模型-查看器同步 337 
15.4 控制在结构化查看器中显示的内容 341 
15.4.1 过滤查看器的内容 342 
15.4.2 对查看器内容进行排序 343 
15.5 与查看器对象相互作用 345 
15.5.1 处理查看器中用户选中的对象 346 
15.5.2 自由地创建查看器弹出菜单操作 347 
15.5.3 添加查看器操作 348 
15.6 使用其他类型的查看器 349 
15.6.1 表查看器 350 
15.6.2 树查看器 351 
15.6.3 表树查看器 352 
15.6.4 复选框查看器 352 
15.7 workbench集成的高级选项 352 
15.7.1 增加对properties对话框的支持 353 
15.7.2 在查看器中为对象添加标签修饰 354 
15.8 示例概述 356 
15.9 本章小结 356 
15.10 参考文献 357 
第16章 对话框和向导 359 
16.1 对话框——非workbench 部分的用户界面 359 
16.1.1 引用点——用户界面架构 360 
16.1.2 用于对话框和向导的workbench扩展点 360 
16.1.3 常见的可重用对话框 363 
16.2 向preferences对话框中添加首选项页面 364 
16.2.1 定义首选项页面扩展 365 
16.2.2 实现首选项页面 366 
16.2.3 定义首选项页面的用户界面 367 
16.2.4 如何向首选项页面添加首选项值逻辑 368 
16.2.5 构建字段编辑器首选项页面 379 
16.3 向properties对话框中添加属性页面 373 
16.3.1 定义属性页面扩展 374 
16.3.2 实现属性页面 376 
16.3.3 定义属性页面的用户界面 377 
16.3.4 添加资源属性的访问逻辑 378 
16.3.5 保存那些特定于资源类型的属性 370 
16.3.6 实现自己的属性对话框 380 
16.4 添加向导 380 
16.4.1 定义向导扩展 381 
16.4.2 实现向导 383 
16.4.3 实现向导页面 384 
16.4.4 定制向导 385 
16.4.5 控制向导页面的进展 387 
16.4.6 延迟创建向导页面的用户界面 388 
16.4.7 可重用的专用向导页面 389 
16.5 直接打开向导对话框来处理向导 391 
16.6 示例概述 392 
16.7 本章小结 393 
16.8 参考文献 393 
第17章 对话框设置、首选项及用户设置 395 
17.1 对话框设置、首选项值以及用户设置选项概述 395 
17.1.1 对话框设置 395 
17.1.2 首选项值 396 
17.1.3 用户设置 396 
17.2 对话框设置中的存储值 396 
17.2.1 管理对话框设置 397 
17.2.2 对话框设置的用法 398 
17.3 存储插件的首选项值 398 
17.3.1 管理首选项值 399 
17.3.2 设置默认的首选项值 400 
17.3.3 对首选项值的更改作出反应 400 
17.4 使用用户设置管理作用域内的属性值 401 
17.4.1 作用域、节点和存储值 401 
17.4.2 作用域的层次结构 402 
17.4.3 访问用户设置 403 
17.4.4 更改通知 405 
17.5 示例概述 405 
17.6 本章小结 406 
17.7 参考文献 406 
第18章 视图 407 
18.1 视图：通用workbench部分 407 
18.1.1 行为 408 
18.1.2 体系结构 409 
18.1.3 功能 409 
18.2 视图的实现 410 
18.2.1 设计视图 410 
18.2.2 声明视图扩展 411 
18.2.3 创建视图类 412 
18.2.4 定义用户界面 413 
18.2.5 添加视图操作 414 
18.2.6 保存和恢复视图的状态 416 
18.2.7 打开一个视图的第二个实例 416 
18.2.8 支持show in请求 417 
18.2.9 回顾视图的实现 418 
18.3 支持操作添加项 419 
18.3.1 创建添加项的目标菜单占位符 419 
18.3.2 把快捷菜单注册到workbench中 420 
18.4 与其他workbench组件交互 421 
18.4.1 共享并侦听workbench部分被选中的内容 422 
18.4.2 提供显示在properties视图中的内容 424 
18.4.3 支持全局操作 429 
18.5 示例概述 430 
18.6 本章小结 430 
18.7 参考文献 431 
第19章 编辑器 433 
19.1 编辑器的行为和体系结构 433 
19.2 基本的实现步骤 434 
19.2.1 设计编辑器的外观 435 
19.2.2 为编辑器的输入创建一个new向导(可选) 435 
19.2.3 声明编辑器扩展 436 
19.2.4 创建编辑器类 437 
19.2.5 使用编辑器输入实例化模型 437 
19.2.6 定义用户界面 439 
19.2.7 处理用户对编辑器输入的修改 439 
19.2.8 处理对编辑器输入的保存 439 
19.2.9 把查看器与模型关联起来 440 
19.2.10 使模型和编辑器同步 440 
19.2.11 处理用户所选的内容 441 
19.2.12 定义编辑器的操作 441 
19.3 除了基本实现步骤之外的其他内容 444 
19.3.1 重用胖客户端平台和ideworkbench的专用编辑器 445 
19.3.2 连接编辑器和outline视图 446 
19.3.3 在编辑器和视图之间导航 447 
19.4 示例概述 448 
19.5 本章小结 449 
19.6 参考文献 449 
第20章 透视图 451 
20.1 创建透视图 451 
20.2 使用perspectiveextensions扩展点 453 
20.3 示例概述 454 
20.4 本章小结 455 
20.5 参考文献 455 
第21章 操作添加项：集成捷径 457 
21.1 操作添加项扩展点 458 
21.2 操作添加项基础 459 
21.2.1 操作添加项api 459 
21.2.2 在插件清单文件中指定添加项 461 
21.2.3 在菜单和工具栏中指定操作 463 
21.2.4 使用过滤器来精确定义您的操作出现的位置 465 
21.2.5 被选中内容的类过滤器 466 
21.2.6 使用操作表达式创建精细的过滤器 466 
21.3 向workbench菜单栏和工具栏添加操作 469 
21.4 向视图的菜单和工具栏添加操作 474 
21.5 向编辑器的菜单和工具栏添加操作 478 
21.6 向视图和编辑器添加快捷菜单 481 
21.6.1 向视图添加快捷菜单 481 
21.6.2 向编辑器添加快捷菜单 482 
21.6.3 向视图或编辑器中被选中的对象添加快捷菜单 483 
21.7 向操作指派加速键 486 
21.8 示例概述 489 
21.9 本章小结 489 
21.10 参考文献 490 
第22章 提供帮助 491 
22.1 集成您的联机文档 492 
22.1 1 把帮助内容创建为html内容 493 
22.1.2 声明帮助扩展 493 
22.1.3 创建目录文件 494 
22.1.4 eclipse的联机文档 496 
22.2 创建上下文相关的帮助 497 
22.2.1 声明帮助的上下文扩展 497 
22.2.2 定义弹出信息的内容 497 
22.2.3 把弹出信息与ui上下文关联起来 498 
22.3 运行独立的帮助infocenter 500 
22.4 定制help系统 500 
22.5 示例概述 501 
22.6 本章小结 501 
22.7 参考文献 501 
第ⅳ部分 扩展eclipse ide 
第23章 工作空间资源编程 505 
23.1 资源的概念 505 
23.1.1 物理视图 506 
23.1.2 逻辑视图 507 
23.1.3 资源模型与文件系统的交互 508 
23.1.4 navigator视图中资源的可见性 509 
23.2 工作空间api 510 
23.2.1 工作空间和工作空间根目录 510 
23.2.2 资源容器 512 
23.2.3 工作空间资源句柄 513 
23.2.4 项目 514 
23.2.5 项目描述 515 
23.2.6 资源 517 
23.2.7 路径 518 
23.2.8 文件夹和文件 520 
23.2.9 链接资源 521 
23.2.10 访问资源树中的资源 522 
23.3 资源属性 524 
23.3.1 会话属性 524 
23.3.2 持久属性 525 
23.4 处理工作空间资源更改事件 526 
23.4.1 使用工作空间api跟踪更改 526 
23.4.2 添加资源更改侦听器 526 
23.4.3 资源更改事件触发的时序 529 
23.4.4 访问资源变化 530 
23.4.5 资源变化内容 533 
23.5 资源更改事件管理 534 
23.5.1 使用iworkspacerunnable 534 
23.5.2 使用workspacejob类 535 
23.5.3 使用工作空间调度规则工厂 536 
23.6 使用工作空间保存事件来保存关键数据 537 
23.6.1 保存事件——何种与何时 537 
23.6.2 保存参与者api 537 
23.7 示例概述 539 
23.8 本章小结 540 
23.9 参考文献 540 
第24章 利用性质和构建器管理资源 541 
24.1 定制项目的处理行为 541 
24.1.1 如何使用性质和构建器 541 
24.1.2 扩展工作空间资源处理架构 542 
24.2 定义和实现性质 542 
24.2.1 创建性质以支持项目配置 542 
24.2.2 将性质添加到项目中 544 
24.2.3 管理性质-构建器关系 545 
24.2.4 使用定制图像标识您的项目性质 546 
24.3 定义和实现增量项目构建器 547 
24.3.1 构建器基础 547 
24.3.2 构建器调用 548 
24.3.3 判断何时需要使用构建器 549 
24.3.4 构建器的定义和实现 550 
24.4 示例概述 553 
24.5 本章小结 554 
24.6 参考文献 554 
第25章 使用标记对资源进行标识 555 
25.1 使用标记 555 
25.1.1 创建定制的资源标记 557 
25.1.2 设置标记属性 558 
25.1.3 在标记创建和更新的过程中限制资源更改事件 558 
25.2 添加新的标记类型 559 
25.2.1 定义标记超类型 559 
25.2.2 重用超类型属性 561 
25.2.3 控制标记持久性 561 
25.2.4 向文本标记添加定制图像 561 
25.3 用标记解析生成器和帮助支持生成器扩展标记 562 
25.3.1 添加标记解析 563 
25.3.2 添加标记帮助 564 
25.4 示例概述 565 
25.5 本章小结 566 
25.6 参考文献 566 
第26章 使用jface text构建定制的文本编辑器 567 
26.1 标准的文本编辑器功能 568 
26.1.1 文本编辑和查看 568 
26.1.2 标准菜单和工具栏项 568 
26.1.3 标准的标记表示 569 
26.2 编辑器配置：定制点 570 
26.2.1 内容辅助 570 
26.2.2 语法突出显示 571 
26.2.3 内容格式化 571 
26.2.4 各种各样的定制 572 
26.3 文本编辑器的实现细节 572 
26.3.1 选择编辑器的起点 573 
26.3.2 textviewer类 573 
26.3.3 abstractdecoratedtext editor类的关系 574 
26.3.4 文档的来源 575 
26.3.5 模型-视图-控制器关系 576 
26.3.6 对文档进行分区 577 
26.3.7 sourceviewerconfiguration类 578 
26.4 示例概述 578 
26.5 本章小结 579 
26.6 参考文献 579 
第27章 扩展java开发工具 581 
27.1 jdt概述及其作用 581 
27.2 java模型 582 
27.3 访问可重用的jdt功能 584 
27.3.1 javacore类 584 
27.3.2 javaui类 588 
27.3.3 toolfactory类 589 
27.3.4 searchengine类 590 
27.4 编译java源代码 590 
27.5 分析java源代码 590 
27.5.1 jdt abstract syntax tree 591 
27.5.2 细粒度解析java源代码 594 
27.6 操作java源代码 598 
27.6.1 使用isourcemanipulation进行简单源代码操作 598 
27.6.2 使用ibuffer进行稍复杂的源代码操作 598 
27.6.3 使用ast重写进行复杂的源代码操作 601 
27.7 jdt在何处扩展了eclipse 604 
27.8 扩展jdt用户界面 605 
27.8.1 添加视图操作 605 
27.8.2 添加编辑器操作 607 
27.8.3 向java元素快捷菜单添加操作 608 
27.8.4 向特定视图或者编辑器快捷菜单添加操作 608 
27.8.5 添加全局操作 609 
27.8.6 在自己的视图中显示jdt元素 609 
27.8.7 重用公共的jdt选择对话框 609 
27.9 示例概述 610 
27.10 本章小结 610 
27.11 参考文献 610 
第ⅴ部分 可扩展性专题第28章 可服务性 613 
28.1 插件诊断信息：系统和配置信息 614 
28.2 eclipse status对象：状态收集器 614 
28.3 异常处理：错误检测 616 
28.4 错误对话框：在错误消息中提供详细的状态信息 616 
28.5 运行时跟踪：一个运行时诊断工具 618 
28.6 在产品环境中使用跟踪 620 
28.7 诊断信息：一个内容丰富的错误日志 620 
28.8 错误记录：把错误写入workbench错误日志中 621 
28.9 示例概述 622 
28.10 本章小结 622 
28.11 参考文献 622 
第29章 使用作业实现响应性和并发性 623 
29.1 并发性架构 623 
29.1.1 在架构中谁完成了什么工作？ 624 
29.1.2 作业的基础 625 
29.1.3 作业的类型 628 
29.1.4 作业管理器 629 
29.1.5 作业在用户界面中的可见性 630 
29.1.6 冲突管理 631 
29.1.7 回顾并发性架构 632 
29.2 使用作业 632 
29.2.1 创建作业 633 
29.2.2 定义作业的属性 634 
29.2.3 调度作业 634 
29.2.4 使用sleep请求来暂停一个作业 635 
29.2.5 等待作业的完成 635 
29.2.6 侦听作业更改事件 636 
29.2.7 请求撤销作业 637 
29.3 用户交互选项 638 
29.3.1 使用特定于作业的图像 638 
29.3.2 使用活动进度报告的方式运行作业 639 
29.3.3 workbench部分用于作业处理的支持技术 639 
29.3.4 提供作业的完成反馈 640 
29.4 作业的冲突管理选项 642 
29.4.1 使用作业管理器锁 642 
29.4.2 使用调度规则 643 
29.4.3 工作空间资源对调度规则的支持 644 
29.4.4 定义调度规则 645 
29.5 示例概述 646 
29.6 本章小结 646 
29.7 参考文献 646 
第30章 使用功能组管理丰富 的功能 647 
30.1 功能组简介 648 
30.2 功能组扩展点 651 
30.3 定义主向导 656 
30.4 活动api 657 
30.5 定义自己的触发器 659 
30.6 示例概述 659 
30.7 本章小结 659 
30.8 参考文献 660 
第31章 国际化和辅助功能 661 
31.1 国际化对插件有何影响 661 
31.2 国际化的步骤 663 
31.2.1 把可翻译的字符串移动到*.properties文件中 663 
31.2.2 隔离那些依赖于外观的参数 664 
31.2.3 使用语言环境敏感的正确数据格式和置换api 664 
31.2.4 使用自己本国的语言进行测试 664 
31.2.5 创建初始翻译的插件片断 665 
31.2.6 eclipse语言包jar 665 
31.3 辅助功能 667 
31.4 示例概述 668 
31.5 本章小结 668 
31.6 参考文献 669 
第32章 性能调整 671 
32.1 应该快速启动eclipse的原因 671 
32.2 使用runtime spy诊断启动问题 672 
32.2.1 安装core tools 672 
32.2.2 侦查workbench的开发 673 
32.2.3 侦查运行时workbench 679 
32.2.4 接下来的内容 679 
32.3 示例研究：提升ibm web sphere studio的启动性能 680 
32.3.1 帮助eclipse快速启动 680 
32.3.2 再论runtime spy 681 
32.3.3 侦查websphere studio 681 
32.4 用performance monitor避免性能衰减 688 
32.4.1 安装 689 
32.4.2 示例的使用 689 
32.5 特定于eclipse的性能问题的通用解决方案 691 
32.6 本章小结 692 
32.7 参考文献 692 
第33章 swing互操作性 693 
33.1 在视图和编辑器中嵌入awt和swing 693 
33.2 启动-编辑集成 698 
33.2.1 调用模式 699 
33.2.2 提升最终用户的使用经验 699 
33.2.3 常见的集成问题 700 
33.3 abceditor示例——进程内调用 700 
33.3.1 用于外部编辑器的编辑器扩展 700 
33.3.2 添加workbench感知——资源同步 702 
33.3.3 添加workbench感知——工具首选项 703 
33.3.4 处理系统退出 704 
33.4 示例概述 704 
33.5 本章小结 704 
33.6 参考文献 705 
第34章 ole与activex互操作性 707 
34.1 eclipse中的com支持 708 
34.1.1 内嵌的ole文档 708 
34.1.2 内嵌的activex控件 708 
34.2 com容器支持 709 
34.2.1 创建oleframe对象 709 
34.2.2 创建oleclientsite对象 709 
34.2.3 激活ole对象 710 
34.2.4 钝化ole对象 711 
34.2.5 eclipse ole编辑器支持 711 
34.2.6 创建olecontrolsite对象 712 
34.2.7 激活olecontrolsite对象 713 
34.3 ole自动化——访问已扩展的行为 713 
34.3.1 ole exec命令 714 
34.3.2 idispatch接口 715 
34.3.3 方法 716 
34.3.4 不带参数的调用 716 
34.3.5 variant类型 717 
34.3.6 带参数的调用 717 
34.3.7 属性 718 
34.3.8 事件和属性侦听器 720 
34.4 示例概述 721 
34.5 本章小结 721 
34.6 参考文献 722 
第ⅵ部分 练 习 
练习1 使用eclipse 725 
第1节：您的第一个eclipse项目 725 
第2节：编辑器和视图 729 
第3节：对资源进行操作 735 
第4节：透视图 740 
第5节：在eclipse使用多窗口和多工作空间 742 
第6节：获得帮助 744 
练习回顾 748 
参考文献 749 
练习2 使用java开发工具 751 
第1节：hello world程序 751 
第2节：快速修正 753 
第3节：代码生成 759 
第4节：重构 763 
练习回顾 769 
参考文献 769 
练习3 java程序的运行与调试 771 
第1节：启动配置 771 
第2节：调试ⅰ 776 
第3节：调试ii 780 
第4节：调试线程 784 
第5节：远程调试 787 
练习回顾 790 
参考文献 790 
练习4 使用eclipse开发一个简单的web商业应用程序 791 
练习设置 792 
第1节：设置运行时环境 792 
第2节：创建示例的项目 795 
第3节：调试示例 801 
第4节：部署示例 806 
练习回顾 810 
参考文献 810 
练习5 使用cvs开展小组工作 811 
练习设置 811 
第1节：入门 813 
第2节：更新、提交和解决冲突 819 
第3节：分支与合并 827 
练习回顾 833 
参考文献 834 
练习6 开发您的第一个插件 835 
练习设置 835 
第1节：在5分钟或更短的时间内创建“hello,world”程序 837 
第2节：使用详细指令逐步创建“hello,world”程序 838 
第3节：使用运行时工作台对插件进行测试 846 
第4节：使用运行时工作台对插件进行调试 846 
第5节：定义功能部件以支持插件 849 
第6节：部署功能部件及其相关插件 850 
第7节：浏览(有时还可修改)eclipse平台代码 852 
第8节：常见问题的解决 854 
练习回顾 856 
练习7 开发您的第一个胖客户端应用程序 857 
练习设置 858 
入门 858 
第1节：创建应用程序扩展 860 
第2节：创建透视图扩展 861 
第3节：创建workbench顾问 862 
第4节：实现应用程序的主程序 863 
第5节：运行并测试您的rcp应用程序 863 
第6节：配置workbench窗口用户界面元素 864 
第7节：添加菜单和工具栏操作 866 
第8节：部署应用程序 870 
第9节：添加“可选的”组件 874 
练习回顾 877 
练习8 运用动态添加的插件开发胖客户端应用程序 879 
练习设置 880 
第1节：创建rcp应用程序启动配置 880 
第2节：实现插件生命周期的start()方法 884 
第3节：实现您的配置器 885 
第4节：开发一个简单的插件发现机制 888 
第5节：动态安装bonus pack 889 
练习回顾 891 
练习9 使用功能部件部署产品 893 
练习设置 894 
第1节：功能部件开发者的任务 894 
第2节：eclipse用户的任务 900 
第3节：产品开发者的任务 902 
第4节：产品服务团队的任务——实现一个更新站点 904 
第5节：eclipse用户的任务——更新 905 
练习回顾 906