* Create a default empty form containing buttons for submission and fields for workflow variables
* @return
*/
protected Form createDefaultForm(String processId, FormData formData) {
// create default empty form
Form form = new Form();
form.setProperty(FormUtil.PROPERTY_ID, "assignmentForm");
form.setLoadBinder(new WorkflowFormBinder());
form.setStoreBinder(new WorkflowFormBinder());
// add textfields for workflow variables
Collection<Element> children = new ArrayList<Element>();
Collection<WorkflowVariable> variableList = workflowManager.getProcessVariableList(processId);
for (WorkflowVariable variable : variableList) {
String varId = variable.getId();
String varName = variable.getName();
TextField tf = new TextField();
tf.setProperty(FormUtil.PROPERTY_ID, varId);
tf.setProperty(FormUtil.PROPERTY_LABEL, varName);
tf.setProperty(AppUtil.PROPERTY_WORKFLOW_VARIABLE, varId);
children.add(tf);
}
form.setChildren(children);
// load form
String json = formService.generateElementJson(form);
form = formService.loadFormFromJson(json, formData);
// set workflow variable parameter names
Collection<Element> formFields = form.getChildren(formData);
for (Element element : formFields) {
if (element instanceof TextField) {
element.setCustomParameterName(AppUtil.PREFIX_WORKFLOW_VARIABLE + element.getProperty(FormUtil.PROPERTY_ID));
}
}