Search in sources :

Example 6 with Field

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;
}
Also used : Field(org.kie.workbench.common.forms.migration.legacy.model.Field) XMLNode(org.kie.workbench.common.forms.migration.legacy.services.impl.util.XMLNode) Node(org.w3c.dom.Node) NodeList(org.w3c.dom.NodeList)

Example 7 with 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();
}
Also used : Field(org.kie.workbench.common.forms.migration.legacy.model.Field) StringWriter(java.io.StringWriter) DataHolder(org.kie.workbench.common.forms.migration.legacy.model.DataHolder)

Example 8 with Field

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());
        });
    });
}
Also used : MigrationContext(org.kie.workbench.common.forms.migration.tool.pipelines.MigrationContext) ModelPropertyImpl(org.kie.workbench.common.forms.model.impl.ModelPropertyImpl) Predicate(java.util.function.Predicate) TableColumnMeta(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.TableColumnMeta) FieldDefinition(org.kie.workbench.common.forms.model.FieldDefinition) ModelProperty(org.kie.workbench.common.forms.model.ModelProperty) IsCRUDDefinition(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.IsCRUDDefinition) Function(java.util.function.Function) StringUtils(org.apache.commons.lang3.StringUtils) Form(org.kie.workbench.common.forms.migration.legacy.model.Form) BPMNFormAdapter(org.kie.workbench.common.forms.migration.tool.pipelines.basic.impl.BPMNFormAdapter) HasNestedForm(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm) Consumer(java.util.function.Consumer) List(java.util.List) FormModel(org.kie.workbench.common.forms.model.FormModel) AbstractMigrationStep(org.kie.workbench.common.forms.migration.tool.pipelines.AbstractMigrationStep) DataObjectFormAdapter(org.kie.workbench.common.forms.migration.tool.pipelines.basic.impl.DataObjectFormAdapter) Field(org.kie.workbench.common.forms.migration.legacy.model.Field) FormMigrationSummary(org.kie.workbench.common.forms.migration.tool.FormMigrationSummary) EmbedsForm(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.EmbedsForm) FormDefinition(org.kie.workbench.common.forms.model.FormDefinition) Field(org.kie.workbench.common.forms.migration.legacy.model.Field) Form(org.kie.workbench.common.forms.migration.legacy.model.Form) HasNestedForm(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm) EmbedsForm(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.EmbedsForm) TableColumnMeta(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.TableColumnMeta) IsCRUDDefinition(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.IsCRUDDefinition) HasNestedForm(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm) FormDefinition(org.kie.workbench.common.forms.model.FormDefinition) EmbedsForm(org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.EmbedsForm)

Aggregations

Field (org.kie.workbench.common.forms.migration.legacy.model.Field)8 Form (org.kie.workbench.common.forms.migration.legacy.model.Form)6 FormMigrationSummary (org.kie.workbench.common.forms.migration.tool.FormMigrationSummary)5 FormDefinition (org.kie.workbench.common.forms.model.FormDefinition)5 FieldDefinition (org.kie.workbench.common.forms.model.FieldDefinition)4 List (java.util.List)3 MigrationContext (org.kie.workbench.common.forms.migration.tool.pipelines.MigrationContext)3 LayoutRow (org.uberfire.ext.layout.editor.api.editor.LayoutRow)3 LayoutTemplate (org.uberfire.ext.layout.editor.api.editor.LayoutTemplate)3 ArrayList (java.util.ArrayList)2 Predicate (java.util.function.Predicate)2 Test (org.junit.Test)2 DecimalBoxFieldDefinition (org.kie.workbench.common.forms.fields.shared.fieldTypes.basic.decimalBox.definition.DecimalBoxFieldDefinition)2 TextBoxFieldDefinition (org.kie.workbench.common.forms.fields.shared.fieldTypes.basic.textBox.definition.TextBoxFieldDefinition)2 MultipleSubFormFieldDefinition (org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.multipleSubform.definition.MultipleSubFormFieldDefinition)2 SubFormFieldDefinition (org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.subForm.definition.SubFormFieldDefinition)2 DataHolder (org.kie.workbench.common.forms.migration.legacy.model.DataHolder)2 XMLNode (org.kie.workbench.common.forms.migration.legacy.services.impl.util.XMLNode)2 Resource (org.kie.workbench.common.forms.migration.tool.Resource)2 FormsMigrationConstants (org.kie.workbench.common.forms.migration.tool.util.FormsMigrationConstants)2