Thinlet is an excellent lightweight GUI toolkit for Java. Typical Thinlet applications concentrate all UI-listener methods in one or a few classes. This is not a problem for simple windows. But when the number of widgets used to compose a window increases, it has a significant impact on the maintainability of the applications. ThinCLet assist you to componentize your Thinlet applications. An handler is attached with each component. The handler contains the listener methods. The approach was inspired by the event driven J2EE web frameworks as Java Server Faces and Tapestry. The combination of JSF and Facelets makes it almost trivial to create custom components. ThinCLet strives to have a similar ease of extensibility and reuse in the Thinlet world.


A ThinCLet component is a composite of Thinlet widgets or ThinCLet components. Custom properties and listener methods can be defined for a component. We can consider the root widget (= the top level of the tree of widgets which form the component) and the set of custom properties and listeners as the contract exposed by the component. The usage of a ThinCLet component in an application feels similar as the usage of a standard Thinlet widget.

ThinCLet exists of three sub-projects: XKit, XThinlet and Cize.


XKit (= eXtensible GUI-kit) forms an additional layer of indirection between the application and the toolkit in use. Hence the application can be programmed to interfaces rather than being tightly coupled to the Thinlet-class. XKit provides a basic plugin mechanism and makes it feasible for ThinCLet to transparantly decorate the Thinlet-functionality. (Decorator pattern - Gang of four)
XKit can be used seperately. XKit has not any dependency to the Thinlet-class.


XThinlet contains the glue between XKit and the Thinlet-class.


Cize stands for ComponentIZation. Cize does its job by decorating methods of Xkit. Cize exposes a component-box to the application. The component-box acts as a registry for the components. It also provides a number of utility-methods.

ThinCLet is created by Koen Roevens. Koen is a Java/J2EE contractor located in Belgium.