LWUIT for Series 40 brings a number of improvements: several Series 40 platform features have been integrated, the style and functionality of UI components have been changed to match the Series 40 look and feel, and the performance has been optimised (keeping in mind also the cost-optimised phones). Also Resource Editor tool has been updated with Series 40 changes.
A common practice has been that the new features would always provide a fallback mechanism. Even if a feature would not be available in the device, the application would still run gracefully. The wrappers are transparent to the application.
Nokia TextEditor
The TextArea and TextField have been modified to support the native Nokia TextEditor component for in-place editing (and Series 40 virtual keyboard support in devices with no physical keyboard). In older devices where TextEditor is not available, there is a fallback mechanism to use LCDUI TextBox or LWUIT's own in-place editing, respectively. Read more in chapter Text input components.
Virtual keyboard
In Series 40 full touch devices, the Series 40 virtual keyboard is used (comes as a part of the Nokia TextEditor integration). See topic TextArea for more details.
The original LWUIT virtual keyboard is not used.
Gestures
Touch gestures helper class has been created to use Series 40 Gestures framework in touch UI devices.
Category bar
In Series 40 full touch, applications can use Series 40 Category bar for parallel views (LWUIT Tabs are still supported).
IconCommand support
LWUIT commands in Action button 1 and Category bar can use icons in Series 40 full touch.
Orientation support
LWUIT applications can easily be made to follow the device orientation or to use a fixed portrait or landscape orientation.
API for full screen mode
Especially useful in Series 40 full touch if an application needs to be run in full screen. Optionally the Status bar can be shown.
Automatic localisation
By defining a locale resource file, the LWUIT application language can be made to follow the device language automatically. See topic Localisation (L10n) for more details.
Theming
Default themes for Series 40 full touch, touch and type, and non-touch devices created.
An API created to define how custom themes will be shown on different Series 40 UI styles.
Scaling of the components with default style disabled for improved performance.
Optimised theme memory usage to consume considerably less memory by replacing EncodedImage usage with Image class.
List
The LWUIT List component has been modified to work correctly with padding.
Nokia ListCellRenderer has been provided as a template for better performance.
Button
The original LWUIT removes pressedStyle from the Button when drag is initiated. However, Series 40 touch phones usually get a couple of drag events immediately after the pressed event, so Button has a 10 pixel threshold to prevent accidental dragging from changing the style.
Form
Form has been modified to check if drag events happen inside the MenuBar. This prevents MenuItems from getting stuck in the pressed state.
Default Layout has been changed from FlowLayout to BoxLayout.Y_AXIS.
Chrome and menubar changes
Softkey ordering and default command behaviour have been changed to match Series 40 style in touch and type and non-touch.
Full touch applications are run in normal canvas by default: LWUIT MenuBar is not displayed, but commands are mapped to native Options menu and buttons using native commands.
Slider
Fixed to work with any values.
Scrollbar
Reimplemented and restyled for full touch, including a timeout.
HTMLComponent
Several fixes have been made to memory handling, InputStream handling, and image scaling. Cookie handling has been improved in the IO MIDP package in order to handle OAuth2.0 authentication correctly (tested with Foursquare).
SDK selection dialog added when generating a new NetBeans project.
Series 40 themes added.
For a detailed list of all the new classes and methods in LWUIT for Series 40, see New classes and methods.