eclipsework学习笔记

Eclipsework 学习笔记

介绍

l         eclipsework是一个以webwork为生成框架的,基于velocityeclipse插件,据我的了解,有以下几个好处:

(1)表达框架以XML形式形成,如要生成一个找类的页面,或是一个找数据库的页面,只需要按一定规则来写XML文件就可以了。

(2)生成部分使用的是velocityVM模板,可根据情况进行修改,实际上,可以生成任何形式的文本。注:所以它原来是为了生成webwork框架的程序而做的,许多模板和XML控制文件都已经生成好了,但我们可以依据我们自己的需求,将它改成struts框架的东东。

(3)控制页面部分的目的是为后面的模板提供参数,而且可以同时以多个模板生成多个文件。

(4)以插件形式与开发工具相结合,易于安装和使用。

 

l         缺点:

(1)    XML控制文件没有说明文档,一些组件比较难用,好在总体上还是够用的。

(2)    现在用的是0.8的程序,而它最新的1.0的程序不能在eclipse 3.2.1 上使用。

(3)    可控的参数不多,造成在模板使用的时候,一些特别的要求不好实现。

(4)    对最新的velocity-tools不支持。也可能是eclipse不支持吧。

 

1.  安装过程:

序:在open-open上看到这个东东的说明,因为正想找一个工具,在实现我们自己平台的开发上的一个灵活性与方便的统一,想要以一种模板 方式 先生成基本的代码,再由开发人员深入加工,因为用到一些我们平台的特性,虽然平台是基于STRUTS的,但用myeclipseeasystruts都不能加入这些平台的特性,只能生成普通的STRUTS框架。

于是,到达http://eclipsework.sourceforge.net/ ,网站如此的简单,只有一个一分钟使用说明,说是有很多例子,其实也没有几个。先下来再说吧。

第一步:准备程序

org.eclipse.eclipsework_ 1.0.1 --------------- (这个在eclipse3.2.1上不可用,不用好了)

org.eclipse.eclipsework_ 0.8.0 ---------------这个才行,开始不知道,又学了半天eclipse插件的安装

templates-0.1-------------------------已有模板,可用来学习

easysql-1.1----------------是数据库插件,可以访问数据库的视图。

commons-lang-2.3------------其实是作为velocity的工具的代用品出现的,后面说明为什么要下这个。

Eclipse 3.2.1 -----------我只知道这个版本没有问题,别的没试

Myeclipse5.1GA M2----------可能不需要吧,但如果是生成POJO的话,还是这个方便,反正我装了。

其它的都在exlipseworkLIB包中,velocity的版本是1.4abstractplugin.jar这个包应该是作者自己写的接口类,不怎么样。

好了,都有了,先把org.eclipse.eclipsework_ 0.8.0 easysql-1.1放到plug-in目录里,打开myeclipse(别说没有注册,网上有www.icn.biz)

第二步:试验一个

先要打开easysql,在视图的other里,连上一个可用的数据库吧。再点新出来的那个open templates view的按键。在connectionsselect一个库。

templates的要在选项里要配templates0.1目录,最外面的wizards.xml和其目录。

 

直接试试DEMO JDBC里的东东吧。……….

依步骤选一个类,再选一个包,后会在包下生成一个DemoPOJOJDBC.java的文件,看起来很方便。

 

2.  研究()wizrds.xml文件

先看一下templates的这个文件吧。样子如下

<category name="user">

                     <wizards>

                            <wizard-def description="hello" template="user/wizard.xml"/>

                            <wizard-def description="BaseDAO" template="user/BaseDAO.xml"/>

                            <wizard-def description="var" template="var/wizard.xml"/>

                     </wizards>

              </category>

可以看得出来,是页面上template viewTREE,指定每一个wizard文件的名称位置。如果自己写一个的话,也要加到这里来才能看得到。

 

3.  研究()  xml向导文件

这个文件用来控制GUI界面的,可以说的不少,整理一下吧。

组件

属性说明

作用

其它

group

 

Name

Label

checkbox

显示一个group,标题为label,可见不可见里面的内容为checkbox,由一个ckeckbox组件控制。

作为默认,name为参数名,在后面的模板里以$name的方式可调用

container

Name

Label

Required

type

用来选一个包,目录或源文件目录。Required来控制能不能进行下一步

Typepackage/folder/source

 

textfield

Name

Label

required extensions  ”vm,jsp,ftl,xslt" value

tooltip

type

radio

可以作为输出文件的名字,可带后缀。Value为默认值

Tooltip

Type没有研究

Radio可能是同checkbox一样的控制

 

checkbox

 

Name

Label

Value

Tooltip

radio

同上

 

radio

Name

Label

Value

Listener

Radio

Elements

Option

tooltip

基本同上

多的部分还没有研究

 

combo

Name

Label

Value

Tooltip

Radio

Edit---boolean

Listener

Elements

  File

  Path

  Filter

Option

 Value

 

基本,同上

多的部分还没有研究

 

type

Name

Label

Required

Type

Validate

value

用来取一个类

多的没研究

 

file

Name

Label

Required

Extensions

External----boolean

Tooltip

Radio

Fullpath---boolean

取一个文件,可以是工程内的或是操作系统级的

 

页面级

 

 

 

component-page

Required

Description

Condition

image

组件级的东东要加在这个标签里面

 

model-page

Description

Type

Required

pattern-mode--boolean

name

image

Used to select the POJO or Table from the Database

 

Type类型分析为三种:table  sql POJO的,POJO不用标。Table用来选一个表,再对应table类应该有一个column

Sql为生成一个sql语句的向导

POJO可以选一个或多个类(pattern-mod)

 

 

table-page

Description

Required

Columns

Lines

var

用来插入多个变量的列表向导,做得很乱,只是勉强可用。注:lines取得不对,不要用,空写一个就好了。

<table-page>                       <description></description>

 <columns>           <column>ERROR</column>

<column>app.properties</column>

   </columns>        <lines></lines>

        </table-page>

其它

 

 

 

include

 

可包含一个其它的向导文件

 

Table

Name

Label

Required

tooltip

还不知要怎么用,显示为一个表

 

variables

Var

  Name

  Value value1 …..value9

加一些常量 10个?没用过

 

title

 

标题

 

output

Template

  condition

输出部分

指定对应的模板VM

指定输出的文件名,后缀等

可以条件输出

对于POJO类,有一个特殊的处理,但没有什么用,写得也不好。

 

 

4.  深入研究()

看了一阵之后,开始写自己的模板,选一个表,输出它的POJO类,看起来简单,但并不好做。主要是在VM模板方面,可用的工具太少,连处理lastindexof都没有。真的没有?仔细研究一下源代码吧。不太懂eclipsePLUG-IN编程,但还是凭硬工夫看出些东东来。Eclipse的就不说了,也没好好看。主要由wizardHelper类来处理初始化的东东。看了一下,在velocitycontext里加了stringUtils,这个类是在coreutils中继承apachestringUtils工具类,很好用的,但我使的时候为什么总报错呢?回到前面,为什么下载commons-lang-2.3了吧?有许多新方法,但又出问题,因为作者在老的类里加了一个方法,而新的类里有这个的static了,看来只好重新编译这个类了。

做了一个大胆的试验,建工程,加库,千方百计地重写了这个类,如下:

package org.eclipse.eclipsework.core.util;

public class StringUtils extends org.apache.commons.lang.StringUtils {

    /**

     * new add

     */

    public String getJDBCtype(String source) {

       String temp="";

       temp=StringUtils.substringAfterLast(source,".");

       if(source.contains("Integer")) {

           temp="Int";

       }

       return temp;

    }

    public String capReplace(String source,String a,String b){

      

    }

   

    public String uncapReplace(String source,String a,String b){

   

    }

    public String cap(String s){

      

    }

    public String uncap(String s){

      

    }

    /*public int indexOf(String source, String target){

       return super.indexOfAny(source,new String[]{target});

    }*/

    public String getJavaName(String s) {

      

    }

    public String getFieldName(String s){

      

    }

}

另外加了一个方法,来取得数据库类型对应的JAVA类的类型(不是类)

 

5.  Wizard.xml文件中有哪些个已经定义好的velocity变量,如:$stringUtils?

wizardHelper里加入了工具及其它变量

 

 

templatesPath

模板路径

 

stringUtils

字符串工具类

继承自org.apache.commons.lang.StringUtils

 

utils

一些转换工具类

 

date

Calender

 

year

时间

 

????EclipseWorkFactoryManager.

getStaticSettings().

getProperties()

静态变量

 

map.put("if", "#if");

map.put("for", "#foreach");

map.put("foreach", #foreach");

map.put("end", "#end");

map.put("velocity", "$");

map.put("open", "{");

map.put("close", "}");

Velocity Tags

 

 

wizard页面定义的变量

 

model

model

 

 

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值