This chapter provides an overview and a detailed description of all
non-layout components in IT Mill Toolkit. Many features of the components
are designed for various use cases and design patterns, which are
mentioned.
As most components are used inside a layout, you should familiarize
yourself with the layout components in Chapter 5, Managing Layout.
IT Mill Toolkit provides a comprehensive set of user interface
components and allows you to define custom components. Figure 4.1, “UI Component Inheritance Diagram” illustrates the inheritance hierarchy
of the UI component classes and interfaces.
Interfaces are displayed in yellow, abstract classes in red, and
regular classes in blue. At the bottom of the interface hierarchy, we
have the Component interface. At the bottom of the
class hierarchy, we have the AbstractComponent
class. It is inherited by two other abstract classes:
AbstractField, inherited further by field
components and AbstractComponentContainer,
inherited by various container components. Some miscellaneous
components, such as labels and links, inherit this base class
directly.
The layout of the various components in a window is controlled,
logically, by layout components, just like in conventional Java UI
toolkits for desktop applications. In addition, with the CustomLayout
component, you can write a custom layout as an XHTML template that
includes the locations of any contained components. Looking at the
inheritance diagram, we can see that layout components inherit the
AbstractComponentContainer and the
Layout interface. Layout components are
described in detail in Chapter 5, Managing Layout.
Looking from the perspective of an object hierarchy, we would
have a Window object, which contains a hierachy of
layout components, which again contain other layout components, field
components, and other visible components.
You can browse the available UI components in the Feature
Browser of the IT Mill Toolkit Demo
Application. The Feature Browser shows a description, list of
properties, JavaDoc documentation, and a code sample for each of the components. On
the right side of the screen, you can find the Properties panel, which you can use
to edit the properties of the displayed component.