UFace – Update

I recognized today that I haven’t blogged about one of my favorite OSS-project (UFace/UFacekit) lately.

For those of you who have never heard of this project let me introduce it in a few sentences.

UFace or UFacekit has the following targets:

  • Add a highlevel API above Eclipse-Databinding
  • Helping Eclipse-Databinding to gain momentum outside Eclipse/SWT/JFace world by providing Observable-Implementation for various UI-Toolkits like Swing, GWT, …
  • Helping OSGi to be used in UI-Applications outside Eclipse-RCP e.g. in Swing Applications
  • Providing a uniform UI-API for all those widget-systems including builders for common form layouts (e.g. 2 column label/field list)

We have been fairly busy lately and added the following things into UFace:

  • Validation and Decoration Support (contributed by Kenneth Westelinck) for Swing and SWT
  • Worked heavily on the MyGWT integration
  • Maven-Build-System

Validation and Decoration

Adding decorations to a UIForms (our abstraction above the databindingContext providing a uniform API for different Databinding-Implementations JavaBean/EMF/UBean/…) is not more than adding these 2 lines to your sources:

StatusDecoratingInterceptor interceptor = new StatusDecoratingInterceptor(detailComposite);

Darn cool, isn’t it?

The resulting UI with validation error looks like this:

SWT on Win32:

Swing on Win32:

UFacekit implementation for MyGWT

Beside providing a higherlevel API above Eclipse-Databinding the other idea of UFace is to provide a uniform API to deploy your applications in different ways (Desktop, Web, Mobile-Devices, …). In Web-Space we decided to go the GWT way which means your application is running completely in the browser and only business data is fetched from the server.

This concept is different from the one of RAP who, as far as I have understood the framework, does most of the work on the server-side and uses the browser “only” for rendering purposes (RAP devs please correct if I’m wrong here).

The hardest thing to bring to browsers are SWT-Layouts and that’s where I’m currently progressing slowly but steadily at the moment. This is how the the same form looks like in the browser rendered with MyGWT:

It’s not 100% right and Combo and List aren’t working either but it was quite an achievement to get that far.

Current status / Release plans

My first draft plan was to have an M1-Milestone for JFace, Swing and MyGWT implementation ready for EclipseCon but I had to delay this because my current work load hasn’t give me enough time to work on UFacekit too many hours. Today JFace and Swing are complete (as complete a first Milestone can be) and only MyGWT is missing so I hope we could have a first Milestone by April.

What’s in the queue

We already have a queue for features we’d like to integrate (an incomplete list is this):

  • Support for more Widgets Tree/TreeTable, TabFolders, …
  • Implementation ontop of Eclipse-Forms
  • Better looking decorations on Swing
  • Support for CSS to style your widgets
  • Extensible converts
This entry was posted in UFaceKit. Bookmark the permalink.

2 Responses to UFace – Update

  1. Jim says:


    I would like to try UFace in SWT, particularly the databinding and validation features.

    I’ve looked through the google code pages, but still not sure how to get started.

    Any tutorials or guides available?


  2. Tom says:

    There’s an example project in CVS which you can use.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.