罗明的博客
... ...
讨论Eclipse, Java, Linux, Google产品
              

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



版权所有 罗明
posted on 2005-06-24 09:25 罗明 阅读(183) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: