第1部分 Eclipse入門篇.
第1章 Eclipse概述 3
1.1 Eclipse項目背景 3
1.2 Eclipse簡介
1.2.1 開放式體系結構
1.2.2 平臺體系結構 4
1.3 Eclipse的主要功能特性 5
1.3.1 文件存放(Workspace) 5
1.3.2 Eclipse開發(fā)環(huán)境(Workbench) 6
1.3.3 編譯與運行 7
1.3.4 版本管理 7
1.4 工作臺 8
1.4.1 資源 8
1.4.2 資源層次結構 8
1.4.3 構建 8
1.5 運行時概述 9
1.5.1 運行時插件模型 9
1.5.2 插件 10
1.5.3 Bundle 10
1.6 開源的選擇 11
1.7 小結 12
第2章 Eclipse安裝及Java開發(fā) 13
2.1 Eclipse開發(fā)環(huán)境的安裝 13
2.1.1 JDK安裝 13
2.1.2 Eclipse安裝 14
2.2 Java開發(fā)工具JDT 14
2.2.1 視角 14
2.2.2 視圖 15
2.2.3 編輯器 16
2.3 在Eclipse中開發(fā)Java程序 16
2.3.1 Java項目 16
2.3.2 新建“Hello,32world”程序 17
2.3.3 運行程序與調試 18
2.3.4 類的構建路徑 19
2.3.5 項目構建 20
2.4 其他功能 20
2.4.1 查看源代碼 20
2.4.2 重構 21
2.4.3 生成Javado 文檔 21
2.5 Eclipse快捷鍵 22
2.5.1 編輯相關快捷鍵 22
2.5.2 查看和定位快捷鍵 23
2.5.3 調試快捷鍵 24
2.5.4 常用編輯器快捷鍵 24
2.5.5 其他快捷鍵 24
2.6 小結 25
第3章 Eclipse的使用 27
3.1 Eclipse插件安裝 27
3.1.1 拷貝安裝 27
3.1.2 links安裝 28
3.1.3 update安裝 29
3.1.4 查看插件 30
3.2 開發(fā)簡單的Web應用 31
3.2.1 安裝配置MyEclipse 31
3.2.2 創(chuàng)建Web應用 32
3.2.3 部署并運行Web應用 35
3.3 小結 36
第2部分 SWTJFace開發(fā)篇
第4章 SWT/JFace 入門 39
4.1 SWT/JFace簡介 39
4.1.1 SWT/JFace概述 39
4.2.2 SWT/JFace基本特性 40
4.2 SWT“Hello world”程序 41
4.2.1 加入SWT依賴的包 41
4.2.2 “Hello world”程序 43
4.2.3 運行“Hello world”程序 43
4.3 JFace“Hello world”程序 44
4.3.1 “Hello world”程序 44
4.3.2 運行“Hello world”程序 45
4.4 在SWT中使用Swing組件 46
4.4.1 在SWT的組件上加入Swing的組件 46
4.4.2 程序運行效果 48
4.5 小結 48
第5章 SWT常用組件 49
5.1 Control類 49
5.1.1 Control類的繼承關系 49
5.1.2 Control類的常用方法 49
5.2 Button組件 50
5.2.1 Button組件實例 50
5.2.2 Button組件的風格 52
5.2.3 Button組件的對齊方式 52
5.2.4 加入圖片及按鈕組合屬性 52
5.3 Label組件 53
5.3.1 Label組件實例 53
5.3.2 Label組件的風格和對齊方式 54
5.3.3 加入圖片及組合屬性 55
5.4 Text組件 55
5.4.1 Text組件實例 55
5.4.2 Text組件的風格 56
5.5 Combo組件 57
5.5.1 Combo組件實例 57
5.5.2 Combo組件的風格 59
5.6 List組件 59
5.6.1 List組件實例 59
5.6.2 List組件的風格 61
5.7 小結 61
第6章 SWT事件 63
6.1 鼠標事件 63
6.1.1 MouseListener接口 63
6.1.2 MouseMoveListener接口 64
6.1.3 MouseTra kListener接口 64
6.1.4 鼠標事件實例 65
6.2 鍵盤事件 67
6.2.1 KeyListener接口 67
6.2.2 鍵盤事件實例 67
6.3 焦點事件 69
6.3.1 FocusListener接口 69
6.3.2 焦點事件實例 69
6.4 窗口控制事件 71
6.4.1 ControlListener接口 71
6.4.2 窗口控制事件實例 71
6.5 選擇組件事件 72
6.5.1 SelectionListener接口 73
6.5.2 選擇組件事件實例 73
6.6 其他常用事件 74
6.6.1 HelpListener. VerifyListener和ModifyListener監(jiān)聽器的功能 74
6.6.2 HelpListener. VerifyListener和ModifyListener監(jiān)聽器實例 75
6.7 小結 77
第7章 SWT布局管理 79
7.1 概述 79
7.2 FillLayout布局 80
7.2.1 FillLayout的風格 80
7.2.2 FillLayout布局實例 80
7.3 RowLayout布局 82
7.3.1 RowLayout的風格 82
7.3.2 RowLayout布局實例 83
7.4 GridLayout布局 84
7.4.1 GridLayout的風格 85
7.4.2 GridData的相關屬性 85
7.4.3 GridLayout 布局實例 87
7.5 FormLayout布局 91
7.5.1 FormLayout布局信息 91
7.5.2 FormLayout布局實例 92
7.6 創(chuàng)建自己的布局 96
7.6.1 Layout類 96
7.6.2 創(chuàng)建自己的布局類 97
7.7 小結 100
第8章 SWT容器及其他組件 101
8.1 SWT容器 101
8.1.1 Composite組件 101
8.1.2 Group組件 102
8.1.3 TabFolder和TabItem組件 104
8.1.4 SashForm組件 105
8.2 菜單和工具欄 108
8.2.1 Menu和MenuItem組件 108
8.2.2 ToolBar和ToolItem組件 111
8.2.3 CoolBar和CoolItem組件 113
8.3 其他組件 115
8.3.1 Slider組件 115
8.3.2 Scale組件 116
8.3.3 ProgressBar組件 118
8.4 小結 120
第9章 Viewer組件 121
9.1 TreeViewer 121
9.1.1 TreeViewer構建步驟 121
9.1.2 內容提供器(ITreeContentProvider) 121
9.1.3 標簽提供器(ILabelProvider) 123
9.1.4 TreeViewer實例 123
9.2 TableViewer 127
9.2.1 TableViewer構建步驟 127
9.2.2 內容提供器(IStructured ContentProvider) 128
9.2.3 標簽提供器(ITableLabelProvider) 128
9.2.4 TableViewer實例 129
9.3 ListViewer 138
9.3.1 ListViewer功能 138
9.3.2 ListViewer實例 138
9.4 小結 142
第10章 對話框 143
10.1 消息對話框 143
10.1.1 消息對話框的功能 143
10.1.2 消息對話框實例 144
10.2 輸入對話框 147
10.2.1 輸入對話框的功能 147
10.2.2 輸入對話框實例 147
10.3 進度監(jiān)視對話框 149
10.3.1 進度監(jiān)視對話框的功能 149
10.3.2 進度監(jiān)視對話框實例 150
10.4 自定義對話框 153
10.4.1 帶標題區(qū)域對話框 153
10.4.2 自定義對話框實例 153
10.5 常用系統(tǒng)對話框 156
10.5.1 打印對話框(PrintDialog) 157
10.5.2 顏色對話框(ColorDialog) 157
10.5.3 字體對話框(FontDialog) 158
10.5.4 文件對話框(FileDialog) 159
10.5.5 目錄對話框(DirectoryDialog) 159
10.6 小結 160
第11章 SWT的其他應用 161
11.1 拖放 161
11.1.1 拖放的功能 161
11.1.2 拖放的實現(xiàn) 162
11.2 線程 164
11.2.1 線程同步和異步 164
11.2.2 線程同步和異步的實現(xiàn) 164
11.3 剪貼板 166
11.3.1 剪貼板的功能 166
11.3.2 剪貼板的實現(xiàn) 166
11.4 圖形上下文 168
11.4.1 圖形上下文的實現(xiàn) 168
11.4.2 自定義組件 170
11.5 鼠標形狀(Cursor) 172
11.6 小結 174
第3部分 Eclipse插件開發(fā)篇
第12章 插件入門 177
12.1 什么是插件 177
12.2 一個簡單的插件 178
12.2.1 創(chuàng)建“Hello,207world”插件 178
12.2.2 調試“Hello,208world”插件 179
12.2.3 插件打包 180
12.3 插件清單文件介紹 181
12.3.1 OverView:描述了插件的基本信息 182
12.3.2 Dependen ies:描述了插件的依賴關系 182
12.3.3 Runtime:指明了運行時的ClassPath 183
12.3.4 Extensions:指明插件實現(xiàn)的擴展點 183
12.3.5 Extension Points:指明了用戶插件提供的擴展點 184
12.4 常用擴展點的描述 185
12.4.1 org.e lipse.ui.editors:代表一個編輯器窗口 185
12.4.2 org.e lipse.ui.views:代表一個視圖窗口 185
12.4.3 org.e lipse.ui.perspe tives:代表一個擴展視角 187
12.5 小結 187
第13章 視圖擴展點的實現(xiàn) 189
13.1 Views擴展點的介紹 189
13.1.1 視圖分類 189
13.1.2 常用視圖可實現(xiàn)的功能 190
13.2 “Hello,225world”視圖 190
13.2.1 創(chuàng)建“Hello,226world”視圖插件 190
13.2.2 “Hello,227world”插件擴展點 191
13.2.3 “org.e lipse.ui.views”擴展點的實現(xiàn)類“HelloWorldView” 193
13.2.4 運行“Hello,229world”視圖 194
13.3 “Tree viewer”視圖 195
13.3.1 創(chuàng)建“Tree viewer”視圖插件 195
13.3.2 “Tree viewer”插件擴展點 196
13.3.3 “org.e lipse.ui.views”擴展點的實現(xiàn)類“TreeViewTest” 196
13.3.4 運行“Tree viewer”視圖 202
13.4 “Image viewer”視圖 202
13.4.1 創(chuàng)建“Image viewer”視圖插件 202
13.4.2 “org.e lipse.ui.viewA tions”擴展點的實現(xiàn)類“PushA tionDelegate” 205
13.4.3 “org.e lipse.ui.views”擴展點的實現(xiàn)類“ImageView” 206
13.4.4 運行“Image viewer”視圖 207
13.5 Debug視圖的實現(xiàn).. 208
13.5.1 查找Debug插件 208
13.5.2 導入Debug插件 208
13.5.3 Debug插件中視圖的擴展點 209
13.6 小結 211
第14章 編輯器擴展點的實現(xiàn) 213
14.1 Editors擴展點的介紹 213
14.1.1 編輯器分類 213
14.1.2 常用編輯器可實現(xiàn)的功能 213
14.1.3 編輯器和視圖的區(qū)別 214
14.2 “Hello,250world”編輯器 214
14.2.1 “Hello,251world”編輯器插件 214
14.2.2 “Hello,252world”插件擴展點 215
14.2.3 “org.e lipse.ui.editors”擴展點的實現(xiàn)類“HelloWorldEditor” 216
14.2.4 運行“Hello,254world”編輯器 218
14.3 多頁簽編輯器的實現(xiàn) 219
14.3.1 創(chuàng)建多頁簽編輯器插件 219
14.3.2 多頁簽編輯器插件擴展點 220
14.3.3 “org.e lipse.ui.editors”擴展點的實現(xiàn)類“MultiPageEditor” 220
14.3.4 “org.e lipse.ui.editors”擴展點的輔助類“MultiPageEditor Contributor” 225
14.3.5 運行多頁簽編輯器 227
14.4 簡單的文本編輯器 227
14.4.1 創(chuàng)建文本編輯器插件 227
14.4.2 “org.e lipse.ui.editors”擴展點的實現(xiàn)類“FileEditor” 228
14.4.3 運行文本編輯器 231
14.5 小結 231
第15章 項目相關擴展點的實現(xiàn) 233
15.1 項目中常用的擴展 233
15.2 視角 233
15.2.1 簡介 234
15.2.2 “org.e lipse.ui.perspe tive Extensions”擴展點 234
15.2.3 “org.e lipse.ui.perspe tives”擴展點 237
15.3 菜單工具欄 239
15.3.1 “org.e lipse.ui.a tionSets”擴展點信息 239
15.3.2 “org.e lipse.ui.a tionSets”擴展點的實現(xiàn)類“SampleA tion” 240
15.4 項目相關特性 241
15.4.1 項目擴展點 241
15.4.2 “org.e lipse. ore.resour es. natures”擴展點及實現(xiàn)類 241
15.4.3 “org.e lipse. ore.resour es. builders”擴展點及實現(xiàn)類 243
15.4.4 “org.e lipse.ui.newWizards”擴展點及實現(xiàn)類 246
15.4.5 “org.e lipse.ui.preferen ePages”擴展點及實現(xiàn)類 249
15.5 小結 252
第16章 幫助相關擴展點的實現(xiàn) 253
16.1 聯(lián)機幫助 253
16.1.1 聯(lián)機幫助擴展點的實現(xiàn) 253
16.1.2 聯(lián)機幫助文檔的結構 254
16.1.3 在聯(lián)機幫助中在線調用Java類 256
16.2 歡迎界面幫助 257
16.2.1 產品擴展點 258
16.2.2 歡迎界面擴展點 258
16.2.3 插件清單文件 259
16.2.4 擴展點實現(xiàn)類 259
16.2.5 調試歡迎界面插件 261
16.3 上下文幫助 261
16.3.1 定義上下文幫助 261
16.3.2 定義彈出菜單和相應對話框 262
16.3.3 運行上下文幫助插件 264
16.4 小結 266
第17章 其他擴展點的實現(xiàn) 267
17.1 startup擴展點的實現(xiàn) 267
17.1.1 “org.e lipse.ui.startup”擴展點的實現(xiàn) 267
17.1.2 “org.e lipse.ui.startup”對應的實現(xiàn)類 267
17.1.3 “org.e lipse.ui.startup”對應插件運行效果 268
17.2 “propertyPages”擴展點的實現(xiàn) 268
17.2.1 “org.e lipse.ui.propertyPages”擴展點的實現(xiàn) 268
17.2.2 “org.e lipse.ui.propertyPages”對應的實現(xiàn)類 269
17.2.3 “org.e lipse.ui.propertyPages”對應插件運行效果 272
17.3 小結 273
第18章 插件開發(fā)輔助功能 275
18.1 屬性視圖 275
18.1.1 IPropertySour e接口 276
18.1.2 屬性視圖的實現(xiàn) 277
18.2 大綱視圖 279
18.2.1 IContentOutlinePage接口 279
18.2.2 大綱視圖的實現(xiàn) 281
18.3 構造EditorInput 282
18.3.1 IEditorInput接口 282
18.3.2 IEditorInput的實現(xiàn) 283
18.4 操縱編輯器 285
18.4.1 查找編輯器 285
18.4.2 打開和關閉編輯器 286
18.5 插件國際化 286
18.5.1 國際化插件的創(chuàng)建 287
18.5.2 類的國際化 287
18.5.3 plugin.xml文件格式化 289
18.5.4 調試國際化插件 289
18.6 小結 290
第4部分 E lipse提高篇
第19章 Draw2d簡介及實現(xiàn) 293
19.1 Draw2d簡介 293
19.1.1 Draw2d簡介 293
19.1.2 “Hello World”實現(xiàn) 294
19.2 圖形 295
19.2.1 圖形(Figure)的功能 295
19.2.2 圖形的實現(xiàn) 295
19.3 連線 296
19.3.1 連線(Conne tion)的功能 297
19.3.2 連線的實現(xiàn) 297
19.4 UML關系圖實現(xiàn) 299
19.4.1 UML關系圖實現(xiàn)的要求 299
19.4.2 CompartmentFigure實現(xiàn) 300
19.4.3 UMLClassFigure實現(xiàn) 301
19.4.4 連線及測試類 302
19.5 小結 304
第20章 GEF原理及實現(xiàn) 305
20.1 GEF概述 305
20.1.1 GEF簡介 305
20.1.2 GEF工作原理 305
20.2 模型 306
20.2.1 模型的功能 306
20.2.2 模型的實現(xiàn) 306
20.3 視圖 311
20.3.1 視圖的功能 311
20.3.2 視圖的實現(xiàn) 311
20.4 控制器 312
20.4.1 控制器的功能 312
20.4.2 控制器的實現(xiàn) 313
20.5 請求和編輯策略 316
20.5.1 請求和編輯策略(Request and EditPolicies) 316
20.5.2 編輯策略的實現(xiàn) 317
20.6 命令 318
20.6.1 命令(Commands)的功能 318
20.6.2 命令的實現(xiàn) 318
20.7 模型同步 320
20.7.1 模型同步的功能 320
20.7.2 模型同步的實現(xiàn) 320
20.8 選項板 321
20.8.1 選項板(PaletteRoot)的功能 321
20.8.2 選項板的實現(xiàn) 322
20.9 小結 323
第21章 GEF表模型編輯器的實現(xiàn) 325
21.1 程序的軟件結構 325
21.1.1 實現(xiàn)功能 325
21.1.2 程序的界面要求 326
21.2 編輯器的實現(xiàn) 326
21.2.1 編輯器的功能 326
21.2.2 編輯器的實現(xiàn) 327
21.3 模型的實現(xiàn) 334
21.3.1 PropertyAwareObject類 334
21.3.2 Table類 335
21.3.3 Column類 339
21.3.4 Schema類 341
21.3.5 Relationship類 343
21.4 視圖的實現(xiàn) 344
21.4.1 TableFigure類 344
21.4.2 SchemaFigure類 346
21.4.3 ColumnsFigure類 346
21.5 控制器的實現(xiàn) 347
21.5.1 TablePart的實現(xiàn) 348
21.5.2 RelationshipPart的實現(xiàn) 357
21.6 EditPartFactory和Palette的實現(xiàn) 359
21.6.1 SchemaEditPartFactory 359
21.6.2 PaletteRoot 360
21.7 EditPolicy的實現(xiàn) 362
21.7.1 TableNodeEditPolicy(模型連線的編輯策略) 362
21.7.2 TableLayoutEditPolicy(子模型布局的編輯策略) 364
21.7.3 TableContainerEditPolicy(處理模型創(chuàng)建請求的編輯策略) 366
21.7.4 TableEditPolicy(模型編輯的編輯策略) 367
21.7.5 TableDirectEditPolicy(處理直接編輯的編輯策略) 368
21.8 Command的實現(xiàn) 369
21.8.1 模型連線命令 369
21.8.2 模型拖動命令 372
21.8.3 模型創(chuàng)建命令 373
21.8.4 模型刪除命令 374
21.8.5 模型直接編輯命令 377
21.9 大綱的實現(xiàn) 378
21.10 小結 380
第22章 EMF的使用 381
22.1 EMF的簡介 381
22.2 使用EMF生成模型 382
22.2.1 定制類關系圖 382
22.2.2 生成模型代碼 383
22.3 在GEF框架中使用EMF模型 384
22.3.1 模型 384
22.3.2 EditPart的修改 384
22.3.3 ElementFactory的修改 385
22.3.4 處理自定義數(shù)據(jù)類型 386
22.3.5 保存和載入模型 387
22.4 小結 388
第23章 RCP技術 389
23.1 RCP的簡介 389
23.2 建立一個RCP的應用 389
23.2.1 創(chuàng)建RCP應用 390
23.2.2 運行RCP應用 390
23.2.3 導出RCP應用 391
23.3 RCP的組成部分 393
23.3.1 Plugin.xml 393
23.3.2 應用的入口Application 395
23.3.3 工作臺Appli ationWorkbench Advisor 395
23.3.4 工作臺窗口Application WorkbenchWindowAdvisor 397
23.3.5 工作臺“Action Bar”ApplicationActionBarAdvisor 397
23.3.6 應用的視角(perspective) 399
23.4 小結 400
第24章 Eclipse進階 401
24.1 選擇與監(jiān)聽 401
24.1.1 選擇事件提供者(Selection Provider) 402
24.1.2 選擇服務(Selection Service) 403
24.1.3 選擇事件監(jiān)聽器(Selection Listener) 404
24.1.4 實例 405
24.2 命令堆棧 408
24.2.1 命令堆棧(CommandSta k) 408
24.2.2 監(jiān)聽器 410
24.3 適配器 410
24.3.1 適配器接口(IAdaptable) 411
24.3.2 適配器的實現(xiàn) 412
24.4 UI持久化 413
24.4.1 持久化機制 413
24.4.2 UI持久化與恢復的實現(xiàn) 414
24.5 深入Workben h 418
24.5.1 Workben h中實現(xiàn)類的關系 418
24.5.2 Part的生命周期 419
24.6 資源監(jiān)聽與訪問 421
24.6.1 資源監(jiān)聽器 421
24.6.2 資源訪問器 422
24.6.3 資源監(jiān)聽的實現(xiàn) 423
24.7 小結 425
附錄A 插件資源列表 427
附錄B 插件開發(fā)法則 431
B.1 擴展者法則 431
B.2 促成者法則 431
B.3 發(fā)布者法則 432