本论文的内容主要介绍了在Eclipse平台上构建您自己的产品的方法。
Eclipse平台不必多做解释了,它应该是目前最热门的开源的java开发工具之一了。而且,它的目标是定义为一个工具集成平台,这种插件式的架构可以使众多的工具提供厂商发布自己公司的基于Eclipse的产品,如IBM的workplace、borland公司的jbuilder2006 (Eclipse版)。
本文就是介绍如如何创建基于Eclipse产品。遵循Hello world的惯例,本文的例子是一个最简单的RCP例子,它只有一个介绍页面。它最主要的目的不是教您如何进行插件的开发,而是介绍如何将您的插件打包成可分发的RCP产品。
创建您的RCP产品
在Eclipse 3.2中(事实上在Eclipse 3.1中,因为我们下面的产品都是在Eclipse 3.2上开发的,所以统一都叫做3.2),开发RCP(富客户端程序)比较方便。在Eclipse3.0中,也可以开发RCP产品,但是还是有几点不方便之处:必须手工config.ini文件,将您的product、application和闪屏等手工更改或者添加到config.ini文件。在Ecllipse3.2中,您可以添加一个product文件,配置您的闪屏所在的目录、RCP产品运行时的图标、关于对话框中产品图片和文字、RCP产品的product和application、产品名称、启动器的名称、包含的功能部件等。同时,在Eclipse 3.2中,还可以直接导出RCP产品,而在Eclipse 3.0中,您只能导出插件,而后放入到RCP平台中。
下面,我们就以一个简单的例子演示如果创建您自己的RCP产品。
生成一个简单的RCP例子
打开Eclipse3.2,新建插件项目,项目名称最好遵循约定俗称的方式,因为plugin.xml中的插入点的id将根据这个项目名称来生成(当然您也可以手工更改)。
最下面是您的RCP产品发布时选择哪一个Eclipse平台,这里选择Eclipse 3.1。点击下一步按钮。
图表 1
填写您的插件的id、版本、名称和提供商,选择您的产品为RCP产品(相对Eclipse 3.0新增加的功能)。点击下一步按钮。
图表 2
选择您要采用的模板。通过模板,您可以快速的建立起您的project,当然您也可以创建一个空的project,然后逐步添加相应的文件。
在这个例子中,采用了一个带有介绍页面的模板。
在我们第一次启动Eclipse时,通常会看到一个Eclipse的欢迎页面。我们这个例子也演示了这个功能,当别人第一次运行我们的产品的时候,我们给他显示一个产品介绍的页面,用户将来也可以在帮助菜单中选择显示这个页面。
这里之所以采用这个模板是为下一片文章埋下伏笔,下一片文档将重点介绍Eclipse的介绍页面。点击下一步按钮。
图表 3
在这一步中,需要填写产品的id、产品名称和application的id。并选择欢迎界面的内容是静态的还是动态的,这里选择是静态的,将以xhtml格式文件提供介绍页面。点击下一步,project就建立了。
图表 4
生成product配置文件
相对Eclipse3.0,最新的Eclipse产品提供了配置product产品的功能,如果配置了这个文件,就可以将您的这个产品直接导出成RCP产品。
选择新建一个Product Configuration:
图表 5
在接下来的对话框中填写您的这个文件的名称,以及如何初始化这个文件的内容。这里选择了我们正在开发的这个产品,您选择第一项也没关系,因为可以通过编辑器可视化的编辑。
图表 6
点击完成之后就会显示这个文件的编辑器。这个编辑器有三个页面,第一个页面描述了这个产品的一些基本信息。刚才我们创建这个文件的时候选择是基于这个产品创建,所以这里已经填写了我们产品的内容。
图表 7
第二个页面显示了我们这个产品发布时包含的功能部件以及程序运行时的运行时的参数。
图表 8
第三个页面时配置启动程序的名称、程序运行时的图标、闪屏所在的插件以及关于对话框的图片和文字。在这里先填写启动程序的名称。
启动程序是只调用startup.jar的那个exe文件。默认是eclipse.exe,它负责查找jre、处理启动时的参数以及调用starup.jar文件。
其他的配置在下面介绍。
图表 9
图表 10
创建产品的windows图标
看看我们的Eclipse,程序在运行时图标是日食那个图标。如果我们要发布自己的产品,必然要采用自己的产品的图标。
首先准备两张gif图片,一张是16×16的,一张是32×32的。在我们的project中创建一个icons文件夹,将这两个图片放到这个文件夹中。
图表 11
双击plugin.xml文件,在编辑器中选择build那一页,在二进制输出选项中将icons选中,这样在发布的时候就会同时将icons发布。
图表 12
现在我们双击product文件(rcpapp.product),选取第三页(Branding)。配置Window Images这一节。
图表 13
这样,我们的程序在运行时,将显示我们的图标。
图表 14
作者:smallnest
网址:http://www.kuaff.com
email:[email protected]
创建产品About图片和文字
在Eclipse的帮助菜单中,选择“关于”(about)那一个菜单项,将显示Eclipse产品信息。
图表 15
如果我们要发布自己的产品,自然会想到显示我们自己的图片和信息。下面就介绍了如何替换成自己的图片和文本信息。
首先将一个gif格式的产品图片放入icons文件夹下,图片的大小不能超过500×330像素,如果大于250×330像素,文本信息将不被显示。
现在我们双击product文件(rcpapp.product),选取第三页(Branding)。配置About dialog这一节。
图表 16
到目前为止,我们的程序只有一个菜单“Help”,而且菜单中只有一个菜单项“Help”,现在我们就需要将“About”菜单项添加到帮助菜单中。
可以通过下面的代码将“About”菜单添加上。其中的aboutAction是我们现在才添加的代码。
图表 17
这样,选择“About”菜单时将显示我们的产品信息。
图表 18
替换闪屏
现在让我们做一个闪屏(Splash),来替换掉project中那个临时的splash.bmp文件。
图表 19
替换完毕,双击rcpapp.product,在打开的编辑器选择第三页的Splash Screen这一节,选择闪屏在哪个插件中。
图表 20
事实上,闪屏图片不一定就是splash.bmp图片,您可以起随便一个名字,不过这样一来就需要修改config.ini文件,这里不多做介绍了。
定制产品的Theme
目前来讲,我们的产品做的差不多了。如果直接运行我们的产品,可以看到,那个Tab标题栏不是我们在Eclipse 3.0以后看到的那种波浪型的样式。我们可以通过配置文件的方式更改产品的样式。
双击plugin.xml文件,在编辑器中打开“扩展”那一页,选择扩展点"org.eclipse.core.runtime.products"。
图表 21
可以看到在我们的产品下已经配置好了三个属性:windowImages、aboutImage、aboutText。现在我们增加一个属性,点击“Add”按钮,增加属性“preferenceCustomization”,它的值设为“plugin_customization.ini”。
图表 22
可以在这里设置的属性都是在接口org.eclipse.ui.branding.IProductConstants定义的。包括ABOUT_IMAGE 、ABOUT_TEXT、APP_NAME、PREFERENCE_CUSTOMIZATION、STARTUP_FOREGROUND_COLOR、STARTUP_MESSAGE_RECT、STARTUP_PROGRESS_RECT、WELCOME_PAGE、WINDOW_IMAGE(弃用)、WINDOW_IMAGES。
同时在我们的project下新增加一个文件plugin_customization.ini,它的内容如下:
org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false
org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight
它的第一项就是设置我们的Tab的样式,true是传统样式。我们设置为false。第二项是设置透视图所在的位置,这里设置为右上,不过我们的产品中没有显示这个选择,设不设无所谓。
事实上,在这个文件中可以定义的参数有上百个,可以通过Eclipse的javadoc中的
org.eclipse.platform.doc.isv/reference/api/constant-values.html
文件查找。配置方式为"包名/常量名=值"。
注意:现在虽然添加了plugin_customization.ini,但是在发布产品的时候还是不会将这个文件添加上去。所以您需要在plugin.xml文件的编辑器的build页面中,将plugin_customization.ini文件选上。
图表 23
发布产品
现在到了发布我们产品的时候了。
不过在发布之前,先更改一个Eclipse3.2错误,因为目前的自动生成的介绍页面有些错误。在生成介绍页面的时候,在content目录下生成了三个xhtml文件,将这三个文件中的中文去掉,否则在Eclipse解析的时候会出错。
选择"Export"(导出)菜单,在对话框中选择“Eclipse product”。
图表 24
点击下一步按钮。在接下来的对话框中选择哪一个产品文件,以及产品发布的文件夹的名称。您可以选择发布成打包的文件,也可以选择发布到某个文件夹中。同时还可以选择class的版本。
图表 25
现在运行一下我们的产品吧。
图表 26
图表 27
选择您的jre
真正在用户的机器上安装的时候,他的机器上不一定安装了JRE。所以您可以将JRE和您的RCP程序一起打包。启动程序首先在本文件夹下检查是否有jre文件夹,否则的话再找注册表等地方,如果查找不到jre,程序将无法运行。
打包jre非常的简单,只需将您机器上的jre文件夹复制到您的RCP产品的目录下。
提示:在一些应用中,可能需要java的串口包,或者是java的媒体开发包,这些开发包需要安装到JDK下。您可以将您的jdk目录复制到RCP应用程序文件夹下,同时将jdk文件夹改名为jre。
创建您自己的启动程序
目前来说,我们的RCP产品是发布完毕。但是这里有一点点的瑕疵。看一下我们的产品的文件夹。
图表 28
那个启动程序“RCP演示程序.exe”文件的图标还是Eclipse的图标,这不能不说有那么一点点的遗憾。
可以有多种方式解决。
一种就是通过资源修改文件,将“RCP演示程序.exe”的图标的资源进行修改。
再一种就是自己写一个启动程序,查找jre、分析参数、调用startup.jar文件。
现在给您介绍第三种方法。
打开Eclipse3.2所在的文件下的
eclipse3.2/plugins/org.eclipse.platform.source_3.1.0/src/org.eclipse.platform_3.1.0文件夹,解压其中的launchersrc.zip文件。
替换解压的文件夹下的library/win32/eclipse.ico文件,替换成您的文件。
图表 29
运行library/win32/build.bat文件,将生成启动程序。将启动程序改名为“RCP演示程序”,然后复制到您的RCP程序的文件夹下,替换相应的程序即可。
图表 30
需要注意的是,在Windows下需要Microsoft Visual C and C++ Compiler 6.0,在vs.net 2005下无法编译。使用mingw也可以。
通过以上的步骤,您就可以完整的发布一个RCP产品的例子了。
下面是广告时间,您可以休息一次了。以下是我做的一个RCP的程序。