自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Eclipse插件終極攻略:基本概念介紹

開發(fā) 后端
本文為51CTO挑選的一篇日文開發(fā)的資料《Eclipse 3.4 対応 Eclipse 3.4 プラグイン開発 徹底攻略》的中文譯文,希望大家喜歡。

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

51CTO推薦專題:Eclipse平臺(tái)應(yīng)用與開發(fā)詳解

名詞翻譯

◆有一些名詞在翻譯的過程中可能會(huì)出現(xiàn)歧義,在這里統(tǒng)一一下。

◆アーキテクチャ=architecture=架構(gòu)

◆プラットフォーム=platform=平臺(tái)

◆コンポーネント=component=組件

1.Eclipse的架構(gòu)

Eclipse被作為java的IDE(集成開發(fā)環(huán)境)被廣泛的應(yīng)用,但是從本質(zhì)上看Eclipse是一個(gè)整合了各種開發(fā)工具的平臺(tái)。因此,它采用了可以自由的增加各種功能的插件架構(gòu)技術(shù)。Eclipse平臺(tái)的基本架構(gòu)如圖1-1所示。

Eclipse的架構(gòu)  
圖1-1 Eclipse的架構(gòu)

在這里,在***層位置的是作為Eclipse插件架構(gòu)基干的OSGi運(yùn)行時(shí)。雖然在早期的Eclipse版本中已經(jīng)開始使用插件架構(gòu)了,但是在Eclipse3.0的時(shí)候才***引入了OSGi。OSGi是open services gateway initiative的簡(jiǎn)稱、原本是一種為嵌入式硬件開發(fā)的,使網(wǎng)絡(luò)上的服務(wù)提供者和使用者交互(結(jié)びつける)的注冊(cè)服務(wù)。Eclipse使用OSGi來進(jìn)行插件的管理。

OSGi運(yùn)行時(shí)之上所有被配置的組件群都是以插件的方式提供的。SWT和JFace提供了用戶接口(User Interface)的API。由于SWT和JFace并不依賴于Eclipse,也有可能被作為類庫單獨(dú)使用。Eclipse不僅把基本的用戶接口作為工作臺(tái)API(WorkBench API)提供出來,在后面要講到的工作區(qū)(Workspace)內(nèi)的資源通過資源API(Resource API)的形式也被作為基本API提供出來了。在這之上構(gòu)建起了幫助系統(tǒng)以及基于更新管理器的自動(dòng)更新等功能。

從Eclipse平臺(tái)的角度看,SWT、JFace、工作臺(tái)的部分就是EclipseRCP(Rich Client Platform)。EclipseRCP是基于Eclipse的富客戶端技術(shù),Eclipse不僅是一個(gè)開發(fā)工具,也可以作為一個(gè)通用的應(yīng)用程序平臺(tái)。EclipseRCP是Eclipse平臺(tái)的子集,同時(shí),Eclipse自身也是一個(gè)EclipseRCP的運(yùn)用實(shí)例。

#p#

2.擴(kuò)展點(diǎn)

插件為了自身能夠?qū)ζ渌寮M(jìn)行擴(kuò)展而提出了擴(kuò)展點(diǎn)的概念。當(dāng)要為插件增加功能的時(shí)候就可以利用這個(gè)擴(kuò)展點(diǎn)。在擴(kuò)展點(diǎn)的基礎(chǔ)上,插件之間可以互相連接。

使用擴(kuò)展點(diǎn)進(jìn)行擴(kuò)展
圖1-2 使用擴(kuò)展點(diǎn)進(jìn)行擴(kuò)展

擴(kuò)展和擴(kuò)展點(diǎn)的連接在程序執(zhí)行時(shí)被建立,提供擴(kuò)展點(diǎn)的插件事先并不知道該擴(kuò)展點(diǎn)實(shí)際被擴(kuò)展了什么樣的行為。使用擴(kuò)展點(diǎn)的插件需要在清單文件(plugin.xml)中像代碼1-1那樣,使用extension元素聲明擴(kuò)展。

extension元素中的schema由提供擴(kuò)展點(diǎn)的插件決定,元素中的內(nèi)容必須按照schema進(jìn)行書寫。

代碼1-1 plugin.xml中聲明擴(kuò)展

  1. <extension point="被使用擴(kuò)展點(diǎn)的ID"> 
  2.  ......  
  3. </extension> 
  4.  

像上面這樣的擴(kuò)展點(diǎn)和擴(kuò)展不斷的積累重疊,使得Eclipse平臺(tái)能夠?qū)崿F(xiàn)各種各樣的功能。Eclipse平臺(tái)提供的擴(kuò)展點(diǎn)有

◆增加菜單項(xiàng)

◆增加視圖

◆增加編輯器

等等,數(shù)量非常的多。本文將以使用頻率相對(duì)較高的擴(kuò)展點(diǎn)為中心進(jìn)行介紹,在Eclipse的幫助中有Eclipse提供的所有擴(kuò)展點(diǎn)的說明,大家在使用時(shí)可以參考。

當(dāng)然,定義一個(gè)新的自制插件是絕對(duì)可能的。擴(kuò)展點(diǎn)的定義方法會(huì)在[擴(kuò)展點(diǎn)定義]章節(jié)中為大家詳細(xì)介紹。

#p#

3.工作臺(tái)(Workbench)

在這里認(rèn)為看到本文的同學(xué)們都曾經(jīng)用Eclipse做過Java的開發(fā)。Eclipse的各個(gè)部分的名稱大家也許都已經(jīng)知道了。為了在以后的文章中統(tǒng)一意識(shí),在這里我們?cè)購?fù)習(xí)一下。

工作臺(tái)是Eclipse的整個(gè)用戶接口的統(tǒng)稱。工作臺(tái)內(nèi)的結(jié)構(gòu)見圖1-3

工作臺(tái) 
圖1-3 工作臺(tái)

工作臺(tái)窗口

Eclipse的窗口。通常一個(gè)工作臺(tái)會(huì)打開一個(gè)窗口,但是也可能一個(gè)工作臺(tái)對(duì)應(yīng)多個(gè)窗口。

工作臺(tái)頁面

在工作臺(tái)上打開的每個(gè)透視圖(用于特定用途的視圖、編輯器的布局)和一個(gè)頁面對(duì)應(yīng)??梢园鄠€(gè)視圖和編輯器。

菜單欄

和一般的GUI應(yīng)用一樣的菜單欄區(qū)域。

工具欄

和一般的GUI應(yīng)用一樣的工具欄區(qū)域。默認(rèn)情況下工具欄的右邊區(qū)域用來顯示透視圖的列表

狀態(tài)欄

通常在畫面的最下面顯示的區(qū)域。編輯器的光標(biāo)位置、生成進(jìn)度狀況等根據(jù)工作臺(tái)上的操作內(nèi)容顯示各種信息。

視圖

作用是提供開發(fā)者想要的信息??梢允盏綘顟B(tài)欄內(nèi),必要時(shí)再打開(高速視圖)。基本上一個(gè)視圖在一個(gè)工作臺(tái)內(nèi)只能打開一個(gè)。

編輯器

主要用于文件的編輯。和視圖不同編輯器可以同時(shí)打開多個(gè)。對(duì)于同一個(gè)文件也可以打開多個(gè)編輯器。

從插件的代碼中訪問工作臺(tái)使用org.eclipse.ui.PlatformUI類。代碼1-2說明了從PlatformUI中取得工作臺(tái)和工作臺(tái)窗口的代碼示例。

代碼1-2 使用PlatformUI訪問工作臺(tái)

  1. //取得工作臺(tái)  
  2. IWorkbench workbench = PlatformUI.getWorkbench();  
  3. //取得工作臺(tái)窗口  
  4. IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();  
  5. //取得工作臺(tái)頁面  
  6. IWorkbenchPage page = window.getActivePage();  
  7. //取得當(dāng)前處于活動(dòng)狀態(tài)的編輯器窗口  
  8. IEditorPart part = page.getActiveEditor(); 

#p#

4.工作區(qū)和資源API

在Eclipse中使用工作區(qū)作為開發(fā)人員的作業(yè)區(qū)域。工作區(qū)是在Eclipse啟動(dòng)時(shí)指定的一個(gè)物理文件夾。開發(fā)人員在Eclipse上生成工程、創(chuàng)建文件等操作都會(huì)在工作區(qū)指定的文件夾內(nèi)生成實(shí)際的文件。

工作區(qū)內(nèi)的資源在Eclipse內(nèi)部使用org.eclipse.core.resources包中定義的虛擬對(duì)象進(jìn)行操作,例如工程是IProject、文件夾是IFolder、文件時(shí)IFile。

工作區(qū)內(nèi)的資源 
圖1-4 工作區(qū)內(nèi)的資源

在插件開發(fā)的時(shí)候很多情況都會(huì)使用到工作區(qū)內(nèi)的文件或者文件夾。這時(shí)就可以使用這些對(duì)象。

對(duì)工作區(qū)的訪問需要使用org.eclipse.core.resources.ResourcesPlugin。代碼1-3是利用IWorkspaceRoot,去的工作區(qū)內(nèi)的工程的代碼示例

代碼1-3 使用ResourcesPlugin訪問工作區(qū)

  1. //取得工作區(qū)的root  
  2. IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();  
  3. //取得項(xiàng)目  
  4. IProject[] projects = wsroot.getProjects();  
  5.  

工作臺(tái)和資源訪問的API是Eclipse提供的API中最基本的,在插件開發(fā)時(shí)使用頻率較高的API。在這里不做詳細(xì)的說明,在以后得例子中會(huì)出現(xiàn)一些這樣的API。使用PlatformUI作為工作臺(tái)訪問的入口點(diǎn)和使用ResourcesPlugin作為工作區(qū)訪問的入口點(diǎn),是無論如何也要記住的。

在Eclipse中使用PDE(Plugin Development Environment)進(jìn)行插件開發(fā)。在PDE中為大家準(zhǔn)備了幾個(gè)模板供大家參考。***步咱們先利用模板制作一個(gè)簡(jiǎn)單的插件作為和PDE的***次接觸。

感謝大家關(guān)注51CTO《Eclipse插件開發(fā)基礎(chǔ)篇之***攻略》。如果您對(duì)Eclipse有什么新的使用心得可以發(fā)Email:zhousn@51cto.com,51CTO將與您一起分享!

【編輯推薦】

  1. Eclipse插件***攻略:安裝實(shí)例
  2. Eclipse插件***攻略:測(cè)試插件
  3. Eclipse插件大全 挑選最牛的TOP30
  4. Eclipse插件的安裝方法三則
  5. Eclipse插件升級(jí)后不正常的問題解決方法(3.3.0版本)
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-08-17 13:41:46

Eclipse插件

2010-08-17 11:03:14

Eclipse插件

2009-12-21 10:27:52

WCF基本概念

2009-08-18 10:34:31

Java入門基本概念

2010-06-12 14:12:22

RSVP協(xié)議

2010-06-29 13:00:49

EIGRP協(xié)議

2010-03-09 13:36:41

Linux基本概念

2010-04-22 12:27:16

Aix操作系統(tǒng)

2011-03-28 11:05:17

ODBC

2013-07-15 15:51:32

iOS多線程GCD基本概念Dispatch Qu

2020-03-05 09:53:59

ElasticSearLuceneJava

2014-04-16 15:11:19

Spark

2012-09-11 14:39:03

Moosefs

2009-03-20 11:46:10

MGCP協(xié)議網(wǎng)關(guān)

2010-03-16 14:13:20

無線Mesh網(wǎng)絡(luò)

2010-06-24 13:26:53

FTP協(xié)議

2009-12-29 18:29:09

Silverlight

2010-02-23 16:32:29

WCF服務(wù)

2017-04-07 10:19:22

交易支付概念

2011-08-22 15:19:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)