新聞中心
前段日子,為大家?guī)砹恕禘clipse插件大全 挑選最牛的TOP30》被網(wǎng)友們廣泛關(guān)注。很多朋友都希望我們再報道些Eclipse插件的文章。為網(wǎng)友們挑選的一篇日文開發(fā)的資料《Eclipse 3.4 対応 Eclipse 3.4 プラグイン開発 徹底攻略》的中文系列譯文。在這個系列的***部分里,將對Eclipse和插件的概要、插件開發(fā)的基本概念、OSGi和SWT進(jìn)行簡單介紹。

推薦專題:Eclipse平臺應(yīng)用與開發(fā)詳解
名詞翻譯
◆有一些名詞在翻譯的過程中可能會出現(xiàn)歧義,在這里統(tǒng)一一下。
◆アーキテクチャ=architecture=架構(gòu)
◆プラットフォーム=platform=平臺
◆コンポーネント=component=組件
1.Eclipse的架構(gòu)
Eclipse被作為java的IDE(集成開發(fā)環(huán)境)被廣泛的應(yīng)用,但是從本質(zhì)上看Eclipse是一個整合了各種開發(fā)工具的平臺。因此,它采用了可以自由的增加各種功能的插件架構(gòu)技術(shù)。Eclipse平臺的基本架構(gòu)如圖1-1所示。?
圖1-1 Eclipse的架構(gòu)
在這里,在***層位置的是作為Eclipse插件架構(gòu)基干的OSGi運行時。雖然在早期的Eclipse版本中已經(jīng)開始使用插件架構(gòu)了,但是在Eclipse3.0的時候才***引入了OSGi。OSGi是open services gateway initiative的簡稱、原本是一種為嵌入式硬件開發(fā)的,使網(wǎng)絡(luò)上的服務(wù)提供者和使用者交互(結(jié)びつける)的注冊服務(wù)。Eclipse使用OSGi來進(jìn)行插件的管理。
OSGi運行時之上所有被配置的組件群都是以插件的方式提供的。SWT和JFace提供了用戶接口(User Interface)的API。由于SWT和JFace并不依賴于Eclipse,也有可能被作為類庫單獨使用。Eclipse不僅把基本的用戶接口作為工作臺API(WorkBench API)提供出來,在后面要講到的工作區(qū)(Workspace)內(nèi)的資源通過資源API(Resource API)的形式也被作為基本API提供出來了。在這之上構(gòu)建起了幫助系統(tǒng)以及基于更新管理器的自動更新等功能。
從Eclipse平臺的角度看,SWT、JFace、工作臺的部分就是EclipseRCP(Rich Client Platform)。EclipseRCP是基于Eclipse的富客戶端技術(shù),Eclipse不僅是一個開發(fā)工具,也可以作為一個通用的應(yīng)用程序平臺。EclipseRCP是Eclipse平臺的子集,同時,Eclipse自身也是一個EclipseRCP的運用實例。
#p#
2.擴展點
插件為了自身能夠?qū)ζ渌寮M(jìn)行擴展而提出了擴展點的概念。當(dāng)要為插件增加功能的時候就可以利用這個擴展點。在擴展點的基礎(chǔ)上,插件之間可以互相連接。
圖1-2 使用擴展點進(jìn)行擴展
擴展和擴展點的連接在程序執(zhí)行時被建立,提供擴展點的插件事先并不知道該擴展點實際被擴展了什么樣的行為。使用擴展點的插件需要在清單文件(plugin.xml)中像代碼1-1那樣,使用extension元素聲明擴展。
extension元素中的schema由提供擴展點的插件決定,元素中的內(nèi)容必須按照schema進(jìn)行書寫。
代碼1-1 plugin.xml中聲明擴展
- ......
像上面這樣的擴展點和擴展不斷的積累重疊,使得Eclipse平臺能夠?qū)崿F(xiàn)各種各樣的功能。Eclipse平臺提供的擴展點有
◆增加菜單項
◆增加視圖
◆增加編輯器
等等,數(shù)量非常的多。本文將以使用頻率相對較高的擴展點為中心進(jìn)行介紹,在Eclipse的幫助中有Eclipse提供的所有擴展點的說明,大家在使用時可以參考。
當(dāng)然,定義一個新的自制插件是絕對可能的。擴展點的定義方法會在[擴展點定義]章節(jié)中為大家詳細(xì)介紹。
#p#
3.工作臺(Workbench)
在這里認(rèn)為看到本文的同學(xué)們都曾經(jīng)用Eclipse做過Java的開發(fā)。Eclipse的各個部分的名稱大家也許都已經(jīng)知道了。為了在以后的文章中統(tǒng)一意識,在這里我們再復(fù)習(xí)一下。
工作臺是Eclipse的整個用戶接口的統(tǒng)稱。工作臺內(nèi)的結(jié)構(gòu)見圖1-3
圖1-3 工作臺
工作臺窗口
Eclipse的窗口。通常一個工作臺會打開一個窗口,但是也可能一個工作臺對應(yīng)多個窗口。
工作臺頁面
在工作臺上打開的每個透視圖(用于特定用途的視圖、編輯器的布局)和一個頁面對應(yīng)??梢园鄠€視圖和編輯器。
菜單欄
和一般的GUI應(yīng)用一樣的菜單欄區(qū)域。
工具欄
和一般的GUI應(yīng)用一樣的工具欄區(qū)域。默認(rèn)情況下工具欄的右邊區(qū)域用來顯示透視圖的列表
狀態(tài)欄
通常在畫面的最下面顯示的區(qū)域。編輯器的光標(biāo)位置、生成進(jìn)度狀況等根據(jù)工作臺上的操作內(nèi)容顯示各種信息。
視圖
作用是提供開發(fā)者想要的信息??梢允盏綘顟B(tài)欄內(nèi),必要時再打開(高速視圖)?;旧弦粋€視圖在一個工作臺內(nèi)只能打開一個。
編輯器
主要用于文件的編輯。和視圖不同編輯器可以同時打開多個。對于同一個文件也可以打開多個編輯器。
從插件的代碼中訪問工作臺使用org.eclipse.ui.PlatformUI類。代碼1-2說明了從PlatformUI中取得工作臺和工作臺窗口的代碼示例。
代碼1-2 使用PlatformUI訪問工作臺
- //取得工作臺
- IWorkbench workbench = PlatformUI.getWorkbench();
- //取得工作臺窗口
- IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
- //取得工作臺頁面
- IWorkbenchPage page = window.getActivePage();
- //取得當(dāng)前處于活動狀態(tài)的編輯器窗口
- IEditorPart part = page.getActiveEditor();
#p#
4.工作區(qū)和資源API
在Eclipse中使用工作區(qū)作為開發(fā)人員的作業(yè)區(qū)域。工作區(qū)是在Eclipse啟動時指定的一個物理文件夾。開發(fā)人員在Eclipse上生成工程、創(chuàng)建文件等操作都會在工作區(qū)指定的文件夾內(nèi)生成實際的文件。
工作區(qū)內(nèi)的資源在Eclipse內(nèi)部使用org.eclipse.core.resources包中定義的虛擬對象進(jìn)行操作,例如工程是IProject、文件夾是IFolder、文件時IFile。
圖1-4 工作區(qū)內(nèi)的資源
在插件開發(fā)的時候很多情況都會使用到工作區(qū)內(nèi)的文件或者文件夾。這時就可以使用這些對象。
對工作區(qū)的訪問需要使用org.eclipse.core.resources.ResourcesPlugin。代碼1-3是利用IWorkspaceRoot,去的工作區(qū)內(nèi)的工程的代碼示例
代碼1-3 使用ResourcesPlugin訪問工作區(qū)
- //取得工作區(qū)的root
- IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
- //取得項目
- IProject[] projects = wsroot.getProjects();
工作臺和資源訪問的API是Eclipse提供的API中最基本的,在插件開發(fā)時使用頻率較高的API。在這里不做詳細(xì)的說明,在以后得例子中會出現(xiàn)一些這樣的API。使用PlatformUI作為工作臺訪問的入口點和使用ResourcesPlugin作為工作區(qū)訪問的入口點,是無論如何也要記住的。
在Eclipse中使用PDE(Plugin Development Environment)進(jìn)行插件開發(fā)。在PDE中為大家準(zhǔn)備了幾個模板供大家參考。***步咱們先利用模板制作一個簡單的插件作為和PDE的***次接觸。
感謝大家關(guān)注《Eclipse插件開發(fā)基礎(chǔ)篇之***攻略》。如果您對Eclipse有什么新的使用心得可以發(fā)Email:zhousn@,將與您一起分享!
當(dāng)前文章:Eclipse插件終極攻略:基本概念介紹
文章鏈接:http://fisionsoft.com.cn/article/dhdpigg.html


咨詢
建站咨詢
