eSWT overview

In S60 devices, eSWT (embedded Standard Widget Toolkit) has been implemented from 3rd Edition FP2 onwards as an alternative UI component toolkit to LCDUI. eSWT is a part of eRCP project in the Eclipse open source community and it is a strict subset of the desktop-oriented SWT (Standard Widget Toolkit) API combined with SWT Mobile Extensions package. The standard SWT has been developed in connection with the Eclipse Project and it has been used to build the Eclipse IDE, for example. The design philosophy and usage of eSWT are the same as in SWT.

On desktop environment, the SWT is an alternative to the AWT and Swing Java GUI toolkits. It consists of UI elements - called widgets - and methods for arranging and manipulating them. To display the widgets, the SWT implementation accesses the native UI libraries of the operating system. The eSWT API follows similar guidelines, applied to mobile environment. SWT and eSWT share the same APIs, making the mobile applications developed with eSWT portable to desktop environment.

The eSWT API is implemented on top of CLDC, which combined with MIDP is the most common JavaTM ME configuration. Common Java development tools can be used for eSWT development.

The core of eSWT consists of basic widgets that can be combined to create different user interfaces such as business forms, text editors, and image viewers. These basic widgets include items such as buttons, labels, and lists. Widgets can be organized on the screen either manually using specific positions, or with the help of layouts that keep a relative order on the screen.

For more information on how to create applications using the eSWT API, see section Using eSWT.

The key features of eSWT are as follows:

Figure 35: eSWT UI architecture

The eSWT package is divided further into three components (explained below). This model allows for flexibility to configure what components should be included on the device, based on device capability and purpose. All components are provided in a single JAR file. Mobile applications using both Core and Expanded eSWT APIs are portable to desktop.

For the full list of supported classes in the three components, see the eSWT API specification.