Skip to content

Commit 8d89a5c

Browse files
fakhreddinefakhreddine
authored andcommitted
Create Schema decorator in order to edit the jsonSchema with a flexible
way
1 parent 467406f commit 8d89a5c

File tree

8 files changed

+36
-9
lines changed

8 files changed

+36
-9
lines changed

src/main/java/io/asfjava/ui/core/GeneratorFactoryInitializer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class GeneratorFactoryInitializer implements ServletContextListener {
1010
@Override
1111
public final void contextInitialized(final ServletContextEvent sce) {
1212
GeneratorFactoryLoader.getInstance().load();
13+
SchemaDecoratorLoader.getInstance().load();
1314
}
1415

1516
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
2020
fieldFormDefinition.put("type", "checkboxes");
2121
fieldFormDefinition.put("multiple", annotation.multiple());
2222
fieldFormDefinition.put("required", annotation.required());
23-
fieldFormDefinition.put("title", annotation.title());
23+
// fieldFormDefinition.put("title", annotation.title());
2424

2525
ObjectMapper checkBoxMapper = new ObjectMapper();
2626
ArrayNode titlesMap = checkBoxMapper.createArrayNode();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
2323
fieldFormDefinition.put("multiple", annotation.multiple());
2424
fieldFormDefinition.put("required", annotation.required());
2525
fieldFormDefinition.put("size", annotation.size());
26-
fieldFormDefinition.put("title", annotation.title());
26+
// fieldFormDefinition.put("title", annotation.title());
2727

2828
ObjectMapper comboMapper = new ObjectMapper();
2929
ArrayNode titlesMap = comboMapper.createArrayNode();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class PasswordGenerator implements FormDefinitionGenerator {
1212
public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
Password annotation = field.getAnnotation(Password.class);
1414
fieldFormDefinition.put("key", field.getName());
15-
fieldFormDefinition.put("title", annotation.title());
15+
// fieldFormDefinition.put("title", annotation.title());
1616
fieldFormDefinition.put("type", "password");
1717

1818
String description = annotation.description();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
1919
fieldFormDefinition.put("key", field.getName());
2020
fieldFormDefinition.put("readOnly", annotation.readOnly());
2121
fieldFormDefinition.put("type", "radios");
22-
fieldFormDefinition.put("title", annotation.title());
22+
// fieldFormDefinition.put("title", annotation.title());
2323

2424
JsonNode radioFieldFormDefinition = ((JsonNode) fieldFormDefinition);
2525

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class TextAreaGenerator implements FormDefinitionGenerator {
1212
public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
TextArea annotation = field.getAnnotation(TextArea.class);
1414
fieldFormDefinition.put("key", field.getName());
15-
fieldFormDefinition.put("title", annotation.title());
15+
// fieldFormDefinition.put("title", annotation.title());
1616
fieldFormDefinition.put("type", "textarea");
1717

1818
String description = annotation.description();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
1313
TextField annotation = field.getAnnotation(TextField.class);
1414

1515
fieldFormDefinition.put("key", field.getName());
16-
fieldFormDefinition.put("title", annotation.title());
16+
// fieldFormDefinition.put("title", annotation.title());
1717

1818
String description = annotation.description();
1919
if (!description.isEmpty()) {

src/main/java/io/asfjava/ui/core/schema/CustomStringSchema.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,42 @@
33
import com.fasterxml.jackson.databind.BeanProperty;
44
import com.fasterxml.jackson.module.jsonSchema.types.StringSchema;
55

6+
import io.asfjava.ui.core.SchemaDecoratorFactory;
7+
import io.asfjava.ui.core.form.CheckBox;
8+
import io.asfjava.ui.core.form.ComboBox;
9+
import io.asfjava.ui.core.form.Password;
10+
import io.asfjava.ui.core.form.RadioBox;
11+
import io.asfjava.ui.core.form.TextArea;
612
import io.asfjava.ui.core.form.TextField;
713

814
class CustomStringSchema extends StringSchema {
915

1016
@Override
1117
public void enrichWithBeanProperty(BeanProperty beanProperty) {
1218
super.enrichWithBeanProperty(beanProperty);
13-
TextField annotation = beanProperty.getAnnotation(TextField.class);
14-
if (annotation != null && !annotation.pattern().isEmpty()) {
15-
this.setPattern(annotation.pattern());
19+
if (beanProperty.getAnnotation(TextField.class) != null) {
20+
SchemaDecoratorFactory.getInstance().getGenerator(TextField.class.getName()).customizeSchema(beanProperty,
21+
this);
22+
}
23+
if (beanProperty.getAnnotation(ComboBox.class) != null) {
24+
SchemaDecoratorFactory.getInstance().getGenerator(ComboBox.class.getName()).customizeSchema(beanProperty,
25+
this);
26+
}
27+
if (beanProperty.getAnnotation(CheckBox.class) != null) {
28+
SchemaDecoratorFactory.getInstance().getGenerator(CheckBox.class.getName()).customizeSchema(beanProperty,
29+
this);
30+
}
31+
if (beanProperty.getAnnotation(RadioBox.class) != null) {
32+
SchemaDecoratorFactory.getInstance().getGenerator(RadioBox.class.getName()).customizeSchema(beanProperty,
33+
this);
34+
}
35+
if (beanProperty.getAnnotation(TextArea.class) != null) {
36+
SchemaDecoratorFactory.getInstance().getGenerator(TextArea.class.getName()).customizeSchema(beanProperty,
37+
this);
38+
}
39+
if (beanProperty.getAnnotation(Password.class) != null) {
40+
SchemaDecoratorFactory.getInstance().getGenerator(TextField.class.getName()).customizeSchema(beanProperty,
41+
this);
1642
}
1743
}
1844

0 commit comments

Comments
 (0)