jbuilder下swing应用开发移植到eclipse+visual editor的实践

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即可。
 
 
 

你可能感兴趣的:(eclipse,swing,eclipse插件,library,JBuilder,extension)