ABC框架项目从JBuilderX迁移到eclipse3.1上过程报告
现在的ABC框架的基金财务系统的开发环境是基于JBuilder的,根据JBuilder的目前水平和以后的发展前景来看,均不乐观。因此建议将该abcss工程迁移到eclipse上。着手实施此过程:
一,使用eclipse导入Jbuilder的工程,具体做法是新建一个Java工程,然后将jbuilder的文件导入到新建的java工程中。有一些文件jbuilder工程专用的,我们可以将其删掉,abcss.jpx、abcss.jpx.local等可以都删除掉。
二,导入eclipse后,build workspace时会提示一堆错误,是因为缺少两个jar包,这两个jar包在jbuilder下是不报的。一个是crimson.jar,这个是因为有一个java文件导入了这个包解析xml但是并没有使用;还有一个是javaws.jar,这个jar包是使用web start时使用的,这个jar包可以从“D:/Java/jre1.5.0/lib”中找到,在jdk5.0以后,安装jre并不会创建web start的图标了,但jar包仍然还在。
三,在导入上面的两个jar包后,程序编译应该基本上没有问题了。接下来我们就需要在eclipse中进行java swing程序的编辑了,首推的插件是 visual editor( http://www.eclipse.org/vep/WebContent/main.php)因为这个插件是eclipse项目中的,而且功能强大,可以编辑swing、awt、swt等程序。从上面的站点下载ve后,建议使用ve1.1以上的版本,按照eclipse插件安装的方法进行安装即可,需要注意的是需要安装EMF和GEF框架。
安装后的外观如下图所示,打开类的时候,第一次通过Open With->Visual Editor即可打开可视化编辑窗口,打开可视化窗口后,可以通过open view打开java bean和properties的view来查看窗口的控件和属性,并且可以通过托拽调整控件的顺序。具体使用方法请参见VE的使用教程。
四,我们从打开的窗口中是看不到ABC的组件,我们有两种方式可以使用,一种是通过浮动画板上的”Choose bean…”按钮来选择要使用的对象,这样比较麻烦,并且对于新手还需要记对象的名字;另一种方式是可以定制显示一个浮动面板的分类。在这里我们使用浮动面板分类并辅以choose bean来实现。
五,创建新的浮动面板分类。因为我们已经写好了bean和beaninfo,这样我们可以复用这些资源来创建一个插件项目。插件项目中包括plugin.xml、ABC.xmi、ABC20.jar、META-INF、icons等项目,可以见附件(com.abc.ABC.rar)。接下来主要说明插件配置的内容。
Plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension
point="org.eclipse.jdt.ui.classpathContainerPage">
<classpathContainerPage
name="ABC Library"
class="org.eclipse.ve.internal.java.wizard.RegisteredClasspathContainerWizardPage"
id="com.abc.ABCContainer">
类容器页的名字
</classpathContainerPage>
</extension>
<extension
point="org.eclipse.jdt.core.classpathContainerInitializer">
<classpathContainerInitializer
class="org.eclipse.ve.internal.java.core.RegisteredClasspathContainerInitializer"
id="com.abc.ABCContainer">
</classpathContainerInitializer>
</extension>
<extension
point="org.eclipse.ve.java.core.registrations">
扩展点,注册了需要的
jar
包,这里可以注册多个,描述符的名字就是项目的
build path
中
add library
中的库的名字,需要在项目中添加
library
才会出现
ABC components
的画板分类
<registration
container="com.abc.ABCContainer"
description="ABC Library">
<library runtime="ABC20.jar"/>
</registration>
</extension>
<extension
point="org.eclipse.ve.java.core.contributors">
指定了画板
ABC
容器使用的分类
XMI
(交换文件)
<palette
container="com.abc.ABCContainer"
categories="ABC.xmi"/>
</extension>
<extension
point="org.eclipse.jem.beaninfo.registrations">
<registration
container="com.abc.ABCContainer">
</registration>
</extension>
</plugin>
ABC.xmi文件的内容:这是其中一个配置片断
<xmi:XMI xmi:version=”2.0” xmlns:xmi=”http://www.omg.org/XMI” xmlns:ecore=”http://www.eclipse.org/emf/2002/Ecore” xmlns:palette=”http:///org/eclipse/ve/internal/cde/palette.ecore” xmlns:utility=”http:///org/eclipse/ve/internal/cde/utility.ecore”>
<palette:CategoryCmp xmi:id=”swtCat0”>
<categoryLabel xsi:type=”utility:ConstantString” string=”ABC Component” />
显示在面板中的分类的名字
<!--EButton -->
<cmpGroups xsi:type="palette:GroupCmp">
<cmpEntries xsi:type="palette:AnnotatedCreationEntry" xmi:id="entry1"
每个项目都要求不一样的
xmi:id
icon16Name="platform:/plugin/org.eclipse.ve.jfc/icons/full/clcl16/button_obj.gif">
图标的位置
/plugin/org.eclipse.ve.jfc
指的是插件的
plugin
的
ID
,不是路径,
full
后面才是路径,这个可以从帮助中的插件明细中看到。可以在
ABCPlugin.java
中设置图片路径
<objectCreationEntry xsi:type="palette:EMFCreationToolEntry" creationClassURI="java:/com.abc.ermsuite.platform.framework.looks.swing#EButton" />
包的路径和类名,用
#
分割
<entryLabel xsi:type="utility:ConstantString" string="EButton" />
显示在面板上的控件的名字
</cmpEntries>
</cmpGroups>
<!--ETextField -->
<cmpGroups xsi:type="palette:GroupCmp">
<cmpEntries xsi:type="palette:AnnotatedCreationEntry" xmi:id="entry3" icon16Name="platform:/plugin/org.eclipse.ve.jfc/icons/full/clcl16/textfield_obj.gif">
<objectCreationEntry xsi:type="palette:EMFCreationToolEntry" creationClassURI="java:/com.abc.ermsuite.platform.framework.looks.swing#ETextField" />
<entryLabel xsi:type="utility:ConstantString" string="ETextField" />
</cmpEntries>
</cmpGroups>
</palette:CategoryCmp>
</xmi:XMI>
六,将这些文件以插件方式放入eclipse目录,启动后,在project属性中设置build path,add library,增加ABC Library即可。