Custom Screen and Custom Control Provider plugins

Custom Screen and Custom Control Provider plugins

The following information is intended as a guide for plugin authors wishing to develop custom screen and control providers to extend the natively implemented screen and control objects with extra functionality, new ways of rendering, extra validation, and so on.

The first thing to note is that the actual plugin objects are the custom screen and control providers, not the custom screens and controls themselves. A Web Determinations session (represented by the SessionContext object) may have at most one of each provider. If multiple implementations of one or both of these providers are found, one will be non-deterministically (from the perspective of a plugin developer) chosen. Every time a control or screen is required, Web Determinations will query the provider registered (if one exists) to retrieve a custom screen or control for the current InterviewScreen or ControlInstance object in the current session context. It is up to the provider implementation to provide concrete instances of CustomScreen and CustomControl objects (or concrete implementations of any subinterfaces, such as CustomInputControl as appropriate) if the provider determines that it can. Otherwise the provider is required to return a null object.

The CustomScreen and CustomControl implementations served by the providers are required to be packaged up and deployed in a plugin archive in the same way that all other plugins are deployed. These dependencies don't necessarily have to be deployed into the very same archive as the providers that reference them, but they must be located inside one of the plugin archives loaded.

Custom screen and control providers are PlatformSessionPlugin implementations, meaning that they belong on a particular platform session (SessionContext).

Custom screen provider

To provide a custom screen provider implementation, it is necessary to implement the CustomScreenProvider interface. The implementation of this interface consists of:

Custom screens

Custom screens are defined by implementing the CustomScreen interface. The implementation of this interface consists of:

More information

For more information on creating a custom screen, go to:

Custom control provider

To provide a custom control provider implementation, it is necessary to implement the CustomControlProvider interface. The implementation of this interface consists of:

Custom controls

Custom controls are defined by implementing the CustomControl interface. This is an empty marker interface that extends from the base control interface, which defines a variety of methods that controls have to implement. There is also a CustomInputControl interface to be implemented if your custom control is intended to collect user input data that maps to at least one rulebase attribute. Ensure that your implementation matches the following requirements:

More Information

For information on creating a custom control and for a walkthrough example, go to:

Create a Custom Control

Custom Control - BenefitCode walkthrough example