diff --git a/src/main/java/io/asfjava/ui/core/generators/NumberGenerator.java b/src/main/java/io/asfjava/ui/core/generators/NumberGenerator.java index 36eb397..58dd7c4 100644 --- a/src/main/java/io/asfjava/ui/core/generators/NumberGenerator.java +++ b/src/main/java/io/asfjava/ui/core/generators/NumberGenerator.java @@ -12,9 +12,13 @@ public class NumberGenerator implements FormDefinitionGenerator { public void generate(ObjectNode fieldFormDefinition, Field field) { Number annotation = field.getAnnotation(Number.class); fieldFormDefinition.put("key", field.getName()); - fieldFormDefinition.put("title", annotation.title()); fieldFormDefinition.put("type", "number"); + String title = annotation.title(); + if (!title.isEmpty()) { + fieldFormDefinition.put("title", title); + } + String description = annotation.description(); if (!description.isEmpty()) { fieldFormDefinition.put("description", description); diff --git a/src/main/java/io/asfjava/ui/core/schema/decorators/NumberSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorators/NumberSchemaDecorator.java new file mode 100644 index 0000000..29a573f --- /dev/null +++ b/src/main/java/io/asfjava/ui/core/schema/decorators/NumberSchemaDecorator.java @@ -0,0 +1,24 @@ +package io.asfjava.ui.core.schema.decorators; + +import com.fasterxml.jackson.databind.BeanProperty; +import com.fasterxml.jackson.module.jsonSchema.JsonSchema; +import com.fasterxml.jackson.module.jsonSchema.types.StringSchema; + +import io.asfjava.ui.core.form.Number; + +public class NumberSchemaDecorator implements SchemaDecorator { + + @Override + public void customizeSchema(BeanProperty property, JsonSchema jsonschema) { + Number annotation = property.getAnnotation(Number.class); + if (annotation != null && annotation.title() != null) { + ((StringSchema) jsonschema).setTitle(annotation.title()); + } + } + + @Override + public String getAnnotation() { + return Number.class.getName(); + } + +}