Skip to content

Commit eb1f31b

Browse files
committedMay 29, 2017
add textarea layout support fix #3
1 parent cbe90ee commit eb1f31b

File tree

5 files changed

+54
-5
lines changed

5 files changed

+54
-5
lines changed
 

‎src/main/java/io/asfjava/ui/core/generators/FormDefinitionGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
public interface FormDefinitionGenerator {
88

9-
void generate(ObjectNode node, Field field);
9+
void generate(ObjectNode fieldFormDefinition, Field field);
1010

1111
String getAnnoation();
1212
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
}

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

+1-1
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("type", annotation.value().getLayout());
16+
fieldFormDefinition.put("label", annotation.title());
1717

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

‎src/main/java/io/asfjava/ui/core/schema/CustomSchemaFactoryWrapper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
class CustomSchemaFactoryWrapper extends SchemaFactoryWrapper {
99

10-
private static class ASFSchemaFactoryWrapperFactory extends WrapperFactory {
10+
private static class SFSchemaFactoryWrapperFactory extends WrapperFactory {
1111
@Override
1212
public SchemaFactoryWrapper getWrapper(SerializerProvider p) {
1313
SchemaFactoryWrapper wrapper = new CustomSchemaFactoryWrapper();
@@ -29,7 +29,7 @@ public SchemaFactoryWrapper getWrapper(SerializerProvider p, VisitorContext rvc)
2929
};
3030

3131
CustomSchemaFactoryWrapper() {
32-
super(new ASFSchemaFactoryWrapperFactory());
32+
super(new SFSchemaFactoryWrapperFactory());
3333
schemaProvider = new CustomJsonSchemaFactory();
3434
}
3535
}

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

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.asfjava.ui.core.schema;
22

3-
import java.awt.List;
43
import java.util.Arrays;
54
import java.util.HashSet;
65
import java.util.Set;
@@ -10,6 +9,7 @@
109
import com.fasterxml.jackson.module.jsonSchema.types.StringSchema;
1110

1211
import io.asfjava.ui.core.form.ComboBox;
12+
import io.asfjava.ui.core.form.TextArea;
1313
import io.asfjava.ui.core.form.TextField;
1414

1515
class CustomStringSchema extends StringSchema {
@@ -30,6 +30,10 @@ public void enrichWithBeanProperty(BeanProperty beanProperty) {
3030
Set<String> enums = new HashSet<>(Arrays.asList(Comboannotation.values()));
3131
this.setEnums(enums);
3232
}
33+
TextArea textArea = beanProperty.getAnnotation(TextArea.class);
34+
if (textArea != null) {
35+
this.setTitle(textArea.title());
36+
}
3337
}
3438

3539
String getLayout() {

0 commit comments

Comments
 (0)
Please sign in to comment.