Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
Table of Contents |
---|
...
...
...
...
...
public abstract java.lang.String renderTemplate(org.joget.apps.form.model.FormData formData, javaformData,java.util.Map dataModel)
HTML template for front-end UI.
前端用户界面的HTML模板。
参数:Parameters:
public org.joget.apps.form.model.FormRowSet formatData(org.joget.apps.form.model.FormData formData)
Method that retrieves loaded or submitted form data, and formats it for a store binder. The formatted data is to be stored and returned in a FormRowSet.
检索加载或提交的表单数据并为商店资料夹设置格式的方法。格式化的数据将被存储并返回到FormRowSet中。
public org.joget.apps.form.modelpublic 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在执行验证之前,用于在请求参数中执行格式数据的覆盖方法
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, id,"Error !!");
public java.lang.String render(org.joget.apps.form.model.FormData formData, javaformData,java.lang.Boolean includeMetaData)
Render HTML template for UI, with option for form builder design mode. This method will call abstract method renderTemplate for rendering.
Parameters:
呈现用于UI的HTML模板,并具有表单构建器设计模式的选项。这个方法将调用抽象方法 renderTemplate 进行渲染。
参数:
public java.lang.String renderErrorTemplate(org.joget.apps.form.model.FormData formData, java.formData,java.util.Map dataModel)
HTML template with errors for front-end UI. This method will call abstract method renderTemplate for rendering.
Parameters:
包含前端用户界面错误的HTML模板。这个方法将调用抽象方法 renderTemplate 进行渲染。
参数:
public java.lang.String renderReadOnlyTemplate(org.joget.apps.form.model.FormData formData, javaformData,java.util.Map dataModel)
Read-only HTML template for front-end UI (Not used at the moment)
Parameters:
用于前端UI的只读HTML模板(目前未使用)
参数:
public boolean continueValidation(org.joget.apps.form.model.FormData formData)
Flag to indicate whether or not continue validating descendent elements.标记以指示是否继续验证后代元素。
public Collection Collection<java<java.lang.String> getDynamicFieldNames()
Used to create multiple form data column in database by returning extra column names.用于通过返回额外的列名称在数据库中创建多个表单数据列。
public java.lang.Boolean hasError(org.joget.apps.form.model.FormData formData)
Flag to indicate whether or not this field has fail the validation process标记以指示该字段是否通过了验证过程
public java.lang.Boolean isAuthorize(org.joget.apps.form.model.FormData formData)
Flag to indicate whether or not the current logged in user is authorized to view this field in the form.
It used property key "permission" to retrieve Form Permission plugin.
...
标记以指示当前登录用户是否有权在表单中查看该字段。
它使用属性键"权限"来检索表单权限插件。
public java.util.Collection<orgCollection <org.joget.apps.form.model.Element> getChildren()
Retrieves all children form field element under this field检索此字段下的所有子表单字段元素
public void setChildren(java.util.Collection<orgCollection <org.joget.apps.form.model.Element> children)
Retrieves all children form field element under this field检索此字段下的所有子表单字段元素
public void setChildren(java.util.Collection<orgCollection <org.joget.apps.form.model.Element> children)
Sets form fields as children of this field将表单字段设置为此字段的子项
public org.joget.apps.form.model.Element getParent()
Returns the immediate parent for this element.返回此元素的直接父项。
public void setParent(org.joget.apps.form.model.Element parent)
Sets the immediate parent for this element.设置此元素的直接父级。
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.返回当前元素的主键值。默认为表单的主键值。
public org.joget.apps.form.model.FormLoadBinder getLoadBinder()
Get load binder获取加载绑定器
public void setLoadBinder(org.joget.apps.form.model.FormLoadBinder loadBinder)
Set load binder设置装订夹
public org.joget.apps.form.model.FormLoadBinder getOptionsBinder()
获取选项活页夹
Gets an Options Binder
public void setOptionsBinder(org.joget.apps.form.model.FormLoadBinder optionsBinder)
Sets an Options Binder设置选项活页夹
public org.joget.apps.form.model.FormStoreBinder getStoreBinder()
Gets a Store Binder获取商店活页夹
public void setStoreBinder(org.joget.apps.form.model.FormStoreBinder storeBinder)
Sets a Store Binder设置商店活页夹
public org.joget.apps.form.model.Validator getValidator()
Gets a validator获取验证器
public void setValidator(org.joget.apps.form.model.Validator validator)
Sets a validator设置一个验证器
public java.lang.String getCustomParameterName()
If non-null, this is to be used as the HTML input name for the element.如果非null,则将其用作元素的HTML输入名称。
public void setCustomParameterName(java.lang.String customParameterName)
Sets a custom parameter name for the HTML input name of the element.为元素的HTML输入名称设置自定义参数名称。
public java.lang.String getDefaultPropertyValues()
Set default Plugin Properties Options value to a new added Field in Form Builder.将默认插件属性选项值设置为在窗体生成器中添加一个新的字段。
...
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. 用于检索父窗体中的字段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.
...
用于检索子窗体中的字段ID的属性键,用于将父窗体主键存储为外键。
protected org受保护的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 以表格形式检索Form对象。此方法将使用属性键"formDefId" or 或"json" to construct the Form object.中的任一值 来构造Form对象。
protected void updateElementParameterNames(org.joget.apps.form.model.Element element, javaelement,java.lang.String prefix)
Update all the parameter name of field elements in subform with a prefix使用前缀更新子表单中字段元素的所有参数名称
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根据此常数PROPERTY_PARENT_SUBFORM_ID.ID的属性键,使用子窗体的主键更新父窗体字段值 。
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.ID的属性键,使用父表单的主键更新子表单字段值 。
protected boolean checkForRecursiveForm(org.joget.apps.form.model.Element e, javae,java.lang.String id)
Check the subform is not exist in the parent elements tree.检查子表单不存在于父元素树中。
protected org受保护的org.joget.apps.form.model.Form getSubForm(org.joget.apps.form.model.FormData formData)
Get From object from its children.
...
从其子对象获取对象。
...
public java.lang.String getFormBuilderCategory()
Category for the element in the Form Builder palette“表单构建器”调板中元素的类别
public int getFormBuilderPosition()
Ordering position. Palette to display based on the position value in ascending order for a category.
订购位置。调色板根据位置值以类别的升序显示。
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.“窗体构建器”调板中元素的图标路径。这条路径是相对于上下文路径的。返回NULL以使用默认图标。
public jva.lang.String getDefaultPropertyValues()
Set default Plugin Properties Options value to a new added Field in Form Builder. This method is implemented in Form Field Element Plugin.将默认插件属性选项值设置为在窗体生成器中添加一个新的字段。这个方法在org.joget.apps.form.model.Element中实现。
public java.lang.String getFormBuilderTemplate()
HTML template used for display a new added field in the Form Builder用于在Form Builder中显示新添加字段的HTML模板
Under wflow在wflow-core module
This interface indicate that a Form Field Element is a container and should not create a form data column in database.
core模块下
这个接口表明一个表单域元素是一个容器,不应该在数据库中创建一个表单数据列。
Under wflow在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.
core模块下
此界面表明,表单域元素是一个多选项字段,如选择框,复选框和单选按钮。它可以使用表单选项 活页夹来填充它的选项。
在这个界面中没有可用的接口方法No interface method is available in this interface
Under wflow在wflow-core module
core模块下
此界面表明,表单域元素是一个多选项字段,如选择框,复选框和单选按钮。它可以使用Form Options Binder 来实现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.
...
来使用AJAX填充它的选项。
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获取用于控制此字段的选项的相关字段元素
Under wflow在wflow-core module
core模块下
...
public org.joget.apps.form.model.FormRowSet loadFormRows(String [] primaryKeyValues, orgprimaryKeyValues,org.joget.apps.form.model.FormData formData)
Retrieve form data rows for an array of specified primary key values.
检索指定主键值数组的表单数据行。
Code Block | ||
---|---|---|
| ||
{ name:'loadBinder', label:'@@form.subform.loadBinder@@', type:'elementselect', options_ajax:'[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormLoadElementBinder', url:'[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions', value:'org.joget.apps.form.lib.WorkflowFormBinder', required:'True' } |
Code Block |
---|
{ name : 'optionsBinder', label name : 'id', label : '@@form.textfield.id@@', type : 'textfield', required : 'True', regex_validation : '^[a-zA-Z0-9_]+$', validation_message : '@@form.textfieldcheckbox.invalidId@@chooseOptionsBinder@@', type } |
Code Block |
---|
{ name:'loadBinder', label:'@@form.subform.loadBinder@@', type:'elementselect', options_ajax:: 'elementselect', options_ajax : '[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormLoadElementBinder', url:'[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions', value:'org.joget.apps.form.lib.WorkflowFormBinder', required:'True' } |
The value of this property will auto convert into Form Options Binder Plugin and the plugin can be retrieved by Form Field Element Plugin method.
Code Block |
---|
{
name : 'optionsBinder',
label : '@@form.checkbox.chooseOptionsBinder@@',
type : 'elementselect',
options_ajax : '[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormLoadOptionsBinder',
url : '[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions'
} |
Code Block |
---|
{
name:'permission',
label:'@@form.form.permission@@',
type:'elementselect',
options_ajax:'[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormPermission',
url:'[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions'
} |
apps.form.model.FormLoadOptionsBinder',
url : '[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions'
} |
该属性的值将自动转换成表单选项活页夹插件,该插件可以通过getOptionsBinder 方法检索 。
Code Block |
---|
{ 名称:'optionsBinder', 标签:'@@ form.checkbox.chooseOptionsBinder @@', 键入:'elementselect', options_ajax:'[CONTEXT_PATH] |
Code Block |
{ name:'storeBinder', label:'@@form.form.storeBinder@@', type:'elementselect', options_ajax:'[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormStoreElementBinderFormLoadOptionsBinder', url:, url:'[CONTEXT_PATH] / web / property / json [APP_PATH] / getPropertyOptions' } |
Code Block |
---|
{
name : 'readonly',
label : '@@form.checkbox.readonly@@',
type : 'checkbox',
value : 'false',
options : [{
value : 'true',
label : ''
}]
} |
Code Block |
---|
{
name:'permission',
label:'@@form.form.permission@@',
type:'elementselect',
options_ajax:'[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormPermission',
url:'[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions'
} |
Code Block |
---|
{
name:'storeBinder',
label:'@@form.form.storeBinder@@',
type:'elementselect',
options_ajax:'[CONTEXT_PATH]/web/property/json/getElements?classname=org.joget.apps.form.model.FormStoreElementBinder',
url:'[CONTEXT_PATH]/web/property/json[APP_PATH]/getPropertyOptions'
} |
Code Block |
---|
{
name : 'readonly',
label : '@@form.checkbox.readonly@@',
type : 'checkbox',
value : 'false',
options : [{
value : 'true',
label : ''
}]
} |
Code Block |
---|
{
|
Code Block |
{ name : 'readonlyLabel', label : '@@form.checkbox.readonlyLabel@@', type : 'checkbox', value : 'false', options : [{ value : 'true', value : 'true', label : '' }] } |
Code Block |
---|
{
|
Code Block |
{ name : 'workflowVariable', label : '@@form.checkbox.workflowVariable@@', type : 'textfield' } |
Code Block |
---|
{ name : 'value', description : '@@form.checkbox.value.desc@@', label : 'Default @@form.checkbox.value@@', type : 'textfield' } |
以下是文本字段元素的示例表单字段模板 。它使用FreeMaker语法构造。这个模板将被renderTemplate方法使用并返回。 Following is a sample Form Field Template of a 文本字段 element. It is constructed using FreeMaker syntax. This template will be used and returned by Form Field Element Plugin method.
Code Block | ||
---|---|---|
| ||
@Override public String renderTemplate(FormData formData, Map dataModel) { String templateName = "textField.ftl"; // set value String value = FormUtil.getElementPropertyValue(this, formData); dataModel.put("value", value); String html = FormUtil.generateElementHtml(this, formData, templateName, dataModel); return html; } |
Code Block | ||
---|---|---|
| ||
<div class="form-cell" ${elementMetaData!}> <label class="label"> ${element.properties.label} <span class="form-cell-validator">${decoration}</span> <#if error??> <span class="form-error-message">${error}</span> </#if> </label> <#if (element.properties.readonly! == 'true' && element.properties.readonlyLabel! == 'true') > <div class="form-cell-value"><span>${value!?html}</span></div> <input id="${elementParamName!}" name="${elementParamName!}" type="hidden" value="${value!?html}" /> <#else> <input id="${elementParamName!}" name="${elementParamName!}" type="text" size="${element.properties.size!}" value="${value!?html}" maxlength="${element.properties.maxlength!}" <#if error??>class="form-error-cell"</#if> <#if element.properties.readonly! == 'true'>readonly</#if> /> </#if> </div> |
$ {elementMetaData!} need to put in the elementMetaData!}需要放在“.form-cell”div中。它由Form Builder使用。".form-cell" div. It is used by Form Builder.