第一部分 基 础篇 2
第1章 初识Eclipse RCP 2
1.1 Eclipse平台概述 2
1.2 Eclipse RCP概述 2
1.3 Eclipse RCP的应用 3
1.4 OSGi与Equinox 5
1.5 SWT与JFace 7
1.6小结 7
第2章 搭建Eclipse RCP开发环境 8
2.1 JDK的安装与配置 8
2.1.1下载JDK安装程序 8
2.1.2安装JDK运行程序 8
2.1.3配置JDK运行环境 10
2.1.4测试JDK安装状态 11
2.1.5缷载JDK应用程序 11
2.2安装Eclipse IDE 12
2.2.1 Eclipse开发包 12
2.2.2 Eclipse版本更新 13
2.2.3下载Eclipse 14
2.2.4安装Eclipse 14
2.2.5技术资源 14
2.3 Maven的安装与配置 14
2.3.1 Maven介绍 14
2.3.2下载Maven 15
2.3.3安装Maven 15
2.3.4 测试Maven 16
2.3.5修改Maven的配置文件 16
2.3.6技术资源 17
2.4 Maven和Eclipse的集成 17
2.4.1安装Maven Eclipse插件 17
2.4.2配置Maven Eclipse插件 18
2.4.3技术资源 18
2.5安装Spring IDE Plugin 19
2.5.1 Spring IDE介绍 19
2.5.2安装Spring IDE插件 19
2.5.3技术资源 19
2.6安装WindowBuilderProPlugin 20
2.6.1 WindowBuilder介绍 20
2.6.2安装WindowBuilder插件 21
2.7小结 21
第3章SWT界面设计详解 22
3.1 SWT介绍 22
3.2 WindowBuilder插件初识 23
3.2.1设计视图 23
3.2.2源码视图 24
3.2.3结构视图 26
3.3 SWT设计面板 26
3.4 SWT设计准备 27
3.4.1 Element 27
3.4.2 ElementFactory 28
3.5 Shell使用入门 30
3.5.1 Shell样式 30
3.5.2 Shell TRIM 30
3.5.3 Shell模态类型 31
3.6容器使用入门 33
3.6.1 Composite 33
3.6.2 Group 34
3.6.3 ScrolledComposit 35
3.6.4 SashForm 36
3.6.5 TabFolder与TabItem 36
3.6.6 CTabFolder与CTabItem 37
3.6.7 ViewForm 38
3.6.8 CBanner 40
3.7容器使用进阶 41
3.7.1 checkSubclass方法 41
3.7.2界面复用 42
3.7.3添加自定义的Component 44
3.7.4背景模式 45
3.7.5带分隔条的SashForm 47
3.8布局使用入门 48
3.8.1 AbsoluteLayout 48
3.8.2 FillLayout 49
3.8.3 GridLayout 50
3.8.4 FormLayout 51
3.8.5 RowLayout 52
3.8.6 StackLayout 53
3.8.7 GroupLayout 54
3.8.8 FlowLayout 55
3.8.9 BoxLayout 56
3.8.10 BorderLayout 57
3.9布局使用进阶 58
3.9.1使用AbsoluteLayout 58
3.9.2使用GridLayout 59
3.9.3 StackLayout 59
3.10控件使用入门 60
3.10.1 Label 60
3.10.2 CLabel 61
3.10.3 Separator 62
3.10.4 Text 63
3.10.5 StyledText 63
3.10.6 Combo 64
3.10.7 CCombo 64
3.10.8 List 65
3.10.9 Button 66
3.10.10 DateTime 68
3.10.11 Spinner 68
3.10.12 Slider 69
3.10.13 Scale 70
3.10.14 Link 70
3.10.15 ToolBar与ToolItem 71
3.10.16 CoolBar与CoolItem 73
3.10.17 ExpandBar与ExpandItem 74
3.10.18 ProgressBar 75
3.10.19 Browser 76
3.10.20 Canvas 77
3.10.21 TrayItem 77
3.10.22 Table 78
3.10.23 Tree 80
3.10.24 TableTree 81
3.11控件使用进阶 83
3.11.1创建Simple Table 83
3.11.2创建Lazy Table 86
3.11.3创建Virtual Table 89
3.11.4 Virtual Table注意事项 92
3.11.5 Virtual Table排序 94
3.11.6创建Lazy Tree 95
3.11.7创建Virtual Tree 100
3.11.8创建TreeVirtualDynamic 104
3.11.9创建POJOComposite 106
3.11.10如何与浏览器交互 107
3.12菜单使用入门 111
3.12.1 Menu Bar组件 111
3.12.2 Popup Menu 112
3.12.3 MenuItem 113
3.13菜单使用进阶 113
3.14技术资源 113
3.15小结 114
第4章JFace界面设计详解 115
4.1 MVC设计思想 115
4.1.1 MVC模式 115
4.1.2 Java与MVC模式 116
4.2 JFace与MVC模式 117
4.2.1 JFace Viewer框架概述 117
4.2.2 JFace Viewer框架机制 118
4.3 JFace常用组件入门 121
4.3.1 ComboViewer 122
4.3.2 ListViewer 130
4.3.3 TableViewer 132
4.3.4 TreeViewer 135
4.3.5 CheckboxTableViewer 137
4.3.6 CheckboxTreeViewer 139
4.3.7 TreeTableViewer 141
4.3.8 TableViewer Composite 141
4.3.9 Table Composite 142
4.3.10 TreeViewer Composite 142
4.3.11 Tree Composite 143
4.4 JFace组件使用进阶 143
4.4.1数据绑定 143
4.4.2基于EditingSupport的可编辑表格 146
4.4.3基于ICellModifier的可编辑表格 147
4.4.4对话框编辑器 149
4.4.5其他表格标签 150
4.4.6 Viewer浮动提示控件 151
4.5小结 153
第5章Eclipse Forms与Nebula界面设计 154
5.1 Eclipse Forms项目介绍 154
5.2 Eclipse Forms使用入门 154
5.2.1 Composite 154
5.2.2 ExpandableComposite 155
5.2.3 Label与Text 158
5.2.4 Hyperlink与ImageHyperlink 158
5.2.5 Composite Separator 159
5.2.6 Section 160
5.2.7 Form与ScrolledForm 162
5.3 Eclipse Forms使用进阶 164
5.3.1 FormEditor与FormPage 164
5.3.2 MasterDetailsBlock与IDetailsPage 167
5.4 Eclipse Forms技术资源 173
5.5 Nebula项目介绍 173
5.6安装Eclipse Nebula Plugin 174
5.6.1安装Eclipse Nebula Main Widgets 174
5.6.2安装Eclipse Nebula incubation Widgets 174
5.6.3加载Eclipse Nebula控件到WindowBuilder Pro Plugin中 174
5.7 Nebula Main Widgets设计初识 176
5.8 Nebula Incubation widgets设计初识 177
5.9 Nebula设计经验 178
5.10 Nebula技术资源 180
5.11小结 180
第二部分 高 级篇 182
第6章Eclipse RCP开发基础 182
6.1 Eclipse概念 182
6.1.1欢迎界面 183
6.1.2工作台 183
6.1.3透视图 184
6.1.4视图 184
6.1.5编辑器 185
6.2 RCP应用程序设计 185
6.2.1 RCP插件创建向导 185
6.2.2 Plug-in Project 185
6.2.3 Plugin Content 186
6.2.4 Templates 187
6.2.5 Sample Intro 188
6.2.6产品初次运行 188
6.3插件清单编辑器 189
6.3.1插件概述 189
6.3.2插件依赖项 191
6.3.3插件运行时 193
6.3.4插件扩展 197
6.3.5插件扩展点 199
6.3.6插件构建 199
6.3.7其他页面 200
6.4 RCP Activator与Advisor类解析 200
6.4.1 WorkshopAppActivator 200
6.4.2 Application 201
6.4.3 ActionBarAdvisor 202
6.4.4 WorkbenchAdvisor 203
6.4.5 WorkbenchWindowAdvisor 205
6.5小结 206
第7章 构建产品帮助系统 207
7.1创建帮助插件向导 207
7.1.1帮助插件的Content向导页面 208
7.1.2帮助插件的Templates向导页面 208
7.1.3帮助插件的Sample Help Table of Contents向导页面 209
7.2维护Help Content 209
7.2.1帮助系统配置与资源文件的目录 209
7.2.2帮助系统配置与资源文件的关系 210
7.2.3帮助系统扩展 211
7.3添加帮助的菜单项 211
7.4帮助文件的创建 212
7.5小结 212
第8章 构建产品欢迎页面 213
8.1产品绑定欢迎页面 213
8.1.1欢迎页面扩展 213
8.1.2欢迎页面定义 215
8.1.3欢迎页面首页 215
8.1.4页面跳转链接 216
8.2欢迎页面请求 216
8.2.1创建IIntroAction 216
8.2.2添加IIntroAction链接 217
8.3添加动态内容 217
8.3.1动态页面创建 217
8.3.2动态数据创建 218
8.4创建页面扩展 219
8.5小结 221
第9章 构建产品多国语言 222
9.1插件清单的多国语言 222
9.2 Java程序的多国语言 223
9.2.1 Java程序的外部化字符串 223
9.2.2 Java程序的多国语言包 226
9.2.3产品多国语言进阶 228
9.3帮助系统的多国语言 229
9.4 Eclipse界面汉化 230
9.5切换软件系统语言 234
9.5.1添加自定义产品的confiig文件 234
9.5.2添加语言切换扩展点 234
9.5.3语言切换处理器 236
9.6小结 238
第10章 产品的运行与导出 240
10.1产品配置 240
10.2产品配置编辑器 241
10.3导出向导 244
10.3.1产品导出 244
10.3.2跨平台导出 245
10.3.3插件导出 247
10.4运行与导出进阶 247
10.5小结 250
第11章Eclipse RCP扩展的使用 251
11.1 ViewPart视图 251
11.1.1创建新插件 251
11.1.2视图向导 251
11.1.3视图代码 252
11.1.4视图扩展 252
11.2 Perspective透视图 253
11.2.1透视图向导 253
11.2.2透视图代码 254
11.2.3透视图扩展 254
11.2.4透视图布局 255
11.2.5打开透视图 256
11.3 EditorPart编辑器 256
11.3.1创建数据表单 257
11.3.2创建编辑器的输入 257
11.3.3创建编辑器 260
11.3.4创建视图树形组件 262
11.3.5编辑器扩展 262
11.4编程实现Action 263
11.4.1 IAction 263
11.4.2 ToolBar工具栏 264
11.4.3 CoolBar工具栏 264
11.4.4 ContentMenuBar菜单栏 265
11.4.5工作台Action 265
11.4.6视图Action菜单栏 267
11.4.7视图Action工具栏 267
11.4.8编辑器Action工具栏 268
11.5扩展实现Action 269
11.5.1工作台Action扩展 269
11.5.2视图Action扩展 270
11.5.3编辑器Action扩展 271
11.6 Action的键盘绑定 272
11.6.1 Commands扩展 273
11.6.2 Bindings扩展 274
11.7 Eclipse RCP设计进阶 276
11.7.1视图/编辑器之间通信 276
11.7.2创建状态栏项 278
11.7.3创建属性配置页面 279
11.7.4创建登录对话框 286
11.8小结 289
第12章Eclipse RCP扩展点开发 290
12.1扩展点简介 290
12.2创建扩展点 290
12.3扩展点编辑器 291
12.3.1扩展点概述 291
12.3.2扩展点定义 292
12.3.3扩展点源码 295
12.4扩展点处理 295
12.4.1扩展点对象 295
12.4.2扩展点注册 296
12.4.3扩展点获取 297
12.5添加扩展 301
12.6使用扩展 302
12.7小结 303
第三部分 实 战篇 306
第13章Eclipse RCP与Spring OSGi 306
13.1 OSGi技术介绍 306
13.1.1软件开发面临的问题 306
13.1.2动态模块化解决方案 306
13.1.3 OSGi框架 307
13.1.4选择合适的OSGi实现 308
13.2 Spring OSGi项目所需要的开发包 308
13.2.1下载Spring DM的开发包 308
13.2.2解压缩Spring DM的开发包 309
13.2.3创建Spring DM目标平台 309
13.3 Spring OSGi项目的Maven管理 311
13.3.1创建Maven POM项目 311
13.3.2修改Maven项目类型 312
13.4 Spring OSGi项目的模块化设计 313
13.4.1创建Spring DM业务项目 313
13.4.2设计Spring DM业务项目 313
13.5 Spring OSGi项目转为插件项目 318
13.6 Spring OSGi插件项目发布接口 319
13.6.1创建接口发布配置 319
13.6.2添加包的路径导出 319
13.7 Eclipse RCP获取Spring OSGi服务 320
13.7.1创建Eclipse RCP UI插件 320
13.7.2获取Spring OSGi服务接口 320
13.7.3调用Spring OSGi服务接口 321
13.8 Eclipse RCP与Spring OSGi的启动 322
13.8.1 Eclipse应用程序启动选项 322
13.8.2启动Eclipse RCP产品配置 326
13.8.3启动基于Spring OSGi的RCP程序 326
13.9在Eclipse RCP中获取ApplicationContext和Bean 328
13.10 Spring OSGi的Maven插件项目打包 331
13.10.1 PDE插件导出向导 331
13.10.2 Maven插件项目的打包配置 332
13.10.3执行Maven插件打包& 333
13.11小结 334
第14章Eclipse RCP与数据访问 335
14.1 SpringOSGi与Hibernate 335
14.1.1 Hibernate简介 335
14.1.2数据访问插件目标 335
14.1.3数据访问插件设计 336
14.2插件如何引入第三方开发包 338
14.2.1如何获取第三方开发包 338
14.2.2 如何引用第三方开发包 341
14.3将普通JAR转成插件格式 344
14.3.1导入向导 344
14.3.2 BND工具 344
14.4创建数据库插件 345
14.4.1 Maven POM配置文件 345
14.4.2 properties配置文件 346
14.4.3 Spring XML配置文件 346
14.4.4 MAINFEST.MF配置文件 349
14.5创建连接池插件 349
14.5.1 Maven POM配置文件 349
14.5.2 properties配置文件 349
14.5.3 Spring XML配置文件 350
14.5.4 Java类设计 352
14.5.5 MAINFEST.MF配置文件 355
14.6创建连接池Feature插件 355
14.6.1修改DBCP的MAINFEST.MF文件 356
14.6.2创建DBCP的Fragment插件 356
14.7创建Hibernate插件 356
14.7.1 Maven POM配置文件 356
14.7.2 properties配置文件 358
14.7.3 Spring XML配置文件 358
14.7.4扩展点设计 362
14.7.5 Java类设计 364
14.7.6 MAINFEST.MF配置文件 371
14.8创建业务插件 371
14.8.1 Spring XML配置文件 372
14.8.2 Java类设计 375
14.8.3数据库SQL设计 376
14.8.4 MAINFEST.MF配置文件 376
14.8.5添加BundleAnnotationSessionFactory Bean扩展 377
14.9启动OSGi Framework程序 378
14.10其他整合数据库的方式 379
14.11基于数据访问插件的RCP程序启动 380
14.12小结 382
第15章Eclipse与Java的模块化设计 383
15.1基于编程语言的模块化 383
15.1.1 Java语句的模块化设计 383
15.1.2 Java方法的模块化设计 383
15.1.3 Java类的模块化设计 384
15.1.4 Java接口的模块化设计 385
15.2基于编程方法的模块化 385
15.2.1 IoC编程的模块化设计 385
15.2.2 AOP编程的模块化设计 386
15.3基于程序物理文件的模块化 388
15.3.1 Package路径的模块化设计 388
15.3.2 XML文件的模块化设计 389
15.3.3 Properties文件的模块化设计 389
15.3.4 JAR组件的模块化设计 390
15.4基于技术架构的模块化 391
15.4.1 OSGi的模块化设计 391
15.4.2 Eclipse插件的模块化设计 392
15.4.3 JMS的模块化设计 392
15.5模块化的技术移植 394
15.6小结 394