use of org.kie.workbench.common.forms.model.FormDefinition in project kie-wb-common by kiegroup.
the class FormGenerationIntegrationTest method ProcessFormIsCorrectlyGenerated.
/**
* Tests if all form definitions are generated correctly when you hit generate all in the designer.
*/
@Test
public void ProcessFormIsCorrectlyGenerated() {
when(module.getRootPath()).thenReturn(rootPathWithNestedForms);
final FormGenerationResult formGenerationResult = generateForm("new_formmodeler.FormGenerationTest_Process-taskform.frm", processFormModel);
final List<String> expectedProcessFormFields = Arrays.asList("boolean", CHECKBOX_FIELDTYPE, "dataObject", SUBFORM_FIELDTYPE, "document", DOCUMENT_FIELDTYPE, "float", DECIMALBOX_FIELDTYPE, "integer", INTEGERBOX_FIELDTYPE, "object", TEXTAREA_FIELDTYPE, "string", TEXTBOX_FIELDTYPE);
final FormDefinition rootForm = formGenerationResult.getRootForm();
testFormDefinition(rootForm, expectedProcessFormFields);
testNestedFormsHaveCorrectId(rootForm, "dataObject", DATAOBJECT_FORM_ID);
}
use of org.kie.workbench.common.forms.model.FormDefinition in project kie-wb-common by kiegroup.
the class AbstractBPMNFormGeneratorService method generateForms.
@Override
public FormGenerationResult generateForms(JBPMFormModel formModel, SOURCE source) {
if (formModel == null) {
throw new IllegalArgumentException("FormModel cannot be null");
}
GenerationContext<SOURCE> context = new GenerationContext<>(formModel, source);
FormDefinition rootForm = createRootFormDefinition(context);
if (rootForm == null) {
throw new IllegalStateException("Impossible to generate form for: " + formModel.getFormName());
}
if (rootForm.getLayoutTemplate() == null) {
createFormLayout(rootForm);
}
context.setRootForm(rootForm);
processFormDefinition(rootForm, context);
return new FormGenerationResult(context.getRootForm(), new ArrayList<>(context.getContextForms().values()));
}
use of org.kie.workbench.common.forms.model.FormDefinition in project kie-wb-common by kiegroup.
the class BPMNVFSFormDefinitionGeneratorService method createModelFormDefinition.
@Override
protected FormDefinition createModelFormDefinition(String modelType, GenerationContext<Path> context) {
FormDefinition form = super.createModelFormDefinition(modelType, context);
org.uberfire.java.nio.file.Path path = Paths.convert(context.getSource()).getParent().resolve(form.getName() + "." + FormResourceTypeDefinition.EXTENSION);
ioService.write(path, formSerializer.serialize(form), commentedOptionFactory.makeCommentedOption("Automatically generated form"));
return form;
}
use of org.kie.workbench.common.forms.model.FormDefinition in project kie-wb-common by kiegroup.
the class BPMNVFSFormDefinitionGeneratorService method findFormDefinitionForModelType.
@Override
protected FormDefinition findFormDefinitionForModelType(String modelType, GenerationContext<Path> context) {
FormDefinition form = super.findFormDefinitionForModelType(modelType, context);
if (form != null) {
return form;
}
List<FormDefinition> foundForms = formFinderService.findFormsForType(modelType, context.getSource());
Optional<FormDefinition> validForm = foundForms.stream().filter(formDefinition -> !formDefinition.getFields().isEmpty()).findFirst();
return validForm.orElse(foundForms.stream().findFirst().orElse(null));
}
use of org.kie.workbench.common.forms.model.FormDefinition in project kie-wb-common by kiegroup.
the class FormGenerationWithSynchronizationTest method testAddModelProperties.
@Test
public void testAddModelProperties() {
List<ModelProperty> modelProperties = new ArrayList<>();
modelProperties.add(new ModelPropertyImpl(NAME_PROPERTY, new TypeInfoImpl(String.class.getName())));
modelProperties.add(new ModelPropertyImpl(LASTNAME_PROPERTY, new TypeInfoImpl(String.class.getName())));
modelProperties.add(new ModelPropertyImpl(AGE_PROPERTY, new TypeInfoImpl(Integer.class.getName())));
modelProperties.add(new ModelPropertyImpl(MARRIED_PROPERTY, new TypeInfoImpl(Boolean.class.getName())));
modelProperties.add(new ModelPropertyImpl(ADDRESS_PROPERTY, new TypeInfoImpl(String.class.getName())));
modelProperties.add(new ModelPropertyImpl(JOB_PROPERTY, new TypeInfoImpl(String.class.getName())));
modelProperties.add(new ModelPropertyImpl(HOBBIES_PROPERTY, new TypeInfoImpl(String.class.getName())));
newFormModel = new TaskFormModel(PROCESS_ID, TASK_NAME, modelProperties);
FormGenerationResult generationResult = service.generateForms(newFormModel, source);
assertNotNull(generationResult);
assertNotNull(generationResult.getRootForm());
FormDefinition formDefinition = generationResult.getRootForm();
assertEquals(newFormModel, formDefinition.getModel());
assertEquals(ALL_FORM_FIELDS, Integer.valueOf(formDefinition.getFields().size()));
FieldDefinition field = formDefinition.getFieldByBinding(NAME_PROPERTY);
assertNotNull(field);
assertEquals(field.getStandaloneClassName(), String.class.getName());
assertTrue(field instanceof TextBoxFieldDefinition);
field = formDefinition.getFieldByBinding(LASTNAME_PROPERTY);
assertNotNull(field);
assertEquals(field.getStandaloneClassName(), String.class.getName());
assertTrue(field instanceof TextBoxFieldDefinition);
field = formDefinition.getFieldByBinding(AGE_PROPERTY);
assertEquals(field.getStandaloneClassName(), Integer.class.getName());
assertTrue(field instanceof IntegerBoxFieldDefinition);
field = formDefinition.getFieldByBinding(MARRIED_PROPERTY);
assertNotNull(field);
assertEquals(field.getStandaloneClassName(), Boolean.class.getName());
assertTrue(field instanceof CheckBoxFieldDefinition);
field = formDefinition.getFieldByBinding(ADDRESS_PROPERTY);
assertNotNull(field);
assertEquals(field.getStandaloneClassName(), String.class.getName());
assertTrue(field instanceof TextBoxFieldDefinition);
field = formDefinition.getFieldByBinding(JOB_PROPERTY);
assertNotNull(field);
assertEquals(field.getStandaloneClassName(), String.class.getName());
assertTrue(field instanceof TextBoxFieldDefinition);
field = formDefinition.getFieldByBinding(HOBBIES_PROPERTY);
assertNotNull(field);
assertEquals(field.getStandaloneClassName(), String.class.getName());
assertTrue(field instanceof TextBoxFieldDefinition);
}
Aggregations