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
版权所有 罗明