|
| 1 | +package io.asfjava.ui.core.generators; |
| 2 | + |
| 3 | +import java.lang.reflect.Field; |
| 4 | + |
| 5 | +import com.fasterxml.jackson.databind.node.ObjectNode; |
| 6 | + |
| 7 | +import io.asfjava.ui.core.form.TextArea; |
| 8 | + |
| 9 | +public class TextAreaGenerator implements FormDefinitionGenerator { |
| 10 | + |
| 11 | + @Override |
| 12 | + public void generate(ObjectNode fieldFormDefinition, Field field) { |
| 13 | + TextArea annotation = field.getAnnotation(TextArea.class); |
| 14 | + fieldFormDefinition.put("key", field.getName()); |
| 15 | + fieldFormDefinition.put("label", annotation.title()); |
| 16 | + fieldFormDefinition.put("type", "textarea"); |
| 17 | + |
| 18 | + String description = annotation.description(); |
| 19 | + if (!description.isEmpty()) { |
| 20 | + fieldFormDefinition.put("description", description); |
| 21 | + } |
| 22 | + String placeHolder = annotation.placeHolder(); |
| 23 | + if (!placeHolder.isEmpty()) { |
| 24 | + fieldFormDefinition.put("placeholder", placeHolder); |
| 25 | + } |
| 26 | + boolean noTitle = annotation.noTitle(); |
| 27 | + if (noTitle) { |
| 28 | + fieldFormDefinition.put("notitle", noTitle); |
| 29 | + } |
| 30 | + String validationMessage = annotation.validationMessage(); |
| 31 | + if (!validationMessage.isEmpty()) { |
| 32 | + fieldFormDefinition.put("validationMessage", validationMessage); |
| 33 | + } |
| 34 | + boolean readOnly = annotation.readOnly(); |
| 35 | + if (readOnly) { |
| 36 | + fieldFormDefinition.put("readonly", readOnly); |
| 37 | + } |
| 38 | + } |
| 39 | + |
| 40 | + @Override |
| 41 | + public String getAnnoation() { |
| 42 | + return TextArea.class.getName(); |
| 43 | + } |
| 44 | + |
| 45 | +} |
0 commit comments