Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
public abstract java.lang.String renderTemplate(org.joget.apps.form.model.FormData formData,java.util.Map dataModel)
前端用户界面的HTML模板。
参数:
public org.joget.apps.form.model.FormRowSet formatData(org.joget.apps.form.model.FormData formData)
检索加载或提交的表单数据并为商店资料夹设置格式的方法。格式化的数据将被存储并返回到FormRowSet中。
public org.joget.apps.form.model.FormData formatDataForValidation(org.joget.apps.form.model.FormData formData)
在执行验证之前,用于在请求参数中执行格式数据的覆盖方法
public java.lang.Boolean selfValidate(org.joget.apps.form.model.FormData formData)
用于覆盖的方法为该字段执行指定验证。
错误消息可以显示以下代码:
String id = FormUtil.getElementParameterName(this);
formData.addFormError(id,"Error !!");
public java.lang.String render(org.joget.apps.form.model.FormData formData,java.lang.Boolean includeMetaData)
呈现用于UI的HTML模板,并具有表单构建器设计模式的选项。这个方法将调用抽象方法 renderTemplate 进行渲染。
参数:
public java.lang.String renderErrorTemplate(org.joget.apps.form.model.FormData formData,java.util.Map dataModel)
包含前端用户界面错误的HTML模板。这个方法将调用抽象方法 renderTemplate 进行渲染。
参数:
public java.lang.String renderReadOnlyTemplate(org.joget.apps.form.model.FormData formData,java.util.Map dataModel)
用于前端UI的只读HTML模板(目前未使用)
参数:
public boolean continueValidation(org.joget.apps.form.model.FormData formData)
标记以指示是否继续验证后代元素。
public Collection <java.lang.String> getDynamicFieldNames()
用于通过返回额外的列名称在数据库中创建多个表单数据列。
public java.lang.Boolean hasError(org.joget.apps.form.model.FormData formData)
标记以指示该字段是否通过了验证过程
public java.lang.Boolean isAuthorize(org.joget.apps.form.model.FormData formData)
标记以指示当前登录用户是否有权在表单中查看该字段。
它使用属性键"权限"来检索表单权限插件。
public java.util.Collection <org.joget.apps.form.model.Element> getChildren()
检索此字段下的所有子表单字段元素
public void setChildren(java.util.Collection <org.joget.apps.form.model.Element> children)
检索此字段下的所有子表单字段元素
public void setChildren(java.util.Collection <org.joget.apps.form.model.Element> children)
将表单字段设置为此字段的子项
public org.joget.apps.form.model.Element getParent()
返回此元素的直接父项。
public void setParent(org.joget.apps.form.model.Element parent)
设置此元素的直接父级。
public java.lang.String getPrimaryKeyValue(org.joget.apps.form.model.FormData formData)
返回当前元素的主键值。默认为表单的主键值。
public org.joget.apps.form.model.FormLoadBinder getLoadBinder()
获取加载绑定器
public void setLoadBinder(org.joget.apps.form.model.FormLoadBinder loadBinder)
设置装订夹
public org.joget.apps.form.model.FormLoadBinder getOptionsBinder()
获取选项活页夹
public void setOptionsBinder(org.joget.apps.form.model.FormLoadBinder optionsBinder)
设置选项活页夹
public org.joget.apps.form.model.FormStoreBinder getStoreBinder()
获取商店活页夹
public void setStoreBinder(org.joget.apps.form.model.FormStoreBinder storeBinder)
设置商店活页夹
public org.joget.apps.form.model.Validator getValidator()
获取验证器
public void setValidator(org.joget.apps.form.model.Validator validator)
设置一个验证器
public java.lang.String getCustomParameterName()
如果非null,则将其用作元素的HTML输入名称。
public void setCustomParameterName(java.lang.String customParameterName)
为元素的HTML输入名称设置自定义参数名称。
public java.lang.String getDefaultPropertyValues()
将默认插件属性选项值设置为在窗体生成器中添加一个新的字段。
public static final String PROPERTY_PARENT_SUBFORM_ID ="parentSubFormId";
用于检索父窗体中的字段ID的属性键,用于将子窗体主键存储为引用键。
public static final String PROPERTY_SUBFORM_PARENT_ID ="subFormParentId";
用于检索子窗体中的字段ID的属性键,用于将父窗体主键存储为外键。
受保护的org.joget.apps.form.model.Form loadSubForm(org.joget.apps.form.model.FormData parentFormData)throws org.springframework.beans.BeansException
以表格形式检索Form对象。此方法将使用属性键"formDefId"或"json"中的任一值 来构造Form对象。
protected void updateElementParameterNames(org.joget.apps.form.model.Element element,java.lang.String prefix)
使用前缀更新子表单中字段元素的所有参数名称
protected void populateParentWithSubFormKey(org.joget.apps.form.model.FormData formData)
根据此常数PROPERTY_PARENT_SUBFORM_ID的属性键,使用子窗体的主键更新父窗体字段值 。
protected void populateSubFormWithParentKey(org.joget.apps.form.model.FormData formData)
根据此常量PROPERTY_SUBFORM_PARENT_ID的属性键,使用父表单的主键更新子表单字段值 。
protected boolean checkForRecursiveForm(org.joget.apps.form.model.Element e,java.lang.String id)
检查子表单不存在于父元素树中。
受保护的org.joget.apps.form.model.Form getSubForm(org.joget.apps.form.model.FormData formData)
从其子对象获取对象。
public java.lang.String getFormBuilderCategory()
“表单构建器”调板中元素的类别
public int getFormBuilderPosition()
订购位置。调色板根据位置值以类别的升序显示。
public java.lang.String getFormBuilderIcon()
“窗体构建器”调板中元素的图标路径。这条路径是相对于上下文路径的。返回NULL以使用默认图标。
public jva.lang.String getDefaultPropertyValues()
将默认插件属性选项值设置为在窗体生成器中添加一个新的字段。这个方法在org.joget.apps.form.model.Element中实现。
public java.lang.String getFormBuilderTemplate()
用于在Form Builder中显示新添加字段的HTML模板
在wflow-core模块下
这个接口表明一个表单域元素是一个容器,不应该在数据库中创建一个表单数据列。
在wflow-core模块下
此界面表明,表单域元素是一个多选项字段,如选择框,复选框和单选按钮。它可以使用表单选项 活页夹来填充它的选项。
在这个界面中没有可用的接口方法
在wflow-core模块下
此界面表明,表单域元素是一个多选项字段,如选择框,复选框和单选按钮。它可以使用Form Options Binder 来实现org.joget.apps.form.model.FormAjaxOptionsBinder 来使用AJAX填充它的选项。
public org.joget.apps.form.model.Element getControlElement(org.joget.apps.form.model.FormData formData)
获取用于控制此字段的选项的相关字段元素
在wflow-core模块下
public org.joget.apps.form.model.FormRowSet loadFormRows(String [] primaryKeyValues,org.joget.apps.form.model.FormData formData)
检索指定主键值数组的表单数据行。
{ 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' }
{ 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' }
该属性的值将自动转换成表单选项活页夹插件,该插件可以通过getOptionsBinder 方法检索 。
{ 名称:'optionsBinder', 标签:'@@ form.checkbox.chooseOptionsBinder @@', 键入:'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' }
{ 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' }
{ 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' }
{ name : 'readonly', label : '@@form.checkbox.readonly@@', type : 'checkbox', value : 'false', options : [{ value : 'true', label : '' }] }
{ name : 'readonlyLabel', label : '@@form.checkbox.readonlyLabel@@', type : 'checkbox', value : 'false', options : [{ value : 'true', label : '' }] }
{ name : 'workflowVariable', label : '@@form.checkbox.workflowVariable@@', type : 'textfield' }
{ name : 'value', description : '@@form.checkbox.value.desc@@', label : 'Default @@form.checkbox.value@@', type : 'textfield' }
以下是文本字段元素的示例表单字段模板 。它使用FreeMaker语法构造。这个模板将被renderTemplate方法使用并返回。
@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; }
<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!}需要放在“.form-cell”div中。它由Form Builder使用。".form-cell" div. It is used by Form Builder.