GWT does not provide as near a complete set of widgets with GWT as, say, YUI. It does provide a way to integrate existing javascript widgets, as the gwt-ext and gwt-widget projects do. However, this approach is lacking compared to native GWT widget sets because

  1. They require external javascript source files, which you then have to version and your user has to download (even if you only use some of the code). These files are not subject to the GWT optimization/compilation process.
  2. The JSNI methods used to access the third party widgets can cause trouble when you’re debugging in hosted mode. See one example.

I think it would be worth the GWT team taking more action to standardize the GWT widget set. Yes, the incubator is a start, but some of the widgets there are months old. Among other things, I could not find a carousel component that didn’t depend on kilobytes of external YUI javascript.

Here’s an informal list of GWT widget toolkits that I’ve found in my searches. Most I’ve tried and found useful, some I just have looked at. Some are native, some are wrappers.

  • The GWT incubator: these are widgets, as well as documents and other tools, that might make it into GWT in the future.
  • gwt-widget: I’ve used this project in the past. Some wrappers (of scriptaculous) and some native classes (SimpleDateFormat, LightBox).
  • sphene: I like the slider and am planning to use it in a project very soon.
  • GWT-Rocket: This provides a whole framework, including many widgets and some replacements for core GWT functionality. I installed and tested their slider functionality, but haven’t looked closer than that.
  • gwt-ext: This project wraps the fine extjs js library, plus more if you pay. I have used this for grid tables and found it great.
  • ext-gwt: This project apparently re-implements extjs, by the folks who wrote extjs. Here’s more about the differences between ext-gwt and gwt-ext.
  • GWTcomponents, which appears abandoned, but might have useful components.
  • gwt-fx: not strictly a widget toolkit, but rather a way to do effects natively.

Here is a page with other libraries that I don’t have a lot of experience with, but might be worth investigating. And looking on google code turns up a large number of projects devoted to GWT extensions.

Technorati Tags: ,

© Moore Consulting, 2003-2017 +