Web Widget Toolkit (WTK)

Server-side components for easily creating web-based user interfaces with complex navigation paths.


The Web Widget Tookit enables an application programmer to easily create complex web-based user interfaces. The API resembles that of Swing or SWT for rich client applications. The WTK API is also similar to the Google Web Toolkit (GWT) for web applications, but WTK widgets have a server-side model, which enables direct linkage with back-end application logic and removes the need for programming explicit client-server communication. In contrast to common frameworks for web applications such as Java Server Pages, Java Server Faces, or Appache Struts, a WTK application can provide complex navigation patterns by simply using e.g. a tab bar widget without the need for explicitly coding and configuring each single navigation action.

For each active session, a WTK application creates a tree of nested user interface components (widgets). From that component tree, the framework automatically renders all page views displayed to the user. Input data from HTML form elements is automatically parsed and temporarily stored by the widget that created the corresponding form element. Like in a regular rich client application, the application is notified about changes to its component's models by registering event listeners at the corresponding components. In contrast to e.g. Java Server Faces, a WTK application is not required to provide a custom GUI-centric model (JavaBean) for storing form input, because each widget has its own model that temporarily stores the input until the application decides to fetch and further process it.

Besides widgets for all basic HTML form elements such as text fields, selection boxes, buttons and file uploads, WTK provides a rich set of widgets for complex navigation patterns such as tab bars, dialogs and wizards. Data display is achieved through widgets for lists, tables, trees and images.

Related work

Thanks to

SourceForge.net Logo
for hosting the project pages and source archive