Usages
- Extend types of fields available in Form Builder.
- A useable Form Field Element plugin must extends org.joget.apps.form.model.Element abstract class and implements org.joget.apps.form.model.FormBuilderPaletteElement interface.
Abstract Class
org.joget.apps.form.model.Element
- Under wflow-core module
- Extended org.joget.plugin.base.ExtDefaultPlugin. Please refer to Plugin Base Abstract Class and Interface.
- Implemented org.joget.plugin.property.model.PropertyEditable. Please refer to Plugin Base Abstract Class and Interface.
- A base abstract class to develop a Form Field Element plugin.
- All forms, containers and form fields must extend this class.
Method Detail
Abstract Methods
renderTemplate
Overridable Methods
formatData
formatDataForValidation
public org.joget.apps.form.model.FormData formatDataForValidation(org.joget.apps.form.model.FormData formData)
Method for override to perform format data in request parameter before execute validation
selfValidate
public java.lang.Boolean selfValidate(org.joget.apps.form.model.FormData formData)
Method for override to perform specify validation for this field.
Error message can display with following code:
String id = FormUtil.getElementParameterName(this);
formData.addFormError(id, "Error!!");
render
renderErrorTemplate
renderReadOnlyTemplate
continueValidation
getDynamicFieldNames
hasError
isAuthorize
Utility Methods
getChildren
public java.util.Collection<org.joget.apps.form.model.Element> getChildren()
getChildren
public void setChildren(java.util.Collection<org.joget.apps.form.model.Element> children)
setChildren
public void setChildren(java.util.Collection<org.joget.apps.form.model.Element> children)
getParent
public org.joget.apps.form.model.Element getParent()
Returns the immediate parent for this element.
setParent
public void setParent(org.joget.apps.form.model.Element parent)
Sets the immediate parent for this element.
getPrimaryKeyValue
public java.lang.String getPrimaryKeyValue(org.joget.apps.form.model.FormData formData)
Returns the primary key value for the current element. Defaults to the primary key value of the form.
getLoadBinder
public org.joget.apps.form.model.FormLoadBinder getLoadBinder()
Get load binder
setLoadBinder
public void setLoadBinder(org.joget.apps.form.model.FormLoadBinder loadBinder)
Set load binder
getOptionsBinder
public org.joget.apps.form.model.FormLoadBinder getOptionsBinder()
setOptionsBinder
public void setOptionsBinder(org.joget.apps.form.model.FormLoadBinder optionsBinder)
getStoreBinder
public org.joget.apps.form.model.FormStoreBinder getStoreBinder()
setStoreBinder
public void setStoreBinder(org.joget.apps.form.model.FormStoreBinder storeBinder)
getValidator
public org.joget.apps.form.model.Validator getValidator()
setValidator
public void setValidator(org.joget.apps.form.model.Validator validator)
getCustomParameterName
public java.lang.String getCustomParameterName()
If non-null, this is to be used as the HTML input name for the element.
setCustomParameterName
public void setCustomParameterName(java.lang.String customParameterName)
Sets a custom parameter name for the HTML input name of the element.
getDefaultPropertyValues
public java.lang.String getDefaultPropertyValues()
Set default Plugin Properties Options value to a new added Field in Form Builder.
org.joget.apps.form.model.AbstractSubForm
- Under wflow-core module
- Extended org.joget.apps.form.model.Element.
- Implemented org.joget.apps.form.model.FormContainer.
- Use to develop a Form Field element which embed a Form as its child.
Field Detail
Constants
PROPERTY_PARENT_SUBFORM_ID
public static final String PROPERTY_PARENT_SUBFORM_ID = "parentSubFormId";
Property key that use to retrieve the field id in parent form used to store subform primary key as reference key.
PROPERTY_SUBFORM_PARENT_ID
public static final String PROPERTY_SUBFORM_PARENT_ID = "subFormParentId";
Property key that use to retrieve the field id in subform used to store parent form primary key as foreign key.
Method Detail
Overridable Methods
loadSubForm
protected org.joget.apps.form.model.Form loadSubForm(org.joget.apps.form.model.FormData parentFormData) throws org.springframework.beans.BeansException
Retrieve a Form object as subform. This method will use either value from property key "formDefId" or "json" to construct the Form object.
updateElementParameterNames
protected void updateElementParameterNames(org.joget.apps.form.model.Element element, java.lang.String prefix)
Update all the parameter name of field elements in subform with a prefix
populateParentWithSubFormKey
protected void populateParentWithSubFormKey(org.joget.apps.form.model.FormData formData)
Update parent form field value with primary key of subform based on property key of this constant PROPERTY_PARENT_SUBFORM_ID.
populateSubFormWithParentKey
protected void populateSubFormWithParentKey(org.joget.apps.form.model.FormData formData)
Update subform field value with primary key of parent form based on property key of this constant PROPERTY_SUBFORM_PARENT_ID.
checkForRecursiveForm
protected boolean checkForRecursiveForm(org.joget.apps.form.model.Element e, java.lang.String id)
Check the subform is not exist in the parent elements tree.
getSubForm
protected org.joget.apps.form.model.Form getSubForm(org.joget.apps.form.model.FormData formData)
Get From object from its children.
Interface
org.joget.apps.form.model.FormBuilderPaletteElement
- Under wflow-core module
- Extends interface org.joget.apps.form.model.FormBuilderEditable.
- Interface that describes meta information used for adding an element into the Form Builder palette.
Method Detail
Interface Methods
getFormBuilderCategory
public java.lang.String getFormBuilderCategory()
Category for the element in the Form Builder palette
getFormBuilderPosition
public int getFormBuilderPosition()
Ordering position. Palette to display based on the position value in ascending order for a category.
getFormBuilderIcon
public java.lang.String getFormBuilderIcon()
Path to icon for the element in the Form Builder palette. This path is relative to the context path. Return NULL to use the default icon.
getDefaultPropertyValues
public jva.lang.String getDefaultPropertyValues()
Set default Plugin Properties Options value to a new added Field in Form Builder. This method is implemented in org.joget.apps.form.model.Element.
getFormBuilderTemplate
public java.lang.String getFormBuilderTemplate()
HTML template used for display a new added field in the Form Builder
org.joget.apps.form.model.FormContainer
Under wflow-core module
This interface indicate that a Form Field Element is a container and should not create a form data column in database.
- No interface method is available in this interface
org.joget.apps.form.model.FormOptionsElement
Under wflow-core module
This interface indicate that a Form Field Element is a multi options field such as Select Box, Check Box & Radio Button. It can use Form Options Binder to populate its options.
No interface method is available in this interface
org.joget.apps.form.model.FormAjaxOptionsElement
Under wflow-core module
- Extends interface org.joget.apps.form.model.FormOptionsElement.
This interface indicate that a Form Field Element is a multi options field such as Select Box, Check Box & Radio Button. It can use Form Options Binder which implemented org.joget.apps.form.model.FormAjaxOptionsBinder to populate its options using AJAX.
Method Detail
Interface Methods
getControlElement
public org.joget.apps.form.model.Element getControlElement(org.joget.apps.form.model.FormData formData)
Get dependent field element which use to control the options of this field
org.joget.apps.form.model.FormReferenceDataRetriever
Under wflow-core module
- Indicate that this field hold the primary keys for other form data records. The reference records can be retrieve using its interface method.
- This interface is used by org.joget.apps.form.service.FormUtil.loadFormData() and org.joget.apps.form.service.FormUtil.loadFormDataJson() method to fetch submitted form data values including data from subforms, and reference fields.
Method Detail
Interface Methods
loadFormRows
public org.joget.apps.form.model.FormRowSet loadFormRows(String[] primaryKeyValues, org.joget.apps.form.model.FormData formData)
Retrieve form data rows for an array of specified primary key values.
Plugin Proeprties Options
Mandatory Property
Predefined Property
Tutorials
- Not available right now
Related Community Plugins
- Not available right now