Skip to content

LWUIT for Series 40 architecture

Stratos Kalogirou edited this page Nov 4, 2013 · 1 revision

Folder structure

Screenshot of the overall folderstructure.

imagePlaceholder

Apps

The Apps folder contains all the example applications.

imagePlaceholder

docs

The docs folder contains all the documentation related to LWUIT. It contains the original LWUIT docs and also S40 spesific documentation. imagePlaceholder

IO

IO folder contains the IO project. This is the same as in original LWUIT. It doesn't contain any modifications.

Ports

The Ports folder contains platform spesific ports of LWUIT. These project depend on the UI project and only override UI project files that are different from the original LWUIT UI project. This folder contains the LWUIT for Series 40 project under the Nokia/S40 folder.

imagePlaceholder

release notes

This folder contains all the release notes files that are copied to the root of the release package when a new release is made using the build-release.xml script.

Series-40-binaries

The Series-40-binaries folder contains the release files that the build-release.xml script creates. **Note: ** this folder is deleted by the script when you create a new release so don't copy anything manually to this folder.

imagePlaceholder

tools

Tools folder contains the !ResourceEditor and the subprojects that the !ResourceEditor requires to compile properly.

imagePlaceholder

The !GeneratedProject subproject is used as a template by !ResourceEditor when you generate a project from a UI design. LWUIT-swingport is a desktop port of LWUIT using the Java Swing API. It's very simple and is used by the !ResourceEditor to draw the preview properly. MIDP-SE project is a stub implementation of MIDP API to desktop Java. It's used by the !ResourceEditor to help showing the preview screen properly. !PreviewMidlet is the default application shown in the previewscreen.

UI

This is the original LWUIT UI project. No modifications should be done here. All the other projects require this project since it's the base of LWUIT.

S40 implementation

imagePlaceholder
In the image you can see the packages that are inside the S40 Port. Most notable packages are com.nokia.lwuit and com.sun.lwuit.impl.s40.

The com.nokia.lwuit contains Nokia spesific helper classes. Mostly there are classes that wrap the Nokia spesific API behind another class that allows lwuit for series 40 library to be used in older devices.

The com.sun.lwuit.impl.s40 contains classes that override the LWUITImplementation. The S40Implementation class contains almost all S40 spesific changes. S40GestureImplementation extends the S40Implementation class and adds Gesture API support. S40FullTouchImplementation further extends the S40GestureImplementation with some full touch spesific APIs. LWUIT selects the correct implementation class when application starts by requesting a new implementation using the !ImplementationFactory. This way LWUIT can be run in any S40 device.

All the other packages contain classes that override the original LWUIT UI behavior ie. !TextArea class uses the Nokia UI API to provide in place editing using the !TextEditor class from the Nokia UI API.