use of org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm in project kie-wb-common by kiegroup.
the class AbstractBPMNFormGeneratorService method processFieldDefinition.
protected void processFieldDefinition(FieldDefinition field, GenerationContext<SOURCE> context) {
if (field instanceof EntityRelationField) {
if (field instanceof HasNestedForm) {
HasNestedForm nestedFormField = (HasNestedForm) field;
FormDefinition nestedForm = findFormDefinitionForModelType(field.getStandaloneClassName(), context);
if (nestedForm == null) {
nestedForm = createModelFormDefinition(field.getStandaloneClassName(), context);
}
nestedFormField.setNestedForm(nestedForm.getId());
} else if (field instanceof IsCRUDDefinition) {
IsCRUDDefinition crudField = (IsCRUDDefinition) field;
FormDefinition nestedForm = findFormDefinitionForModelType(field.getStandaloneClassName(), context);
if (nestedForm == null) {
nestedForm = createModelFormDefinition(field.getStandaloneClassName(), context);
crudField.setCreationForm(nestedForm.getId());
crudField.setEditionForm(nestedForm.getId());
List<TableColumnMeta> tableColumnMetas = new ArrayList<>();
nestedForm.getFields().forEach(nestedField -> {
tableColumnMetas.add(new TableColumnMeta(nestedField.getLabel(), nestedField.getBinding()));
});
crudField.setColumnMetas(tableColumnMetas);
}
}
}
}
use of org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm in project kie-wb-common by kiegroup.
the class FormDefinitionVisitor method visit.
public void visit(FieldDefinition fieldDefinition) {
resParts.addPart(fieldDefinition.getName(), PartType.FORM_FIELD);
addResourceReference(fieldDefinition.getStandaloneClassName(), ResourceType.JAVA);
if (fieldDefinition instanceof HasNestedForm) {
HasNestedForm nestedForm = (HasNestedForm) fieldDefinition;
addResourceReference(nestedForm.getNestedForm(), ResourceType.FORM);
} else if (fieldDefinition instanceof IsCRUDDefinition) {
IsCRUDDefinition crudDefinition = (IsCRUDDefinition) fieldDefinition;
addResourceReference(crudDefinition.getCreationForm(), ResourceType.FORM);
addResourceReference(crudDefinition.getEditionForm(), ResourceType.FORM);
}
}
use of org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm in project kie-wb-common by kiegroup.
the class NestedFormsConflictHandler method checkConflict.
protected void checkConflict(FieldDefinition fieldDefinition) {
if (fieldDefinition instanceof HasNestedForm) {
HasNestedForm nestedForm = (HasNestedForm) fieldDefinition;
if (content.getRenderingContext().getAvailableForms().get(nestedForm.getNestedForm()) == null) {
consumeConflict(getFieldText(fieldDefinition), translationService.getTranslation(FormEditorConstants.NestedFormsConflictHandlerNestedForm), translationService.getTranslation(FormEditorConstants.NestedFormsConflictHandlerFix));
commands.add(() -> nestedForm.setNestedForm(null));
}
} else if (fieldDefinition instanceof IsCRUDDefinition) {
IsCRUDDefinition crudDefinition = (IsCRUDDefinition) fieldDefinition;
if (content.getRenderingContext().getAvailableForms().get(crudDefinition.getCreationForm()) == null) {
consumeConflict(getFieldText(fieldDefinition), translationService.getTranslation(FormEditorConstants.NestedFormsConflictHandlerCreationForm), translationService.getTranslation(FormEditorConstants.NestedFormsConflictHandlerFix));
commands.add(() -> crudDefinition.setCreationForm(null));
}
if (content.getRenderingContext().getAvailableForms().get(crudDefinition.getEditionForm()) == null) {
consumeConflict(getFieldText(fieldDefinition), translationService.getTranslation(FormEditorConstants.NestedFormsConflictHandlerEditionForm), translationService.getTranslation(FormEditorConstants.NestedFormsConflictHandlerFix));
commands.add(() -> crudDefinition.setEditionForm(null));
}
}
}
use of org.kie.workbench.common.forms.fields.shared.fieldTypes.relations.HasNestedForm 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