學習EclipseRCP

RCP(Rich Client Platform)是一個使用Java技術構建富客戶端應用的平臺,它使用SWT/JFace技術構建界面部分,使用Eclipse平臺作爲RCP程序的運行環境,本質上RCP是Eclipse平臺的插件。RCP的優點是可以快速開發桌面系統,構建一般的應用都很簡單,甚至構建一個瀏覽器只需要拖出一個瀏覽器控件就可以,複雜的地方就是需要做一定的配置。

RCP程序可以脫離Eclipse平臺運行,這樣完成之後的RCP產品打包之後只有很小的體積。

 

RCP和Eclipse - PlugIn

 

它們倆在本質上是相同的,都是使用SWT/JFace技術構建的;而RCP可以獨立運行(脫離Eclipse),PlugIn只能運行在Eclipse中,像其他的各種Eclipse插件一樣;完成之後的RCP程序有直接可啓動的.exe文件,可以運行,PlugIn可能只是一些jar文件,需要加入到Eclipse的plugin文件夾下纔可以使用。

在Eclipse中創建插件工程時候,這兩個的區別就是“是否選擇該插件成爲RCP?”選項的差別,選擇完畢之後生成的插件代碼也不一樣的。

 

要學習Eclipse RCP編程,首先對Eclipse平臺要有一個大概的瞭解。知道Eclipse界面由幾部分構成,其中包括:

 

Workbench(工作臺):整個Eclipse平臺就是一個workbench

 

Editor(編輯器):可以認爲它是放置一些控件的容器

 

View(視圖):同樣可以認爲它是放置一些SWT控件的容器,它和Editor的區別是:1)在一個當前頁面中,只能有一個同樣的視圖,但是可以有多個同樣的編輯器(在Eclipse中編輯java文件時候,可以打開多個java文件,這是編輯器,而只能調出一個console視圖,這是視圖);2)編輯器是固定在當前頁面的具體位置的,但是視圖可以在頁面中移動;等等。

 

Perspective(透視圖):特定的視圖和編輯器的組合

 

還有需要了解,使用Eclipse開發RCP過程中的一些文件的含義,主要有

MANIFEST.MF:插件清單文件

build.properties:構建RCP程序時所導入的類庫設置

plugin.xml:最重要的文件,它是插件配置文件,集中管理你所創建的各個控件是如何接入到Eclipse平臺中的。

使用Eclipse的插件工程嚮導生成的項目框架之後,src包中包括了一些java文件,有控制RCP程序生命週期的類Application.java,等等,需要具體瞭解的可以查看生成的代碼。

 

RCP程序的界面顯示其實使用的是SWT/JFace技術,一旦瞭解清楚如何創建RCP框架之後,就和使用SWT構建一般界面沒什麼區別了,SWT可以使用VE插件進行開發,SWT以前使用過,開發過幾個小應用,所以重點是如何構建這個RCP應用的框架。

 

構建RCP應用的框架,其實也就是弄清楚怎麼擴展Eclipse,使用Eclipse平臺可以很方便的進行擴展的配置,它已經內嵌了一些常用的擴展模版,通過UI的形式就可以很方便的完成。

比如說我想要給我的系統加一個菜單欄,則需要在plugin.xml文件的擴展選項卡中找到 org.eclipse.ui.menus > right-click > New > menuContribution > locationURI = menu:org.eclipse.ui.main.menu 然後在右側的屬性面板中設定一些該菜單項的基本屬性,包括它的顯示文本、它所要執行的命令(command)等信息。

 

添加一個工具欄,需要在擴展選項卡中找到 org.eclipse.ui.menus > right-click > New > menuContribution > locationURI = toolbar:org.eclipse.ui.main.toolbar > right-click > New > toolbar 這樣便可以添加工具欄(還需要在WorkbenchWindowAdvisor.preWindowOpen:中添加configurer.setShowCoolBar (true);

 

添加一個視圖,plugin.xml > Extensions > Add > org.eclipse.ui.views > right-click > New > View > id, class

 

添加一個編輯器,plugin.xml > Extensions > Add > org.eclipse.ui.editors > id, class, icon

打開該編輯器

 

 IWorkbenchPage page;
 IEditorInput input;
 page = PlatformUI.getWorkbench ().getActiveWorkbenchWindow ().getActivePage ();
 // else if in ViewPart // page = getSite ().getPage ();
 page.openEditor (input, "editor_id");

 

等等

 

創建好你所需要的各個控件之後,所需要的就是畫界面了,這和java的SWT編程就沒有什麼區別了。

 

完成界面部分的創建後,需要的就是導出產品了,如果你所建立的工程是插件形式的,可以直接導出jar文件,然後拷貝到Eclipse的plugin目錄下,就可以使用該插件了;如果是RCP工程,需要新建***.product文件,構建該產品的描述文件。

(具體導出方法待完成)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章