RCP學習筆記(RCP Tutorial)
在一個RCP中,我們將org.eclipse.core.runtime.applications擴展(extension)定義為工程中主程序的id,將org.eclipse.ui.perspectives擴展定義為工程中Perspective的id。
RCP的最小Plugin集合為org.eclipse.core.runtime、org.eclipse.ui,所以我們肯定要將他們加到Dependencies Tab
Plugin.xml用到的變量(如:%pluginName)在build.properties里定義,可以通過它實現國際化
plugin.xml的大體結構:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.1"?>
<plugin
id="org.eclipse.ui.tutorials.rcp.part1"
name
version
provider-name
<runtime>
<library name="yourproject.jar">
<export name="*">
</library>
</runtime>
<requires>
<import plugin="org.eclipse.core.runtime"/>
<import plugin="org.eclipse.ui"/>
</requires>
<extension
id="RCPApplication"
point="org.eclipse.core.runtime.applications">
<application>
<run
class="your application path">
</run>
</application>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
name="Display Name"
class=
id="eclipse.ui.tutorials.rcp.part1.RCPPerspective">
</perspective>
</extension>
</plugin>
由于歷史原因,eclipse優先考慮plugin的id而不是最頂層元素(如extension)的,所以盡管plugin.xml聲明extension的id為RCPApplication,但這個extension的id還是org.eclipse.ui.tutorials.rcp.part1.RcpApplication。而perspective的id寫在了perspective這個子元素里(不是頂層id),所以他的id要寫成org.eclipse.ui.tutorials.rcp.part1.RCPPerspective,而不能像RCPApplication extension的id那樣縮寫。
Main program:
主程序入口由org.eclipse.core.runtime.applications extension指定,告訴Eclipse runtime生成一個它的實例。Main program要實現IPlatformRunnable接口,程序執行代碼放在run()里。
一個Perspective(視角:由視圖、編輯器、導航器組成)
至少要定義一個Perspective,實現IPerspectiveFactory,并將它賦值給org.eclipse.ui.perspectives extension。這個接口最主要的方法是createInitialLayout(),他負責管理程序start時views和editor的放置方式等。
Workbench Advisor管理Workbench上的toolbar、perspectives等的添加和刪除(主要方法:getInitialWindowPerspectiveId()返回默認Perspective的id)
文章最后提到怎么部署一個獨立的RCP程序,步驟比較煩,3.1M7以上版本可以參考PainFree RCP

版權所有 羅明