use of org.kie.workbench.common.forms.model.MetaDataEntry in project kie-wb-common by kiegroup.
the class FormDefinitionSerializerImpl method deserialize.
@Override
public FormDefinition deserialize(String serializedForm) {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(FormModel.class, formModelSerializer);
builder.registerTypeAdapter(FieldDefinition.class, fieldSerializer);
builder.registerTypeAdapter(ModelProperty.class, (JsonDeserializer<ModelProperty>) (json, typeOfT, context) -> context.deserialize(json, ModelPropertyImpl.class));
builder.registerTypeAdapter(TypeInfo.class, (JsonDeserializer<TypeInfo>) (json, typeOfT, context) -> context.deserialize(json, TypeInfoImpl.class));
builder.registerTypeAdapter(ModelMetaData.class, (JsonDeserializer<ModelMetaData>) (json, typeOfT, context) -> context.deserialize(json, ModelMetaDataImpl.class));
builder.registerTypeAdapter(MetaDataEntry.class, (JsonDeserializer<MetaDataEntry>) (json, typeOfT, context) -> {
JsonObject jsonField = json.getAsJsonObject();
JsonElement jsonName = jsonField.get("name");
return context.deserialize(json, metaDataEntryManager.getMetaDataEntryClass(jsonName.getAsString()));
});
Gson gson = builder.create();
return gson.fromJson(serializedForm, FormDefinition.class);
}
use of org.kie.workbench.common.forms.model.MetaDataEntry in project kie-wb-common by kiegroup.
the class AbstractFieldManager method getDefinitionByModelProperty.
@Override
public FieldDefinition getDefinitionByModelProperty(ModelProperty modelProperty) {
FieldTypeEntry fieldTypeEntry = (FieldTypeEntry) modelProperty.getMetaData().getEntry(FieldTypeEntry.NAME);
FieldDefinition fieldDefinition = null;
if (fieldTypeEntry != null) {
fieldDefinition = getFieldFromProvider(fieldTypeEntry.getValue(), modelProperty.getTypeInfo());
}
if (fieldDefinition == null) {
Optional<FieldDefinition> optional = Optional.ofNullable(getDefinitionByDataType(modelProperty.getTypeInfo()));
if (optional.isPresent()) {
fieldDefinition = optional.get();
}
}
if (fieldDefinition != null) {
fieldDefinition.setName(modelProperty.getName());
fieldDefinition.setBinding(modelProperty.getName());
String label = modelProperty.getName();
label = label.substring(0, 1).toUpperCase() + label.substring(1);
fieldDefinition.setLabel(label);
fieldDefinition.setStandaloneClassName(modelProperty.getTypeInfo().getClassName());
if (fieldDefinition instanceof HasPlaceHolder) {
((HasPlaceHolder) fieldDefinition).setPlaceHolder(label);
}
for (MetaDataEntry entry : modelProperty.getMetaData().getEntries()) {
MetaDataEntryProcessor processor = metaDataEntryManager.getProcessorForEntry(entry);
if (processor != null && processor.supports(fieldDefinition)) {
processor.process(entry, fieldDefinition);
}
}
return fieldDefinition;
}
return null;
}
use of org.kie.workbench.common.forms.model.MetaDataEntry in project kie-wb-common by kiegroup.
the class FormDefinitionGeneratorImplTest method checkTaskFormModel.
private void checkTaskFormModel(TaskFormModel formModel, String taskName, boolean readOnly) {
Assertions.assertThat(formModel).hasFieldOrPropertyWithValue("processId", PROCESS_ID).hasFieldOrPropertyWithValue("taskName", taskName);
Assertions.assertThat(formModel.getProperties()).isNotEmpty().hasSize(VARIABLES.size());
VARIABLES.forEach((key, value) -> {
ModelProperty property = formModel.getProperty(key);
assertNotNull(property);
assertEquals(value, property.getTypeInfo().getClassName());
MetaDataEntry readOnlyEntry = property.getMetaData().getEntry(FieldReadOnlyEntry.NAME);
Assertions.assertThat(readOnlyEntry).isNotNull().isInstanceOf(FieldReadOnlyEntry.class).hasFieldOrPropertyWithValue("value", readOnly);
});
}
Aggregations