Elements of the Model

More complete details of the renderer component model are provided in the CDEJ Javadoc. The information presented here is an overview of the main elements in the model and how they relate to each other.

There are three main categories of elements in the renderer component model:

The elements of the model are defined using Java interfaces. All of the interfaces are defined in the curam.util.client.model package.

The main interfaces that define the component of the page are as follows:

Component
The Component interface defines the common properties of all elements that may be rendered to HTML by renderer plug-ins. A component can be associated with a style and rendered with a component-renderer plug-in.
Field
The Field interface extends the Component interface and adds the binding and domain properties. The binding records the connections defined in UIM for the field. The domain records the domain of the server interface property of the target connection, or that of the source connection if there is no target connection. A Field, being a Component, can be associated with a style, but it is more usual to associate a field with a domain. If both a domain and a style are defined, the domain will be used when selecting the appropriate renderer plug-in. A field may also be rendered with a component-renderer plug-in, but a view-renderer or edit-renderer will be used if the domain property is set.
Container
The Container interfaces extends the Component interface and allows the component to contain other components. The children of a container are recorded in a list; the order in which the children are added will be the iteration order of that list. A container can be associated with a style and rendered with a component-renderer plug-in.

The main interfaces that provide additional information about a component are as follows:

Binding
A Binding is used exclusively with a Field object to record its source and target path defined by the corresponding connection in UIM. A binding defines other paths, mostly related to the use of the UIM INITIAL connection element, but their use, or the use of the INITIAL element, in combination with custom widgets is not supported in the Cúram application.
ComponentParameters
A component's parameter values, usually derived from the corresponding UIM attributes, are stored in a ComponentParameters object retrieved by calling Component.getParameters. The interface extends java.util.Map<String, String>, but the returned map may not be modified. When building new components at run-time, add additional parameters as necessary.
Link
A Link represents a hyperlink to another destination. A link defines a target and an arbitrary collection of parameters. The target and the parameter values are defined using paths, not literal values. However, paths can be constructed to represent literal values if required. See Accessing Data with Paths for more details.

The main interfaces that are used to create new components are as follows:

ComponentBuilder
A ComponentBuilder is used to build basic components. This interface also defines the properties common to the other builder interfaces.
FieldBuilder
A FieldBuilder extends a ComponentBuilder to allow the source path, target path and domain to be set. Other paths may be set, but their use is not supported in the Cúram application.
ContainerBuilder
A ContainerBuilder extends a ComponentBuilder to allow components, fields or other containers, to be added to a new container.