介绍一下我接触过的Gwt第三方组件、框架及项目
1. Mygwt
曾经的大名鼎鼎的gwt第三方框架,在某些gwt框架的排名中排名第一。这个框架完全用gwt的方式实现了ext-js的功能,不依赖于ext- js的js脚本,突出功能点是布局、菜单、树和table组件。但不幸的是没有到1.0版就夭折,变成了ext-js下面的一个子项目ext-gwt。
曾经的网址:http://mygwt.net
特点:做出的UI和ext-js一样,但底下的代码却是java。
2. Gwt-ext
这个也是比较流行的gwt第三方的框架。用官方的话说:它是一个强大的组件库,提供可排序、分页和过滤功能的grid,提供可以拖拽的树,还有 Tab Panels, Menus & Toolbars, Dialogs, Forms等等。其实只要ext-js提供的,它就可以提供,因为它的底层是ext的js脚本,而不是java,这是和mygwt的最大区别。由于 ext-js最近更改了license,弄得作者郁闷了好一阵,最新的代码都是基于ext-js2.0.2的。
网址:http://code.google.com/p/gwt-ext/
特点:基于ext-js,外面套了一层java的外套,最大的麻烦是从服务器端得到的oo data,要变成js可接受的data 格式,比如数组。最大的优点是如果你对ext-js那个地方不了解了,看看它的demo吧。
3. Ext-gwt
看到这就有些伤心,曾经的mygwt啊。在mygwt刚刚拥有了新的form组件的时候,ext-gwt诞生了,而mygwt则消失了。:(。这 个框架相比mygwt最大的区别是form组件。正式发布的mygwt没有form组件,另外对一些组件的功能作了细化,比如panel的左右伸缩。内部 包名当然也全都变了。
网址:http://extjs.com/products/gxt/
特点:和新的ext-js一样的license限制。
4. hibernate4gwt
顾名思义,这个项目是为了整合hibernate和gwt的。对gwt不了解的同志可能会有疑问,这个有什么?那我简单说几句吧。Gwt是可以把 java代码编译成js的代码,但也有限制,只能局限于jdk的一些核心代码,其他非gwt的第三方的代码gwt是不能直接使用的。而hibernate 有几个明显的限制:通过hibernate查询到的集合是hibernate自己定义的对象,Lazy的对象不能取到,date属性的类型是sql的 date,等等,这些都是不能在gwt中,或者说在gwt的客户端上面使用hibernate的pojo的阻碍。一般的解决办法是做一个中间转换处理 (pojo—)vo),而hibernate4gwt则完全解决了这些问题,并且lazy的属性也可以取到(在客户端),这个可比 opensessioninview强多了。
网址:http://hibernate4gwt.sourceforge.net/
特点:hibernate4gwt permits you to use your Hibernate POJO (and especiallay the partially loaded ones) in the GWT client side code without pain.
另:由于和spring做了集成,配置起来稍显复杂。
5. google-web-toolkit-incubator
gwt开发团队的另外一个项目,主要集中于gwt的组件方面。官方说这些组件以后会放到gwt的核心包里面。有详细的组件设计文档和社区支持。这 里面有好多好玩的组件,比如:GlassPanel 、DatePicker、PagingScrollTable 、 ProgressBar、StyleInjector 等等。
网址:http://code.google.com/p/google-web-toolkit-incubator/
特点:学习gwt组件的好地方。
6. gwt-validator
一个简单的gwt交验框架。对gwt提供的form组件作了简单的整合,提供正则表达式的校验。
网址:http://code.google.com/p/gwt-validator/
特点:如果你想写一些校验的代码,参考一下吧。
7. gwt-dnd
一个基于gwt的提供拖拽功能的框架。可以给组件增加拖拽的功能,它的demo中有可以拖拽的下拉列表、table的行列、图片等等。还可以对树table进行拖拽,真是强啊。
网址:http://code.google.com/p/gwt-dnd/
特点:想给自己的组件加上拖拽的功能吗?就是它了。
8. Gchart
这个偶尔看过,但是没有用过。不多说了,贴个图吧。
网址:http://code.google.com/p/gchart/
9. Lotura
这个和前面的都有些不同,它是一个提供gwt的model和gwt 的UI进行binding的框架。简单来说,就是在一段html的form上面,不再需要手工一个值一个值的将model的各个属性对应到form的各个 组件中了,也不需要在提交form的时候,一个值一个值得组装model了。高深一点的说,model要加个属性吗?那就加吧,Lotura会知道如何将 该属性在ui上显示的。
网址:http://code.google.com/p/lotura/
特点:好久不更新了。
10. Uface
按照JFace Data Binding 的设计实现了对 GWT, gwt-ext, MyGWT 和 Swing的模型绑定.
网址:http://code.google.com/p/uface/
特点:有深度。
11. gwt-widgets
很老的一个关于gwt的widgets框架,涉及client端的组件库和server端的spring整合。Gwt刚一出道的时候它就存在了, 提供很多组件,比较突出的有canvas的组件,还有一个对非常有名的一个date组件的warpper的东东。Server端将spring和gwt的 service做了整合,有兴趣可以看看。
网址:http://gwt-widget.sourceforge.net/
特点:老牌的gwt框架
12. gwt-google-apis-1.0.0
可以通过gwt对google的一些服务进行访问的api的一些代码。主要包括:Gears 1.1 Library (Release Candidate)、Gadgets 1.0 Library (Release Candidate)、Google AJAX Search 1.0 Library (Release Candidate)、Google Maps 1.0 Library (Release Candidate)
网址:http://code.google.com/p/gwt-google-apis/
特点:相当于gphone上andriod。
13. GWT Reflection
由于gwt不支持反射,导致一些java的高级功能不能在gwt中使用。但是有个这个GWT Reflection框架,gwt的开发者可以欢呼雀跃了。
网址:http://gwtreflection.sourceforge.net/
14. gwt-mosaic
Gwt-Mosaic是一个主要由gwt标准的控件实现的一个widget lib demo。非常适合初学者学习和参考
除此之外,它还引用了gwt-incubator、gwt-dnd、GWTx、gwt-beans-binding等第三方的gwt框架,针对不同的框架都有实现的demo。也可以说是一个gwt 的组件综合性研究所。
网站地址:http://code.google.com/p/gwt-mosaic/
demo地址:http://69.20.122.77/gwt-mosaic/Showcase.html