When do you need your own controls? In general, there are two cases:
You want to combine existing controls to form complex controls with a certain dedicated task. For example, you want to define an "address area" control which consists of a certain arrangement of fields and labels which form an address. These kinds of controls are called "composing controls" in this documentation - you take what is available and group it into certain units.
You want to create new controls. For example, you need some special kind of icon with a certain behavior.
In early releases, every control consisted of the control definition
(XML file) and its corresponding tag handler (Java class). In the case of a
composing control, the handler class typically consists of a simple sequence of
calls to the inner tag handler classes. Have a look at the source of
ADDRESSROWAREAHandler
(in the directory
<your-webapplication>/cisdemos/src/com/softwareag/cis/demolibrary).
Now you do not need to provide for such a tag handler class anymore; you can
now express the inner structure directly in the XML file. We call such a
control an "XML macro". However, when you create new controls, you
still have to provide for a corresponding tag handler in order to generate your
own HTML/JavaScript code.
For short, there are two ways to build your own controls:
You define the control in the XML file and provide for a corresponding tag handler (mandatory for new controls).
You write an XML macro (recommended for composing controls).
The Control Editor supports both ways.