Thursday, August 14, 2008

LWUIT Open Source... Today! (plus great new drop)

The LWUIT home page now reflects the open sourcing of LWUIT today and Terrence is also blogging about this. Today we are finally switching to the SVN repository for all development which means changes to LWUIT will be made live within that repository.

What does that mean to you?

We no longer need to tell you that a fix will be available in the next drop, we can commit to the SVN to deliver fixes for issues discovered by the community.

You can now contribute code to the project using the incubator project but make sure to sign the SCA before applying for a role.

Drops probably won't be as frequent as before since they won't be as essential for bug fix deliveries. We would expect more detailed bug reports from the community though ;-)

The license we picked is the GPL+Classpath Exception which allows binary linking with the application (unlike the LGPL) thus allowing you to build and obfuscate your own proprietary applications. We still intend to offer binary drops under the current binary license to give you a choice between two licenses and ease your interaction with the legal department in your respective corporation (note that the binary license only applies to the binary drops!).

The current source code is a snapshot in time, development has been ongoing with many new features available in the current source code that weren't previously available in a drop. To bring all things into line we are also publishing a new drop with updated release notes etc.

Main features of the new drop/source code include the following:
  • Live drag and drop support for components in layouts
  • Component z-ordering support
  • New absolute/scalable layout allowing arbitrary positioning
  • SVG Image support using JSR 226 - SVG Images can be loaded and applied to any component
  • 3D transitions are now possible for all components including dialogs and arbitrary components
  • Performance improvements: Added the ability to repaint a dirty rectangle within a Component
  • Added support for glass pane allowing a painter/painter chain to draw on top of the current component very efficiently.
  • Fix for issue of layering modal dialogs one on top of the other

Please look to the release notes for further details of what has changed.


  1. Does this mean we finally get to see the LWUIT.jar for CDC/PBP devices?

    Or are you leaving that implementation to the community?

  2. While the community can start working on a CDC port we already have a functional port of our own. Getting it out the door (in binary or source form) is a different matter altogether and one in which I have no say whatsoever (priorities for LWUIT).

    I hope we will be able to release that too as well as the resource editor source code and some other things we have (the LWUIT Matisse source code, the Ant task, the many demos we have etc...).

  3. Shouldn't we just wait for JavaFX to run on mobiles?

  4. Shai, thanks for the answer. It's good enough for me if I just get a clear sense of Sun's intention about this, which is what your post helps with.

    If what you're saying is that Sun is cool with people downloading LWUIT source, building apps with it, keeping their own rights to their own code, but making sure that any fixes, changes, additions, etc. to the LWUIT packages are contributed back to the community, then this is fine. I guess it's almost like we're considering the Java .class files to be the "modules" in this case.

    Have I understood correctly?

  5. Thanks a lot Shai, this makes a lot of sense.

    Given that as you mentioned, you don't speak for Sun, it would be great to hear Terrence confirm this as an authorized representative of Sun. I've posted a question over on his blog too:

    That aside, this makes me a very happy camper...

  6. I develop a simple mobile applicaiton using new LWUIT tool kit version. In that I perfoms RMS related operations. The application performance is very very slow. That is, the events are working slowly. If we perform any command action, it takes lot of time to show dialog response

  7. How to dispose the Form object which is added to Display / Container ?

    We developed a simple mobile application using new version of LWUIT. Jar(LWUIT_20081222). Overall performance of application

    is very slow, we took maximum care in designing application like using threads etc, now we doubt the reason for bad

    performance is unable to dispose Forms (Form objects) which are created and no longer required, let us know how to dispose

    forms added to Display, or give us know your valuable suggestion on improving application performance especially LWUIT based


  8. You overused threads in your application from the little I saw. Compare your code to makeover or the LWUIT Demo and read the developer guide/performance guidelines.

  9. This comment has been removed by the author.

  10. This comment has been removed by the author.

  11. Can u pls, tell me------
    How to dispose the LWUIT Form form LWUIT Container?
    Pls, give me ur valuable suggestion-------------

  12. I have some problems with the Dicember LWUIT version too. My application doesn't manage to dispose a form when another one is called to be shown. It seems that the second form remain behind the old one. With the previous lib version I hadn't no problems.