Eclipse外掛程式開發方法與實戰

Eclipse外掛程式開發方法與實戰

《Eclipse外掛程式開發方法與實戰 》是2006年10月電子工業出版社出版的圖書,作者是甘樹滿、王秀明。本書分為4個部分共24章,以外掛程式開發為中心,圍繞外掛程式開發主要介紹swt/jface的套用、外掛程式擴展點的實現,以及gef、emf和rcp的相關知識。

基本介紹

  • 書名:Eclipse外掛程式開發方法與實戰
  • 作者:甘樹滿、王秀明
  • ISBN:7121031809
  • 頁數:453
  • 出版社:電子工業出版社
  • 出版時間:2006年10月
  • 開本:16
  • 上架時間:2006-12-5
  • 版次:1
  • 叢書名: Java開發專家
內容簡介,目錄,

內容簡介

初涉eclipse開發的讀者,就像深陷叢林的冒險者,多少會有點迷茫。如果你是一位非常優秀的探險家,憑直覺可能很快就會找到出路。但如果你在這方面缺乏經驗的話,最終可能會找到出口,但一定會走很多彎路。本書並不能算“指南針”性的教材,但希望能引領讀者認識eclipse的真面目,並能快速融入到 eclipse的開發中去。.
本書分為4個部分共24章,以外掛程式開發為中心,圍繞外掛程式開發主要介紹swt/jface的套用、外掛程式擴展點的實現,以及gef、emf和rcp的相關知識。本書所有講解的範例都能在附書光碟中找到可運行的原始碼,並且已經按章節歸類。本書語言深入淺出,通俗易懂,通過大量具有典型性和實用價值的實例,以及形象的比喻,把複雜的問題和難懂的概念簡單化,從多個方面引導讀者進入eclipse外掛程式開發。..
附書光碟內容為書中實例原始碼及相關外掛程式。
本書對於eclipse外掛程式開發的新手和有一定eclipse開發經驗的程式設計師普遍適用。

目錄

第1部分 eclipse入門篇.
第1章 eclipse概述 3
1.1 eclipse項目背景 3
1.2 eclipse簡介 3
1.2.1 開放式體系結構 4
1.2.2 平台體系結構 4
1.3 eclipse的主要功能特性 5
1.3.1 檔案存放(workspace) 5
1.3.2 eclipse開發環境(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開發 13
2.1 eclipse開發環境的安裝 13
2.1.1 jdk安裝 13
2.1.2 eclipse安裝 14
2.2 java開發工具jdt 14
2.2.1 視角 14
2.2.2 視圖 15
2.2.3 編輯器 16
2.3 在eclipse中開發java程式 16
2.3.1 java項目 16
2.3.2 新建“hello,world”程式 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 生成javadoc文檔 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 開發簡單的web套用 31
3.2.1 安裝配置myeclipse 31
3.2.2 創建web套用 32
3.2.3 部署並運行web套用 35
3.3 小結 36
第2部分 swtjface開發篇
第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 mousetracklistener接口 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監聽器的功能 74
6.6.2 helplistener、verifylistener和modifylistener監聽器實例 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 創建自己的布局 96
7.6.1 layout類 96
7.6.2 創建自己的布局類 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 進度監視對話框 149
10.3.1 進度監視對話框的功能 149
10.3.2 進度監視對話框實例 150
10.4 自定義對話框 153
10.4.1 帶標題區域對話框 153
10.4.2 自定義對話框實例 153
10.5 常用系統對話框 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 拖放的實現 162
11.2 執行緒 164
11.2.1 執行緒同步和異步 164
11.2.2 執行緒同步和異步的實現 164
11.3 剪貼簿 166
11.3.1 剪貼簿的功能 166
11.3.2 剪貼簿的實現 166
11.4 圖形上下文 168
11.4.1 圖形上下文的實現 168
11.4.2 自定義組件 170
11.5 滑鼠形狀(cursor) 172
11.6 小結 174
第3部分 eclipse外掛程式開發篇
第12章 外掛程式入門 177
12.1 什麼是外掛程式 177
12.2 一個簡單的外掛程式 178
12.2.1 創建“hello,world”外掛程式 178
12.2.2 調試“hello,world”外掛程式 179
12.2.3 外掛程式打包 180
12.3 外掛程式清單檔案介紹 181
12.3.1 overview:描述了外掛程式的基本信息 182
12.3.2 dependencies:描述了外掛程式的依賴關係 182
12.3.3 runtime:指明了運行時的classpath 183
12.3.4 extensions:指明外掛程式實現的擴展點 183
12.3.5 extension points:指明了用戶外掛程式提供的擴展點 184
12.4 常用擴展點的描述 185
12.4.1 org.eclipse.ui.editors:代表一個編輯器視窗 185
12.4.2 org.eclipse.ui.views:代表一個視圖視窗 185
12.4.3 org.eclipse.ui.perspectives:代表一個擴展視角 187
12.5 小結 187
第13章 視圖擴展點的實現 189
13.1 views擴展點的介紹 189
13.1.1 視圖分類 189
13.1.2 常用視圖可實現的功能 190
13.2 “hello,world”視圖 190
13.2.1 創建“hello,world”視圖外掛程式 190
13.2.2 “hello,world”外掛程式擴展點 191
13.2.3 “org.eclipse.ui.views”擴展點的實現類“helloworldview” 193
13.2.4 運行“hello,world”視圖 194
13.3 “tree viewer”視圖 195
13.3.1 創建“tree viewer”視圖外掛程式 195
13.3.2 “tree viewer”外掛程式擴展點 196
13.3.3 “org.eclipse.ui.views”擴展點的實現類“treeviewtest” 196
13.3.4 運行“tree viewer”視圖 202
13.4 “image viewer”視圖 202
13.4.1 創建“image viewer”視圖外掛程式 202
13.4.2 “org.eclipse.ui.viewactions”擴展點的實現類“pushactiondelegate” 205
13.4.3 “org.eclipse.ui.views”擴展點的實現類“imageview” 206
13.4.4 運行“image viewer”視圖 207
13.5 debug視圖的實現.. 208
13.5.1 查找debug外掛程式 208
13.5.2 導入debug外掛程式 208
13.5.3 debug外掛程式中視圖的擴展點 209
13.6 小結 211
第14章 編輯器擴展點的實現 213
14.1 editors擴展點的介紹 213
14.1.1 編輯器分類 213
14.1.2 常用編輯器可實現的功能 213
14.1.3 編輯器和視圖的區別 214
14.2 “hello,world”編輯器 214
14.2.1 “hello,world”編輯器外掛程式 214
14.2.2 “hello,world”外掛程式擴展點 215
14.2.3 “org.eclipse.ui.editors”擴展點的實現類“helloworldeditor” 216
14.2.4 運行“hello,world”編輯器 218
14.3 多頁簽編輯器的實現 219
14.3.1 創建多頁簽編輯器外掛程式 219
14.3.2 多頁簽編輯器外掛程式擴展點 220
14.3.3 “org.eclipse.ui.editors”擴展點的實現類“multipageeditor” 220
14.3.4 “org.eclipse.ui.editors”擴展點的輔助類“multipageeditor contributor” 225
14.3.5 運行多頁簽編輯器 227
14.4 簡單的文本編輯器 227
14.4.1 創建文本編輯器外掛程式 227
14.4.2 “org.eclipse.ui.editors”擴展點的實現類“fileeditor” 228
14.4.3 運行文本編輯器 231
14.5 小結 231
第15章 項目相關擴展點的實現 233
15.1 項目中常用的擴展 233
15.2 視角 233
15.2.1 簡介 234
15.2.2 “org.eclipse.ui.perspective extensions”擴展點 234
15.2.3 “org.eclipse.ui.perspectives”擴展點 237
15.3 選單工具列 239
15.3.1 “org.eclipse.ui.actionsets”擴展點信息 239
15.3.2 “org.eclipse.ui.actionsets”擴展點的實現類“sampleaction” 240
15.4 項目相關特性 241
15.4.1 項目擴展點 241
15.4.2 “org.eclipse.core.resources. natures”擴展點及實現類 241
15.4.3 “org.eclipse.core.resources. builders”擴展點及實現類 243
15.4.4 “org.eclipse.ui.newwizards”擴展點及實現類 246
15.4.5 “org.eclipse.ui.preferencepages”擴展點及實現類 249
15.5 小結 252
第16章 幫助相關擴展點的實現 253
16.1 在線上幫助 253
16.1.1 在線上幫助擴展點的實現 253
16.1.2 在線上幫助文檔的結構 254
16.1.3 在在線上幫助中線上調用java類 256
16.2 歡迎界面幫助 257
16.2.1 產品擴展點 258
16.2.2 歡迎界面擴展點 258
16.2.3 外掛程式清單檔案 259
16.2.4 擴展點實現類 259
16.2.5 調試歡迎界面外掛程式 261
16.3 上下文幫助 261
16.3.1 定義上下文幫助 261
16.3.2 定義彈出選單和相應對話框 262
16.3.3 運行上下文幫助外掛程式 264
16.4 小結 266
第17章 其他擴展點的實現 267
17.1 startup擴展點的實現 267
17.1.1 “org.eclipse.ui.startup”擴展點的實現 267
17.1.2 “org.eclipse.ui.startup”對應的實現類 267
17.1.3 “org.eclipse.ui.startup”對應外掛程式運行效果 268
17.2 “propertypages”擴展點的實現 268
17.2.1 “org.eclipse.ui.propertypages”擴展點的實現 268
17.2.2 “org.eclipse.ui.propertypages”對應的實現類 269
17.2.3 “org.eclipse.ui.propertypages”對應外掛程式運行效果 272
17.3 小結 273
第18章 外掛程式開發輔助功能 275
18.1 屬性視圖 275
18.1.1 ipropertysource接口 276
18.1.2 屬性視圖的實現 277
18.2 大綱視圖 279
18.2.1 icontentoutlinepage接口 279
18.2.2 大綱視圖的實現 281
18.3 構造editorinput 282
18.3.1 ieditorinput接口 282
18.3.2 ieditorinput的實現 283
18.4 操縱編輯器 285
18.4.1 查找編輯器 285
18.4.2 打開和關閉編輯器 286
18.5 外掛程式國際化 286
18.5.1 國際化外掛程式的創建 287
18.5.2 類的國際化 287
18.5.3 plugin.xml檔案格式化 289
18.5.4 調試國際化外掛程式 289
18.6 小結 290
第4部分 eclipse提高篇
第19章 draw2d簡介及實現 293
19.1 draw2d簡介 293
19.1.1 draw2d簡介 293
19.1.2 “hello world”實現 294
19.2 圖形 295
19.2.1 圖形(figure)的功能 295
19.2.2 圖形的實現 295
19.3 連線 296
19.3.1 連線(connection)的功能 297
19.3.2 連線的實現 297
19.4 uml關係圖實現 299
19.4.1 uml關係圖實現的要求 299
19.4.2 compartmentfigure實現 300
19.4.3 umlclassfigure實現 301
19.4.4 連線及測試類 302
19.5 小結 304
第20章 gef原理及實現 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 模型的實現 306
20.3 視圖 311
20.3.1 視圖的功能 311
20.3.2 視圖的實現 311
20.4 控制器 312
20.4.1 控制器的功能 312
20.4.2 控制器的實現 313
20.5 請求和編輯策略 316
20.5.1 請求和編輯策略(request and editpolicies) 316
20.5.2 編輯策略的實現 317
20.6 命令 318
20.6.1 命令(commands)的功能 318
20.6.2 命令的實現 318
20.7 模型同步 320
20.7.1 模型同步的功能 320
20.7.2 模型同步的實現 320
20.8 選項板 321
20.8.1 選項板(paletteroot)的功能 321
20.8.2 選項板的實現 322
20.9 小結 323
第21章 gef表模型編輯器的實現 325
21.1 程式的軟體結構 325
21.1.1 實現功能 325
21.1.2 程式的界面要求 326
21.2 編輯器的實現 326
21.2.1 編輯器的功能 326
21.2.2 編輯器的實現 327
21.3 模型的實現 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 視圖的實現 344
21.4.1 tablefigure類 344
21.4.2 schemafigure類 346
21.4.3 columnsfigure類 346
21.5 控制器的實現 347
21.5.1 tablepart的實現 348
21.5.2 relationshippart的實現 357
21.6 editpartfactory和palette的實現 359
21.6.1 schemaeditpartfactory 359
21.6.2 paletteroot 360
21.7 editpolicy的實現 362
21.7.1 tablenodeeditpolicy(模型連線的編輯策略) 362
21.7.2 tablelayouteditpolicy(子模型布局的編輯策略) 364
21.7.3 tablecontainereditpolicy(處理模型創建請求的編輯策略) 366
21.7.4 tableeditpolicy(模型編輯的編輯策略) 367
21.7.5 tabledirecteditpolicy(處理直接編輯的編輯策略) 368
21.8 command的實現 369
21.8.1 模型連線命令 369
21.8.2 模型拖動命令 372
21.8.3 模型創建命令 373
21.8.4 模型刪除命令 374
21.8.5 模型直接編輯命令 377
21.9 大綱的實現 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 處理自定義數據類型 386
22.3.5 保存和載入模型 387
22.4 小結 388
第23章 rcp技術 389
23.1 rcp的簡介 389
23.2 建立一個rcp的套用 389
23.2.1 創建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 工作檯applicationworkbench 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 選擇與監聽 401
24.1.1 選擇事件提供者(selection provider) 402
24.1.2 選擇服務(selection service) 403
24.1.3 選擇事件監聽器(selection listener) 404
24.1.4 實例 405
24.2 命令堆疊 408
24.2.1 命令堆疊(commandstack) 408
24.2.2 監聽器 410
24.3 適配器 410
24.3.1 適配器接口(iadaptable) 411
24.3.2 適配器的實現 412
24.4 ui持久化 413
24.4.1 持久化機制 413
24.4.2 ui持久化與恢復的實現 414
24.5 深入workbench 418
24.5.1 workbench中實現類的關係 418
24.5.2 part的生命周期 419
24.6 資源監聽與訪問 421
24.6.1 資源監聽器 421
24.6.2 資源訪問器 422
24.6.3 資源監聽的實現 423
24.7 小結 425
附錄a 外掛程式資源列表 427
附錄b 外掛程式開發法則 431
b.1 擴展者法則 431
b.2 促成者法則 431
b.3 發布者法則 432
附錄c 在eclipse中使用junit 433
c.1 junit簡介 433
c.2 eclipse開發、調試測試程式 434
附錄d visual editor 437
d.1 eclipse visual editor項目介紹 437
d.2 visual editor的內幕 437
d.3 利用visual editor開發awt/swing應用程式 438
d.4 visual editor工具 438
d.5 創建和啟用用戶接口 440
d.6 運行visual class 441
d.7 visual editor對eclipse的貢獻 442
附錄e cvs版本管理 447
e.1 相關術語 447
e.2 工作模式 448
e.3 模組的輸入與簽出 448
e.4 日常操作... 450

相關詞條

熱門詞條

聯絡我們