Release Notes

Lightweight User Interface Toolkit - 1.3

December 2009


Table of Contents

1. Overview
2. Prerequisites
3. Installation Instructions
4. Using the Toolkit
5. Known Bugs
6. Useful Information

1. Overview

The Lightweight User Interface Toolkit (LWUIT) is a widget library that you can bundle with your application. Inspired by Swing, it runs on top of MIDP 2.0 and implements a peer-less graphics and UI model in a compact package with small footprint and moderate device requirements. The lightweight characteristic makes it possible for resource-constrained devices to have a rich look and feel.

LWUIT has two components, the library itself, LWUIT.jar and the Resource Editor, ResourceEdit.exe.

2. Prerequisites

In general you will use the library with an IDE or a toolkit such as the Sun Java™ Wireless Toolkit for CLDC. If you have a recent version of the toolkit installed, its environment will support the addition of the LWUIT toolkit.

A minimal environment is:

3. Installation Instructions

Download the LWUIT distribution zip file and extract it.

The release contains the following:

  1. UIDemo - a NB 6.x project that demonstrates the library key features
  2. ResourceEditor.exe - a GUI utility to generate resource files and themes.
  3. docs - the release contains the API javadocs and a detailed developer guide

4. Using the Toolkit

With NetBeans: add the LWUIT.jar to your project(open [project properties]->[libraries & Resources] )

With the Sprint toolkit: create a LWUIT project.

With the wireless toolkit add the LWUIT.jar to [wtk_install_dir]\lib\ext and make sure the project bundles the LWUIT.jar (see Settings->External APIs in the WTK)

Create a project . At least MIDP 2.0 and CLDC 1.1.

  1. Open the project.
  2. Click the Settings Button.
  3. Click the External APIs icon.
  4. For LWUIT.jar, check the Use and Bundle boxes.

5. Known Bugs/Issues

This is not an exhaustive list of known bugs. It includes those bugs that developers are most likely to encounter when using LWUIT.

  1. Known issues can be seen in the public lwuit issue tracker, to file additional issues you can ask to join the project as an Observer role. Make sure to check the LWUIT forum before filing issues.
  2. The ResourceBuilder Ant task was removed for this version and replaced with an Ant task integrated with the LWUIT Designer code base. This also required changes to the syntax of the Ant task/conf files to support the new style structure in LWUIT, the documentation wasn't updated in time for this release you can refer to the LWUIT Demo for usage examples and to the LWUIT blog where we will post some more documentation.
  3. When opening older resource files with the new LWUIT designer all bitmap fonts will need to be recreated since information related to bitmap fonts is lost due to deficiencies in the older format.
  4. The new LWUIT designer behaves differently with images and doesn't reencode them, hence if a JPEG is added to the new LWUIT designer it would remain as a JPEG on the device unless it is scaled. Previous versions of this tool always reencoded the added images.
  5. Styles in LWUIT were changed significantly since the last drop, LWUIT no longer supports fgSelection/bgSelection and instead uses selected/unselected styles. When loading a resource file created with the older version of LWUIT a special compatibility mode is triggered which disables some of the features related to the new styles and is not 100% compatible with the older LWUIT. Further details on the reasoning and features related to the style change are within the LWUIT blog.
  6. Proguard 3.7 that ships by default with NB6.0 has issues with LWUIT download version 4.x and replace the Proguard version in NB - under [NB 6.0 install dir]\mobility8\external\proguard
  7. Default Commands collide with combo box popups, text components etc... - when a default command is assigned to a form it will receive an actionPerformed event as well as the component that has focus. There is no workaround for this issue other than avoiding the default command functionality in such cases, this functionality exists for use cases where component based interaction isn't necessary such as navigation based on lists.
  8. FlowLayout is buggy in complex layouts/scenarios - issue #72 (refrence numbers are from issue tracker)
  9. GroupLayout has bugs and is not recommended to be used until a matisse plugin is available - issue #21 (refrence numbers are from issue tracker)

6. Useful Information

The LWUIT library was designed to run on any MIDP2.0 CLDC1.1, but there might be some broken devices that would fail to run a LWUIT based app.
For a more concrete devices DB see this link which is based on community reports.
Feel Free to edit this and report status on new devices