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

版权所有 罗明