1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.form.field.definition.migration;
35
36 import info.magnolia.ui.field.TextFieldDefinition;
37 import info.magnolia.ui.form.field.converter.StringToCalendarConverter;
38
39 import java.util.HashMap;
40 import java.util.Map;
41
42 import javax.jcr.PropertyType;
43
44 import com.vaadin.data.Converter;
45 import com.vaadin.data.converter.StringToBooleanConverter;
46 import com.vaadin.data.converter.StringToDoubleConverter;
47 import com.vaadin.data.converter.StringToLongConverter;
48
49
50
51
52 public class TextFieldDefinitionConverter extends AbstractConfiguredFieldDefinitionConverter<String, TextFieldDefinition, info.magnolia.ui.form.field.definition.TextFieldDefinition> {
53
54 private Map<String, Class> supportedTypes = new HashMap<String, Class>() {{
55 put(PropertyType.TYPENAME_BOOLEAN, StringToBooleanConverter.class);
56 put(PropertyType.TYPENAME_DOUBLE, StringToDoubleConverter.class);
57 put(PropertyType.TYPENAME_LONG, StringToLongConverter.class);
58 }};
59
60 @Override
61 public TextFieldDefinition convert(info.magnolia.ui.form.field.definition.TextFieldDefinition oldDefinition) {
62 TextFieldDefinition newDefinition = super.convert(oldDefinition);
63 newDefinition.setRows(oldDefinition.getRows());
64 newDefinition.setMaxLength(oldDefinition.getMaxLength());
65 newDefinition.setPlaceholder(oldDefinition.getPlaceholder());
66 if (oldDefinition.getConverterClass() == null) {
67 newDefinition.setConverterClass(supportedTypes.getOrDefault(oldDefinition.getType(), null));
68 }
69 return newDefinition;
70 }
71
72 @Override
73 TextFieldDefinition createNewDefinition(info.magnolia.ui.form.field.definition.TextFieldDefinition oldDefinition) {
74 return new TextFieldDefinition();
75 }
76
77 @Override
78 String convertDefaultValue(info.magnolia.ui.form.field.definition.TextFieldDefinition oldDefinition, TextFieldDefinition newDefinition) {
79 return oldDefinition.getDefaultValue();
80 }
81
82 @Override
83 protected Class<? extends Converter<String, ?>> convertConverterClass(Class<?> oldConverterClass) {
84 return StringToCalendarConverter.class == oldConverterClass ? null : super.convertConverterClass(oldConverterClass);
85 }
86
87 @Override
88 protected boolean supportsConverterClass(Class converterClass) {
89 return converterClass == StringToCalendarConverter.class ||
90 super.supportsConverterClass(converterClass);
91 }
92
93 @Override
94 protected boolean supportsType(String type) {
95 return supportedTypes.containsKey(type);
96 }
97 }