use of org.kie.workbench.common.forms.migration.legacy.model.Field in project kie-wb-common by kiegroup.
the class FormSerializationManagerImpl method deserializeField.
public Field deserializeField(Node nodeField) throws Exception {
if (!nodeField.getNodeName().equals(NODE_FIELD)) {
return null;
}
Field field = new Field();
field.setId(Long.valueOf(nodeField.getAttributes().getNamedItem(ATTR_ID).getNodeValue()));
field.setFieldName(nodeField.getAttributes().getNamedItem(ATTR_NAME).getNodeValue());
field.setPosition(Integer.parseInt(nodeField.getAttributes().getNamedItem(ATTR_POSITION).getNodeValue()));
field.setFieldType(fieldTypeManager.getTypeByCode(nodeField.getAttributes().getNamedItem(ATTR_TYPE).getNodeValue()));
Node bag = nodeField.getAttributes().getNamedItem(ATTR_BAG_TYPE);
if (bag != null) {
field.setBag(bag.getNodeValue());
}
NodeList fieldPropsNodes = nodeField.getChildNodes();
for (int j = 0; j < fieldPropsNodes.getLength(); j++) {
Node nodeFieldProp = fieldPropsNodes.item(j);
if (nodeFieldProp.getNodeName().equals(NODE_PROPERTY)) {
String propName = nodeFieldProp.getAttributes().getNamedItem(ATTR_NAME).getNodeValue();
String value = StringEscapeUtils.unescapeXml(nodeFieldProp.getAttributes().getNamedItem(ATTR_VALUE).getNodeValue());
if (propName != null && value != null) {
if ("fieldRequired".equals(propName)) {
field.setFieldRequired(Boolean.valueOf(value));
} else if ("groupWithPrevious".equals(propName)) {
field.setGroupWithPrevious(Boolean.valueOf(value));
} else if ("height".equals(propName)) {
field.setHeight(value);
} else if ("labelCSSClass".equals(propName)) {
field.setLabelCSSClass(value);
} else if ("labelCSSStyle".equals(propName)) {
field.setLabelCSSStyle(value);
} else if ("label".equals(propName)) {
field.setLabel(deserializeI18nEntrySet(value));
} else if ("errorMessage".equals(propName)) {
field.setErrorMessage(deserializeI18nEntrySet(value));
} else if ("title".equals(propName)) {
field.setTitle(deserializeI18nEntrySet(value));
} else if ("readonly".equals(propName)) {
field.setReadonly(Boolean.valueOf(value));
} else if ("size".equals(propName)) {
if (!StringUtils.isEmpty(value) && StringUtils.isNumeric(value)) {
field.setSize(Long.valueOf(value));
}
} else if ("formula".equals(propName)) {
field.setFormula(value);
} else if ("rangeFormula".equals(propName)) {
field.setRangeFormula(value);
} else if ("pattern".equals(propName)) {
field.setPattern(value);
} else if ("maxlength".equals(propName)) {
if (!StringUtils.isEmpty(value) && StringUtils.isNumeric(value)) {
field.setMaxlength(Long.valueOf(value));
}
} else if ("styleclass".equals(propName)) {
field.setStyleclass(value);
} else if ("cssStyle".equals(propName)) {
field.setCssStyle(value);
} else if ("tabindex".equals(propName)) {
if (!StringUtils.isEmpty(value) && StringUtils.isNumeric(value)) {
field.setTabindex(Long.valueOf(value));
}
} else if ("accesskey".equals(propName)) {
field.setAccesskey(value);
} else if ("isHTML".equals(propName)) {
field.setIsHTML(Boolean.valueOf(value));
} else if ("htmlContent".equals(propName)) {
field.setHtmlContent(deserializeI18nEntrySet(value));
} else if ("hideContent".equals(propName)) {
field.setHideContent(Boolean.valueOf(value));
} else if ("defaultValueFormula".equals(propName)) {
field.setDefaultValueFormula(value);
} else if ("defaultSubform".equals(propName)) {
field.setDefaultSubform(value);
} else if ("previewSubform".equals(propName)) {
field.setPreviewSubform(value);
} else if ("tableSubform".equals(propName)) {
field.setTableSubform(value);
} else if ("newItemText".equals(propName)) {
field.setNewItemText(deserializeI18nEntrySet(value));
} else if ("addItemText".equals(propName)) {
field.setAddItemText(deserializeI18nEntrySet(value));
} else if ("cancelItemText".equals(propName)) {
field.setCancelItemText(deserializeI18nEntrySet(value));
} else if ("deleteItems".equals(propName)) {
field.setDeleteItems(Boolean.valueOf(value));
} else if ("updateItems".equals(propName)) {
field.setUpdateItems(Boolean.valueOf(value));
} else if ("visualizeItems".equals(propName)) {
field.setVisualizeItem(Boolean.valueOf(value));
} else if ("hideCreateItem".equals(propName)) {
field.setHideCreateItem(Boolean.valueOf(value));
} else if ("expanded".equals(propName)) {
field.setExpanded(Boolean.valueOf(value));
} else if ("enableTableEnterData".equals(propName)) {
field.setEnableTableEnterData(Boolean.valueOf(value));
} else if ("inputBinding".equals(propName)) {
field.setInputBinding(value);
} else if ("outputBinding".equals(propName)) {
field.setOutputBinding(value);
} else if ("customFieldType".equals(propName)) {
field.setCustomFieldType(value);
} else if ("param1".equals(propName)) {
field.setParam1(value);
} else if ("param2".equals(propName)) {
field.setParam2(value);
} else if ("param3".equals(propName)) {
field.setParam3(value);
} else if ("param4".equals(propName)) {
field.setParam4(value);
} else if ("param5".equals(propName)) {
field.setParam5(value);
} else if ("fieldClass".equals(propName)) {
field.getFieldType().setFieldClass(value);
} else if ("onChangeScript".equals(propName)) {
field.setOnChangeScript(value);
} else if ("movedToForm".equals(propName) && value != null) {
field.setMovedToForm(value);
}
}
}
}
return field;
}
use of org.kie.workbench.common.forms.migration.legacy.model.Field in project kie-wb-common by kiegroup.
the class FormSerializationManagerImpl method generateFormXML.
/**
* Generates the xml representation and mount in rootNode the structure to be included.
* Fills the XMLNode structure with the form representation and returns the string.
*/
public String generateFormXML(Form form, XMLNode rootNode) throws Exception {
rootNode.addAttribute(ATTR_ID, form.getId().toString());
addXMLNode("subject", form.getSubject(), rootNode);
addXMLNode("name", form.getName(), rootNode);
addXMLNode("displayMode", form.getDisplayMode(), rootNode);
addXMLNode("labelMode", form.getLabelMode(), rootNode);
addXMLNode("showMode", form.getShowMode(), rootNode);
addXMLNode("status", (form.getStatus() != null ? String.valueOf(form.getStatus()) : null), rootNode);
addXMLNode("formTemplate", form.getFormTemplate(), rootNode);
addXMLNode("migrationStep", String.valueOf(form.getMigrationStep()), rootNode);
for (Field field : form.getFormFields()) {
generateFieldXML(field, rootNode);
}
for (DataHolder dataHolder : form.getHolders()) {
generateDataHolderXML(dataHolder, rootNode);
}
StringWriter sw = new StringWriter();
rootNode.writeXML(sw, true);
return sw.toString();
}
use of org.kie.workbench.common.forms.migration.legacy.model.Field in project kie-wb-common by kiegroup.
the class FormDefinitionGenerator method maybeArrangeNestedForms.
private void maybeArrangeNestedForms(FormMigrationSummary summary, List<FormMigrationSummary> modelForms) {
final Form originalForm = summary.getOriginalForm().get();
final FormDefinition formDefinition = summary.getNewForm().get();
formDefinition.getFields().stream().filter(fieldDefinition -> fieldDefinition instanceof HasNestedForm).map(fieldDefinition -> (HasNestedForm) fieldDefinition).forEach(hasNestedForm -> {
modelForms.stream().filter(modelSummary -> modelSummary.getOriginalForm().getPath().getFileName().equals(hasNestedForm.getNestedForm())).findFirst().ifPresent(modelSummary -> {
hasNestedForm.setNestedForm(modelSummary.getNewForm().get().getId());
updateNestedFormsModelProperties(formDefinition, (FieldDefinition) hasNestedForm, modelSummary.getOriginalForm().get());
});
});
formDefinition.getFields().stream().filter(fieldDefinition -> fieldDefinition instanceof IsCRUDDefinition).map(fieldDefinition -> (IsCRUDDefinition) fieldDefinition).forEach(crudDefinition -> {
// update Creation Form
updateCrudDefinitionForms(modelForms, modelSummary -> modelSummary.getOriginalForm().getPath().getFileName().equals(crudDefinition.getCreationForm()), modelSummary -> crudDefinition.setCreationForm(modelSummary.getNewForm().get().getId()));
// update Edition Form
updateCrudDefinitionForms(modelForms, modelSummary -> modelSummary.getOriginalForm().getPath().getFileName().equals(crudDefinition.getEditionForm()), modelSummary -> crudDefinition.setEditionForm(modelSummary.getNewForm().get().getId()));
// update Table Columns Form
updateCrudDefinitionForms(modelForms, modelSummary -> {
Field originalField = originalForm.getField(((FieldDefinition) crudDefinition).getName());
return modelSummary.getOriginalForm().getPath().getFileName().equals(StringUtils.defaultIfBlank(originalField.getTableSubform(), originalField.getDefaultSubform()));
}, modelSummary -> {
FormDefinition modelFormDefinition = modelSummary.getNewForm().get();
modelFormDefinition.getFields().forEach(fieldDefinition -> {
if (!(fieldDefinition instanceof EmbedsForm)) {
crudDefinition.getColumnMetas().add(new TableColumnMeta(fieldDefinition.getLabel(), fieldDefinition.getBinding()));
}
});
updateNestedFormsModelProperties(formDefinition, (FieldDefinition) crudDefinition, modelSummary.getOriginalForm().get());
});
});
}
Aggregations