Abstract class for renderer type classes to extend.
- Renderer classes are used to render both the value display, as well as the editor used within the table.
- It is recommended to override the methods in the 'actions' code region, rather than those in the 'controls' region, to avoid having to manually trigger the class events.
Instance of JSONMetaTable class - can be used to call public controls on the table instance.
Metadata for column this renderer is attached to - pulled from objects in JSONMetaTable.metadata.
Value for renderer's editor to parse.
Value for renderer's display to format. value is used if displayValue isn't provided.
Public control methods to be accessed on an instance are as follows:
Initialise renderer instance - executes render, setValue, and bindDisplay methods.
Render renderer instance - used to apply classes and structure HTML.
Toggle visibility between editor and display, based on provided isVisible parameter.
If true, editor is visible, else display will be visible.
Set new renderer value - updates rendered display with formatted value and input value with parsed value.
Toggle editor visibility and give focus to editor input element. If input element supports text selection, all text will be selected.
Toggle display visibility, set BaseRenderer.initialValue to new value, and reset BaseRenderer.hasChanged
to false to ensure event handlers checking for hasChanged state don't trigger again.
This class triggers the following events:
Triggered before renderer instance initialisation.
Triggered after renderer instance initialisation.
Triggered before renderer has rendered.
Triggered after renderer has rendered.
Triggered before editor/display visibility is toggled.
{
isVisible: isVisible // Visibility: true if editor is to be visible, false if display
}Triggered after editor/display visibility is toggled.
{
isVisible: isVisible // Visibility: true if editor is visible, false if display
}Triggered before new renderer value is set.
{
value: value, // New value to be set
displayValue: displayValue // New display value to be set
}Triggered after new renderer value is set.
{
value: value, // Value that was set
displayValue: displayValue // Display value that was set
}Triggered before editor visibility is toggled and given focus.
Triggered after editor visibility is toggled and given focus.
Triggered before editor loses focus and display visibility is toggled.
Triggered after editor loses focus and display visibility is toggled.