use of org.camunda.bpm.engine.impl.form.FormFieldImpl in project camunda-bpm-platform by camunda.
the class FormFieldHandler method createFormField.
public FormField createFormField(ExecutionEntity executionEntity) {
FormFieldImpl formField = new FormFieldImpl();
// set id
formField.setId(id);
// set label (evaluate expression)
VariableScope variableScope = executionEntity != null ? executionEntity : StartProcessVariableScope.getSharedInstance();
if (label != null) {
Object labelValueObject = label.getValue(variableScope);
if (labelValueObject != null) {
formField.setLabel(labelValueObject.toString());
}
}
formField.setBusinessKey(businessKey);
// set type
formField.setType(type);
// set default value (evaluate expression)
Object defaultValue = null;
if (defaultValueExpression != null) {
defaultValue = defaultValueExpression.getValue(variableScope);
if (defaultValue != null) {
formField.setDefaultValue(type.convertFormValueToModelValue(defaultValue));
} else {
formField.setDefaultValue(null);
}
}
// value
TypedValue value = variableScope.getVariableTyped(id);
if (value != null) {
formField.setValue(type.convertToFormValue(value));
} else {
// first, need to convert to model value since the default value may be a String Constant specified in the model xml.
TypedValue typedDefaultValue = type.convertToModelValue(Variables.untypedValue(defaultValue));
// now convert to form value
formField.setValue(type.convertToFormValue(typedDefaultValue));
}
// properties
formField.setProperties(properties);
// validation
List<FormFieldValidationConstraint> validationConstraints = formField.getValidationConstraints();
for (FormFieldValidationConstraintHandler validationHandler : validationHandlers) {
// do not add custom validators
if (!"validator".equals(validationHandler.name)) {
validationConstraints.add(validationHandler.createValidationConstraint(executionEntity));
}
}
return formField;
}
Aggregations