Skip to content

Commit 87be468

Browse files
committed
Add Number decorator Fixe #42
Fixe #42
1 parent 09ed590 commit 87be468

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/main/java/io/asfjava/ui/core/generators/NumberGenerator.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ public class NumberGenerator implements FormDefinitionGenerator {
1212
public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
Number annotation = field.getAnnotation(Number.class);
1414
fieldFormDefinition.put("key", field.getName());
15-
fieldFormDefinition.put("title", annotation.title());
1615
fieldFormDefinition.put("type", "number");
1716

17+
String title = annotation.title();
18+
if (!title.isEmpty()) {
19+
fieldFormDefinition.put("title", title);
20+
}
21+
1822
String description = annotation.description();
1923
if (!description.isEmpty()) {
2024
fieldFormDefinition.put("description", description);
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package io.asfjava.ui.core.schema.decorators;
2+
3+
import com.fasterxml.jackson.databind.BeanProperty;
4+
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
5+
import com.fasterxml.jackson.module.jsonSchema.types.StringSchema;
6+
7+
import io.asfjava.ui.core.form.Number;
8+
9+
public class NumberSchemaDecorator implements SchemaDecorator {
10+
11+
@Override
12+
public void customizeSchema(BeanProperty property, JsonSchema jsonschema) {
13+
Number annotation = property.getAnnotation(Number.class);
14+
if (annotation != null && annotation.title() != null) {
15+
((StringSchema) jsonschema).setTitle(annotation.title());
16+
}
17+
}
18+
19+
@Override
20+
public String getAnnotation() {
21+
return Number.class.getName();
22+
}
23+
24+
}

0 commit comments

Comments
 (0)