Capabilities

Each capability is specified by an enumerated list comprised of neither, either, or both of the values [component, form].

  • component flag: The presence of this flag indicates that the component will provide some level of functionality with regards to that capability, so it should be provided with the necessary information and notified if the information related to that capability is updated.
  • form flag: The presences of this flag indicates that the component expects the form to carry out its normal handling of the capability, even if the component flag is also specified for the capability.

The table Flagging and Outcomes provides specific detail for each combination of flags for each of the capabilities.

Flagging and Outcomes

Property Description Form Flag Component Flag Outcome
Disabled The form will not have enough information to know how to disable a widget within the custom control. If a Control Type is to support the setting of a disabled state, then it will have to handle the update of this property at runtime.
true
true
This is the typical case. Here, the form applies or removes the "disabled" CSS class at the control level, and requests the ControlWrapper to refresh its rendering of the enablement state. The form notifies the ControlWrapper that the enablement state has changed by calling its refresh() method with the updates argument containing the feature name "enabled".
true
false
The form will apply or remove the "disabled" CSS class at the control level but does not notify the ControlWrapper of enablement changes.
false (default) true (default) No CSS class is applied at the control level but the form notifies the ControlWrapper of enablement changes.
false
false
The control does not handle the disabled state.
Focus For this capability, the form value is always set to false
true
true
N/A
true
false
N/A
false (default)
true (default)
ControlWrapper supports a setFocus() method to allow script to change the focus to the control programmatically. If the control type implicitly or explicitly supports rendering within a grid pane, then the focus capability should be set to "component". Otherwise keyboard navigation of the grid pane will skip over cells that contain instances of this control type.
false
false
ControlWrapper does not provide setFocus() method.
Hint This capability controls how the Control Type hint is handled. This is the built-in control hint that is provided by the forms framework.
true
true
The form renders the hint as normal, and requests the ControlWrapper to refresh its custom hint rendering. The form notifies the ControlWrapper that the hint state has changed by calling its refresh() method with the updates argument containing the feature name "hint".
true (default)
false (default)
This is the typical case. The form renders the hint as it does for built-in controls but does not notify the ControlWrapper of hint changes.
false 
true 
The hint node is not rendered by the form. It is completely up to the ControlWrapper to handle the rendering of the hint.
false
false
The hint node is not rendered for the Control Type.
Invalid This Capability controls how the rendering of "Invalid" feedback is handled. The forms framework continues to execute validations on controls that provide them.
true
true
The form applies or removes the "invalid" CSS class at the control level, and requests the ControlWrapper to refresh its rendering of the validity state. This may be needed by controls that aim to provide accessibility. For example, by updating the corresponding ARIA attributes on the control widgets. The form notifies the ControlWrapper that the validation state has changed by calling its refresh() method with the updates argument containing the feature name "validation".
true (default) false (default) The form applies or removes the "invalid" CSS class at the control level, but does not notify the ControlWrapper of validity changes.
false true No CSS class is applied at the control level but the form does notify the ControlWrapper of the change in validity state.
false
false
The control does not handle the display of a validation error decoration.
Invisible This Capability handles how the visibility setting of the Control Type is handled.
true
true
The form hides or shows the whole control and also notifies the ControlWrapper that the visibility state has changed by using the refresh() method with the updates argument containing the feature name "visible".
true (default) false (default) The form takes care of hiding and showing the control when the visibility state has changed but does not notify the ControlWrapper of visibility changes.
false true The form merely notifies the ControlWrapper of changes in visibility.
false
false
The control is always shown. Changes to the visibility of the control are ignored. However, if the containing pane is made invisible, then the control will be made invisible.
Label This Capability controls how the control label is handled. This is the built-in control label that is provided by the forms framework. When a custom control is rendered in a grid pane, the column label is always provided by the form.
true
true
The form renders the label as normal, and also requests the ControlWrapper to refresh its rendering of the label. The form notifies the ControlWrapper that the label value has changed by calling its refresh() method with the updates argument containing the feature name "label".
true (default) false (default) The form renders the label as it does for built-in controls but does not notify the ControlWrapper of label changes.
false true The label is not rendered by the form and the form notifies the ControlWrapper of label changes. It is completely up to the ControlWrapper to handle the rendering of the label. In vertical panes, this setting will result in control being rendered completely to the left, aligned with the labels of other controls that rely on the form to render the label.
false
false
The label is not rendered for the control.
Read Only The form does not have enough information to know how to set a widget within the custom control as read only. If a Control Type supports the setting of a read only state, then this property is handled at runtime.
true
true
The form applies or removes the "read-only" CSS class at the control level, and requests the ControlWrapper to refresh its rendering of the read-only state. The form notifies the ControlWrapper that the read-only state has changed by calling its refresh() method with the updates argument containing the feature name "readOnly".
true false The form applies or removes the "read-only" CSS class at the control level, but does not notify the ControlWrapper of changes to the read-only setting.
false (default) true (default) The CSS class is not applied at the control level, but the form notifies the ControlWrapper of the change of read-only state.
false
false
The control does not handle the read-only state.
Required This Capability refers to the rendering of "Required" feedback. The forms framework continues to enforce that values are indeed provided when marked as required.
true
true
The form applies or removes the "required" CSS class at the control level, and also requests the ControlWrapper to refresh its rendering of the required state. This may be needed by controls that aim to provide accessibility. For example, by updating the corresponding ARIA attributes on the control widgets. The form notifies the ControlWrapper that the required state has changed by calling its refresh() method with the updates argument containing the feature name "required".
true (default) false (default) The form applies or removes the "required" CSS class at the control level, but does not notify the ControlWrapper of changes to the required setting.
false
true 
CSS class is not applied at the control level, but the form notifies the ControlWrapper of the change in required state.
false
false
The control does not handle the display of a "required" decoration.
Tab Index For this capability, the form flag value is always set to false.
true
true
N/A
true
false
N/A
false
true 
ControlWrapper will use the Tab Index property from the control in the generated markup for the control.
false (default)
false (default)
The control Tab Index property is not used by the ControlWrapper.