Search in sources :

Example 1 with FormFieldImpl

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;
}
Also used : FormFieldValidationConstraint(org.camunda.bpm.engine.form.FormFieldValidationConstraint) FormFieldImpl(org.camunda.bpm.engine.impl.form.FormFieldImpl) VariableScope(org.camunda.bpm.engine.delegate.VariableScope) StartProcessVariableScope(org.camunda.bpm.engine.impl.el.StartProcessVariableScope) TypedValue(org.camunda.bpm.engine.variable.value.TypedValue)

Aggregations

VariableScope (org.camunda.bpm.engine.delegate.VariableScope)1 FormFieldValidationConstraint (org.camunda.bpm.engine.form.FormFieldValidationConstraint)1 StartProcessVariableScope (org.camunda.bpm.engine.impl.el.StartProcessVariableScope)1 FormFieldImpl (org.camunda.bpm.engine.impl.form.FormFieldImpl)1 TypedValue (org.camunda.bpm.engine.variable.value.TypedValue)1