本書中的技術既能夠滿足Eclipse用戶端軟體的開發者,又能夠兼顧Java Web應用程式的開發者。筆者非常贊同Eclipse技術社區中所宣導的軟體開發精神:貢獻、分享、邀請,每個人都需要別人的關懷和幫助,每個人同樣有義務關懷和幫助別人。Eclipse與OSGi技術在實作開發中應用起來相對困難,需要整合很多協力廠商技術與輔助工具,開發環境的設定也較為煩瑣。本書中的開發經驗大多來自一個具有上百個外掛程式的綜合性軟體平台,筆者將其中一些有益的設計經驗和技巧抽離出來,盡可能多地向讀者展示開發環境的架設、工具的設定、程式設計經驗、解決問題的想法以及如何取得更多的技術資源等知識。
本書分為三大部分:
第一部分為基礎篇,介紹了Eclipse RCP開發所使用的常用介面程式設計技術,涵蓋了SWT、JFace、Forms、Nebula和WindowBuilder設計器的使用方法。讀者應當熟練熟練版面配置和各種控制項的使用方法,並且透過存取這些技術的官方網站來取得更多的程式設計技巧。
第二部分為進階篇,重點為Eclipse RCP軟體產品的組成部分,讀者應當充分了解RCP開發中關於執行平台和目標平台、擴充和擴充點的概念。熟練這些技術有助讀者建構一個結構完整的Eclipse RCP軟體,解決軟體開發過程中的故障。
第三部分為實戰篇,詳細講解了Eclipse RCP與Spring OSGi框架、Hibernate ORM框架、JPA標準、Maven工具的整合。如果讀者在此之前從未接觸過Spring和Hibernate技術,建議閱讀一些與此相關的資料。
對於Eclipse RCP和Spring OSGi技術的初學者,建議採用循序漸進的方式逐章學習。對於已經具備一定開發經驗的讀者,可以直接選擇有興趣的內容閱讀。本書的技術點都盡可能地與業務邏輯剝離,以減少無關的程式碼實現,進一步讓讀者更進一步地重視技術本身,減少對讀者學習的干擾。
目標讀者:
使用Eclipse RCP和Spring OSGi技術開發應用系統的程式設計人員
已經使用Java程式語言撰寫過桌面或Web應用程式的開發者
準備使用Spring OSGi開發Web應用程式的開發者
目錄
前言
第一部分 基 礎 篇
第1章 初識Eclipse RCP
1.1 Eclipse平台概述
1.2 Eclipse RCP概述
1.3 Eclipse RCP的應用
1.4 OSGi與Equinox
1.5 SWT與JFace
1.6 小結
第2章 架設Eclipse RCP開發環境
2.1 JDK的安裝與設定
2.1.1 下載JDK安裝程式
2.1.2 安裝JDK執行程式
2.1.3 設定JDK執行環境
2.1.4 測試JDK安裝狀態
2.1.5 移除JDK應用程式
2.2 安裝Eclipse IDE
2.2.1 Eclipse開發套件
2.2.2 Eclipse版本更新
2.2.3 下載Eclipse
2.2.4 安裝Eclipse
2.2.5 技術資源
2.3 Maven的安裝與設定
2.3.1 Maven介紹
2.3.2 下載Maven
2.3.3 安裝Maven
2.3.4 測試Maven
2.3.5 修改Maven的設定檔
2.3.6 技術資源
2.4 Maven和Eclipse的整合
2.4.1 安裝Maven Eclipse外掛程式
2.4.2 設定Maven Eclipse外掛程式
2.4.3 技術資源
2.5 安裝Spring IDE Plugin
2.5.1 Spring IDE介紹
2.5.2 安裝Spring IDE外掛程式
2.5.3 技術資源
2.6 安裝WindowBuilderProPlugin
2.6.1 WindowBuilder介紹
2.6.2 安裝WindowBuilder外掛程式
2.7 小結
第3章 SWT介面設計詳解
3.1 SWT介紹
3.2 WindowBuilder外掛程式初識
3.2.1 設計檢視
3.2.2 原始程式視圖
3.2.3 結構視圖
3.3 SWT設計面板
3.4 SWT設計準備
3.4.1 Element
3.4.2 ElementFactory
3.5 Shell使用入門
3.5.1 Shell樣式
3.5.2 Shell TRIM
3.5.3 Shell模態型態
3.6 容器使用入門
3.6.1 Composite
3.6.2 Group
3.6.3 ScrolledComposit
3.6.4 SashForm
3.6.5 TabFolder與TabItem
3.6.6 CTabFolder與CTabItem
3.6.7 ViewForm
3.6.8 CBanner
3.7 容器使用進階
3.7.1 checkSubclass方法
3.7.2 介面重用
3.7.3 增加自訂的Component
3.7.4 背景模式
3.7.5 帶分隔條的SashForm
3.8 版面配置使用入門
3.8.1 AbsoluteLayout
3.8.2 FillLayout
3.8.3 GridLayout
3.8.4 FormLayout
3.8.5 RowLayout
3.8.6 StackLayout
3.8.7 GroupLayout
3.8.8 FlowLayout
3.8.9 BoxLayout
3.8.10 BorderLayout
3.9 版面配置使用進階
3.9.1 使用AbsoluteLayout
3.9.2 使用GridLayout
3.9.3 StackLayout
3.10 控制項使用入門
3.10.1 Label
3.10.2 CLabel
3.10.3 Separator
3.10.4 Text
3.10.5 StyledText
3.10.6 Combo
3.10.7 CCombo
3.10.8 List
3.10.9 Button
3.10.10 DateTime
3.10.11 Spinner
3.10.12 Slider
3.10.13 Scale
3.10.14 Link
3.10.15 ToolBar與ToolItem
3.10.16 CoolBar與CoolItem
3.10.17 ExpandBar與ExpandItem
3.10.18 ProgressBar
3.10.19 Browser
3.10.20 Canvas
3.10.21 TrayItem
3.10.22 Table
3.10.23 Tree
3.10.24 TableTree
3.11 控制項使用進階
3.11.1 建立Simple Table
3.11.2 建立Lazy Table
3.11.3 建立Virtual Table
3.11.4 Virtual Table注意事項
3.11.5 Virtual Table排序
3.11.6 建立Lazy Tree
3.11.7 建立Virtual Tree
3.11.8 建立TreeVirtualDynamic
3.11.9 建立POJOComposite
3.11.10 如何與瀏覽器互動
3.12 選單使用入門
3.12.1 Menu Bar元件
3.12.2 Popup Menu
3.12.3 MenuItem
3.13 選單使用進階
3.14 技術資源
3.15 小結
第4章 JFace介面設計詳解
4.1 MVC設計思想
4.1.1 MVC模式
4.1.2 Java與MVC模式
4.2 JFace與MVC模式
4.2.1 JFace Viewer框架概述
4.2.2 JFace Viewer框架機制
4.3 JFace常用元件入門
4.3.1 ComboViewer
4.3.2 ListViewer
4.3.3 TableViewer
4.3.4 TreeViewer
4.3.5 CheckboxTableViewer
4.3.6 CheckboxTreeViewer
4.3.7 TreeTableViewer
4.3.8 TableViewer Composite
4.3.9 Table Composite
4.3.10 TreeViewer Composite
4.3.11 Tree Composite
4.4 JFace元件使用進階
4.4.1 資料綁定
4.4.2 以EditingSupport為基礎的可編輯表格
4.4.3 以ICellModifier為基礎的可編輯表格
4.4.4 交談視窗編輯器
4.4.5 其他表格標籤
4.4.6 Viewer浮動提示控制項
4.5 小結
第5章 Eclipse Forms與Nebula介面設計
5.1 Eclipse Forms專案介紹
5.2 Eclipse Forms使用入門
5.2.1 Composite
5.2.2 ExpandableComposite
5.2.3 Label與Text
5.2.4 Hyperlink與ImageHyperlink
5.2.5 Composite Separator
5.2.6 Section
5.2.7 Form與ScrolledForm
5.3 Eclipse Forms使用進階
5.3.1 FormEditor與FormPage
5.3.2 MasterDetailsBlock 與IDetailsPage
5.4 Eclipse Forms技術資源
5.5 Nebula專案介紹
5.6 安裝Eclipse Nebula Plugin
5.6.1 安裝Eclipse Nebula Main Widgets
5.6.2 安裝Eclipse Nebula incubation Widgets
5.6.3 載入Eclipse Nebula控制項到WindowBuilder Pro Plugin中
5.7 Nebula Main Widgets設計初識
5.8 Nebula Incubation widgets設計初識
5.9 Nebula設計經驗
5.10 Nebula技術資源
5.11 小結
第二部分 高 級 篇
第6章 Eclipse RCP 開發基礎
6.1 Eclipse概念
6.1.1 歡迎介面
6.1.2 工作環境
6.1.3 視圖
6.1.4 視圖
6.1.5 編輯器
6.2 RCP應用程式設計
6.2.1 RCP外掛程式建立精靈
6.2.2 Plug-in Project
6.2.3 Plugin Content
6.2.4 Templates
6.2.5 Sample Intro
6.2.6 產品初次執行
6.3 外掛程式清單編輯器
6.3.1 外掛程式概述
6.3.2 外掛程式依賴項
6.3.3 外掛程式執行時期
6.3.4 外掛程式擴充
6.3.5 外掛程式擴充點
6.3.6 外掛程式建構
6.3.7 其他頁面
6.4 RCP Activator與Advisor類別解析
6.4.1 WorkshopAppActivator
6.4.2 Application
6.4.3 ActionBarAdvisor
6.4.4 WorkbenchAdvisor
6.4.5 WorkbenchWindowAdvisor
6.5 小結
第7章 建構產品幫助系統
7.1 建立幫助外掛程式精靈
7.1.1 幫助外掛程式的 Content精靈頁面
7.1.2 幫助外掛程式的Templates精靈頁面
7.1.3 幫助外掛程式的Sample Help Table of Contents精靈頁面
7.2 維護Help Content
7.2.1 幫助系統組態與資源檔的目錄
7.2.2 幫助系統組態與資源檔的關係
7.2.3 幫助系統擴充
7.3 增加幫助的選單項
7.4 說明檔案的建立
7.5 小結
第8章 建構產品歡迎頁面
8.1 產品綁定歡迎頁面
8.1.1 歡迎頁面擴充
8.1.2 歡迎頁面定義
8.1.3 歡迎頁面首頁
8.1.4 頁面跳躍連結
8.2 歡迎頁面請求
8.2.1 建立IIntroAction
8.2.2 增加IIntroAction連結
8.3 增加動態內容
8.3.1 動態頁面建立
8.3.2 動態資料建立
8.4 建立頁面擴充
8.5 小結
第9章 建構產品多國語言
9.1 外掛程式清單的多國語言
9.2 Java程式的多國語言
9.2.1 Java程式的外部化字串
9.2.2 Java程式的多國語言套件
9.2.3 產品多國語言進階
9.3 幫助系統的多國語言
9.4 Eclipse介面中文化
9.5 切換軟體系統語言
9.5.1 增加自訂產品的config檔案
9.5.2 增加語言切換擴充點
9.5.3 語言切換處理器
9.6 小結
第10章 產品的執行與匯出
10.1 產品設定
10.2 產品設定編輯器
10.3 匯出精靈
10.3.1 產品匯出
10.3.2 跨平台匯出
10.3.3 外掛程式匯出
10.4 執行與匯出進階
10.5 小結
第11章 Eclipse RCP擴充的使用
11.1 ViewPart 視圖
11.1.1 建立新外掛程式
11.1.2 視圖精靈
11.1.3 視圖程式
11.1.4 視圖擴充
11.2 Perspective視圖
11.2.1 視圖精靈
11.2.2 視圖程式
11.2.3 視圖擴充
11.2.4 視圖版面配置
11.2.5 開啟視圖
11.3 EditorPart編輯器
11.3.1 建立資料表單
11.3.2 建立編輯器的輸入
11.3.3 建立編輯器
11.3.4 建立視圖樹狀元件
11.3.5 編輯器擴充
11.4 程式設計實現Action
11.4.1 IAction
11.4.2 ToolBar工具列
11.4.3 CoolBar工具列
11.4.4 ContentMenuBar功能表列
11.4.5 工作環境Action
11.4.6 視圖Action功能表列
11.4.7 視圖Action工具列
11.4.8 編輯器Action工具列
11.5 擴充實現Action
11.5.1 工作環境Action擴充
11.5.2 視圖Action擴充
11.5.3 編輯器Action擴充
11.6 Action的鍵盤綁定
11.6.1 Commands擴充
11.6.2 Bindings擴充
11.7 Eclipse RCP設計進階
11.7.1 視圖/編輯器之間通訊
11.7.2 建立狀態列項
11.7.3 建立屬性設定頁面
11.7.4 建立登入交談視窗
11.8 小結
第12章 Eclipse RCP擴充點開發
12.1 擴充點簡介
12.2 建立擴充點
12.3 擴充點編輯器
12.3.1 擴充點概述
12.3.2 擴充點定義
12.3.3 擴充點原始程式
12.4 擴充點處理
12.4.1 擴充點物件
12.4.2 擴充點註冊
12.4.3 擴充點取得
12.5 增加擴充
12.6 使用擴充
12.7 小結
第三部分 實 戰 篇
第13章 Eclipse RCP與Spring OSGi
13.1 OSGi技術介紹
13.1.1 軟體開發面臨的問題
13.1.2 動態模組化解決方案
13.1.3 OSGi框架
13.1.4 選擇合適的OSGi實現
13.2 Spring OSGi專案所需要的開發套件
13.2.1 下載Spring DM的開發套件
13.2.2 解壓縮Spring DM的開發套件
13.2.3 建立Spring DM目標平台
13.3 Spring OSGi專案的Maven管理
13.3.1 建立Maven POM專案
13.3.2 修改Maven專案型態
13.4 Spring OSGi專案的模組化設計
13.4.1 建立Spring DM業務專案
13.4.2 設計Spring DM業務專案
13.5 Spring OSGi專案轉為外掛程式專案
13.6 Spring OSGi外掛程式專案發佈介面
13.6.1 建立介面發佈設定
13.6.2 增加套件的路徑匯出
13.7 Eclipse RCP取得Spring OSGi服務
13.7.1 建立Eclipse RCP UI 外掛程式
13.7.2 取得Spring OSGi服務介面
13.7.3 呼叫Spring OSGi服務介面
13.8 Eclipse RCP與Spring OSGi的啟動
13.8.1 Eclipse 應用程式啟動選項
13.8.2 啟動Eclipse RCP產品設定
13.8.3 啟動以Spring OSGi為基礎的RCP程式
13.9 在Eclipse RCP中取得ApplicationContext和Bean
13.10 Spring OSGi的Maven外掛程式專案包裝
13.10.1 PDE外掛程式匯出精靈
13.10.2 Maven外掛程式專案的包裝設定
13.10.3 執行Maven外掛程式包裝
13.11 小結
第14章 Eclipse RCP與資料存取
14.1 SpringOSGi與Hibernate
14.1.1 Hibernate簡介
14.1.2 資料存取外掛程式目標
14.1.3 資料存取外掛程式設計
14.2 外掛程式如何引用協力廠商開發套件
14.2.1 如何取得協力廠商開發套件
14.2.2 如何參考協力廠商開發套件
14.3 將普通JAR轉成外掛程式格式
14.3.1 匯入精靈
14.3.2 BND工具
14.4 建立資料庫外掛程式
14.4.1 Maven POM設定檔
14.4.2 properties設定檔
14.4.3 Spring XML設定檔
14.4.4 MAINFEST.MF設定檔
14.5 建立連接池外掛程式
14.5.1 Maven POM設定檔
14.5.2 properties設定檔
14.5.3 Spring XML設定檔
14.5.4 Java類別設計
14.5.5 MAINFEST.MF設定檔
14.6 建立連接池Feature外掛程式
14.6.1 修改DBCP的MAINFEST.MF檔案
14.6.2 建立DBCP的Fragment外掛程式
14.7 建立Hibernate外掛程式
14.7.1 Maven POM設定檔
14.7.2 properties設定檔
14.7.3 Spring XML設定檔
14.7.4 擴充點設計
14.7.5 Java類別設計
14.7.6 MAINFEST.MF設定檔
14.8 建立業務外掛程式
14.8.1 Spring XML設定檔
14.8.2 Java類別設計
14.8.3 資料庫SQL設計
14.8.4 MAINFEST.MF設定檔
14.8.5 增加BundleAnnotationSessionFactoryBean擴充
14.9 啟動OSGi Framework程式
14.10 其他整合資料庫的方式
14.11 以資料存取外掛程式為基礎的RCP程式啟動
14.12 小結
第15章 Eclipse與Java的模組化設計
15.1 以程式語言為基礎的模組化
15.1.1 Java敘述的模組化設計
15.1.2 Java方法的模組化設計
15.1.3 Java類別的模組化設計
15.1.4 Java介面的模組化設計
15.2 以程式設計方法為基礎的模組化
15.2.1 IoC程式設計的模組化設計
15.2.2 AOP程式設計的模組化設計
15.3 以程式實體檔案為基礎的模組化
15.3.1 Package路徑的模組化設計
15.3.2 XML檔案的模組化設計
15.3.3 Properties檔案的模組化設計
15.3.4 JAR元件的模組化設計
15.4 以技術架構為基礎的模組化
15.4.1 OSGi的模組化設計
15.4.2 Eclipse外掛程式的模組化設計
15.4.3 JMS的模組化設計
15.5 模組化的技術移植
15.6 小結
前言
第一部分 基 礎 篇
第1章 初識Eclipse RCP
1.1 Eclipse平台概述
1.2 Eclipse RCP概述
1.3 Eclipse RCP的應用
1.4 OSGi與Equinox
1.5 SWT與JFace
1.6 小結
第2章 架設Eclipse RCP開發環境
2.1 JDK的安裝與設定
2.1.1 下載JDK安裝程式
2.1.2 安裝JDK執行程式
2.1.3 設定JDK執行環境
2.1.4 測試JDK安裝狀態
2.1.5 移除JDK應用程式
2.2 安裝Eclipse IDE
2.2.1 Eclipse開發套件
2.2.2 Eclipse版本更新
2.2.3 下載Eclipse
2.2.4 安裝Eclipse
2.2.5 技術資源
2.3 Maven的安裝...