# Introduction to the RAP Widget Toolkit

At the core of RAP operates the RAP Widget Toolkit (RWT), which largely implements the same API as the Standard Widget Toolkit (SWT). That is why many projects that build upon SWT (including JFace and Workbench) can run on RWT with little or no modifications. It can also be used without the workbench layer.

NOTE: “RWT“ refers to only this toolkit specifically, while “RAP” refers to the project in its entirety, including its ports of JFace, Workbench and Forms, the OSGI integration, Branding and Interaction Design API, tooling, demos and custom themes.

Among the features that RWT inherited from SWT are:

- 40+ Widgets and widget-specific events
- 10 Layout Manager
- Key and Mouse Event Handling
- Drag and Drop Support
- Graphics/Painting Support (Canvas)

New features may be added to RWT if there is a strong demand for it, and it's technically feasible. If a feature is already present SWT but not in RWT, it may often (but not always) be because it's hard or impossible to implement in RWT.

To learn the SWT basics (which are all valid for RWT), we recommend reading the documentation and snippets provided by the SWT project homepage. A full reference specific to RWT can be found here.

SWT was developed for desktop applications, but RWT is used to build web applications. For this reason, there are some features that SWT supports that RWT can not, while RWT adds some features that are tailored to the specific requirements of web application development.

- For a list of all notable additions and limitations of RWT, read Differences between the RWT and SWT.
- While key and mouse events generally work like in SWT, there are some specifics you should be aware of. The topic has its own chapter, Key and Mouse Event Handling.
- Also noteworthy is also the topic of the multi-user-environment related features, which are handled in the chapter on scopes and data stores.
- To give your application a modern, web-like look and feel, you can use the RWT Theming mechanism.