将Eclipse插件转换为RCP应用程序(上)

有不少朋友问到如何把一个已有的Eclipse插件转换为RCP应用程序,其实这个 过程并不复杂,因为RCP应用也是基于插件的结构,可以说RCP 就是精简后的 Eclipse平台,只是我们要对这个平台做一些定制工作。将任何一个传统的 Eclipse插件项目转换到RCP可以分为两个步骤,这篇先介绍第一个步骤:建立应 用程序。

在GEF入门系列(三、应用实例)里我曾做过一个精简的GEF应用程序(下载) ,这一篇里我就一步一步的把这个例子转换为RCP应用程序(点击下载转换后的项 目打包)。应用程序(Application)是通过扩展 org.eclipse.core.runtime.applications扩展点建立的,其作用是让Eclipse知 道你的RCP需要什么样的功能,比如界面上有哪些视图,菜单和工具条,应用程序 窗口的初始大小等等。在plugin.xml里添加应用程序的定义很简单,像下面这样 指定一个id和一个类名就可以了。

<extension
id="myapplication"
point="org.eclipse.core.runtime.applications">
<application>
<run class="com.example.application.MyApplication"/>
</application>
</extension>

接下来我们的主要任务是实现这个类,MyApplication必须实现 org.eclipse.core.runtime.IPlatformRunnable接口,这个接口只定义了一个 run()方法,对于Eclipse Platform来说这个方法就相当于传统java程序的main() 方法,是入口方法。所有RCP应用程序里这个方法的实现几乎是完全一样的,即启 动 Workbench,并把一个WorkbenchAdvisor实例作为参数传给它,如下所示:

public class MyApplication implements IPlatformRunnable {
public Object run(Object args) throws Exception {
Display display = PlatformUI.createDisplay();
try {
int returnCode = PlatformUI.createAndRunWorkbench(display, new MyWorkbenchAdvisor());
if (returnCode == PlatformUI.RETURN_RESTART) {
return IPlatformRunnable.EXIT_RESTART;
}
return IPlatformRunnable.EXIT_OK;
} finally {
display.dispose();
}
}
}

所以应用程序的定制实际上是通过这个WorkbenchAdvisor实例实现的。现在我 们要构造 org.eclipse.ui.application.WorkbenchAdvisor类的一个子类,也就 是上面代码里出现的 MyWorkbenchAdvisor,然后覆盖它的一些方法。比较重要的 是这两个方法:createWorkbenchWindowAdvisor() 返回一个 WorkbenchWindowAdvisor实例,从类名不难看出它的作用是定制应用程序窗口, 包括菜单和工具条,稍后将详细介绍; getInitialWindowPerspectiveId()返回 一个透视图的id字符串,这个透视图定义RCP应用程序的界面布局,所以如果在原 来的插件里你没有定义透视图,现在必须要新定义一个了。

public class MyWorkbenchAdvisor extends WorkbenchAdvisor {
private static final String PERSPECTIVE_ID = "com.example.ui.MyPerspective";
public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
IWorkbenchWindowConfigurer configurer) {
return new MyWorkbenchWindowAdvisor(configurer);
}
public String getInitialWindowPerspectiveId() {
return PERSPECTIVE_ID;
}
public void initialize(IWorkbenchConfigurer configurer) {
super.initialize(configurer);
//The workaround call
WorkbenchAdapterBuilder.registerAdapters();
}
}

时间: 2024-08-03 17:50:38

将Eclipse插件转换为RCP应用程序(上)的相关文章

将Eclipse插件转换为RCP应用程序(下)

在上一篇里我们为一个普通的Eclipse插件添加了Application扩展,剩下来的 工作就很简单了,甚至不需要再编写一行代码.在 Eclipse 3.1里,把具有 Application的插件包装成RCP并输出的过程是通过建立产品配置文件(Product Configuration)来完成的. 在主菜单选择File->New->Other命令,在对话框里选择新建一个产品配 置文件,这个文件可以建立在任何位置,为方便起见我们就把它放在需要转换为 RCP的插件的主目录下好了.产品配置文件是一个

eclipse插件egit在往github上push图片

问题描述 eclipse插件egit在往github上push图片 5C 已经在github上创建好了仓库,并且代码能push成功,但是项目中添加了图片后,想将图片push到远程仓库中时,eclipse中却出现了错误,请问这种情况如何解决 解决方案 连接不上github 用bash重新remote add一下试试 解决方案二: 应该跟图片没关系,基本上是网络的问题,挂代理试试吧

开发您的第一个Eclipse RCP应用程序

开始之前 本教程适用于希望学习如何使用 Eclipse Rich Client Platform (RCP) 的开发人员.Eclipse 已发展成为拥有广泛应用程序的平台,服务于广大不同的最终用户.把 RCP 看成集成平台,它与 Eclipse 拥有一样的原始功能,但是总体内存占用更小,用户界面更加灵活.RCP 使得用 Java 编程语言编写桌面应用程序成为可能. 关于本教程 本教程使用 Eclipse RCP 构建一个应用程序.示例应用程序被分成四个部分,每一个部分都是构建在前一个之上.开始,

25 个让 Java 程序员更高效的 Eclipse 插件

原文:http://www.oschina.net/news/27773/25-best-free-eclipse-plug-ins-for-java?from=20120416 Eclipse提供了一个可扩展插件的开发系统.这就使得Eclipse在运行系统之上可以实现各种功能.这些插件也不同于其他的应用(插件的功能 是最难用代码实现的).拥有合适的Eclipse插件是非常重要的,因为它们能让Java开发者们无缝的开发基于J2EE和服务的应用程序. Eclipse的插件也能帮助他们开发不同应用架

了解Eclipse插件如何使用OSGi

Eclipse 和 OSGi 的关系,从 plugin.xml 到 manifest.mf Eclipse 集成开发环境(IDE)和 Eclipse Rich Client Platform(RCP)应用程序的核心由 Open Services Gateway Initiative(OSGi)规范的实现驱动.本文通过描述对 Eclipse 平台而言插件是什么 ,并跟踪从 Eclipse V2.1 到今天基于 OSGi 的实现中插件的发展,阐明了 Eclipse 与 OSGi 的关系. 还解释了

通过URL打开Eclipse Rich Client Platform应用程序

Eclipse Rich Client Platform (RCP) 为富客户机提供了一个极为灵活且功能丰富的框架.但是它的一个缺点是不能轻松地从其他源链接 RCP 应用程序中的业务对象.如果用户能够在其他应用程序中单击某个链接并被带到 RCP 应用程序中,并且已经打开了该链接所引用的业务对象,那将十分有帮助.例如,假定有一个用于处理费用申请的 RCP 应用程序.可能生成有关过期偿付的报表并以电子表格的形式发布(或者是在内部网中,或者作为富文本文档,或者作为电子邮件,或者其他形式等等).该报表可

eclipse插件打包发行的问题

问题描述 我做了一个非rcp的eclipse插件,能够运行,现在我想把他打包成一个jar的插件,这样别人就可以将它放到eclipse的plugin目录下使用了,但是现在的问题是,我按照大神salever(谢谢)的方法,通过export将插件项目导出生成了jar格式的插件,过程中没有出错提示,但是放到plugin下,重启eclipse并不能看到刚加的插件,这是为什么?是不是打包前准备工作没做好,请高手讲解下,eclipse插件开发打包的过程,包括一些重要文件应该包括哪些内容,比如插件项目中的Man

Eclipse插件的安装与配置

安装时有些小问题值得注意: 1.下载时注意Eclipse和Lomboz版本号很重要 一般来说相同版本号的才比较兼容. 即:2.0的Eclipse对应插件就装2.0的Lomboz:Eclipse3.01就对应装插件lomboz.301,这样不容易出错,下载时最好认真看清楚网站上的说明,否则有时安装总出现莫名其妙的问题,浪费时间. 2.安装Lomboz需要gef和emf插件的支持,所以光下载安装 Eclipse3.01,和lomboz.301.zip还不够,必须下载以下四个插件: Eclipse3.

Eclipse插件Continuous Testing介绍

   介绍     现在IT开发人员比以往任何时候都更加关注测试的重要性,没有经过良好测试的代码更容易出问题.在极限编程中,测试驱动开发已经被证明是一种有效提高软件质量的方法.在测试驱动的开发方式中,软件工程师在编写功能代码之前首先编写测试代码,这样能从最开始保证程序代码的正确性,并且能够在程序的每次演进时进行自动的回归测试.     单元测试是和开发人员最密切相关的测试类型.它通常由开发人员编写和执行.由于单元测试通常发生在错误产生之后不久,因此通过单元测试发现错误然后进行修正的代价通常比较小