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.AbstractOptionGroupFieldDefinition;
37 import info.magnolia.ui.field.CheckBoxGroupFieldDefinition;
38 import info.magnolia.ui.field.Layout;
39 import info.magnolia.ui.field.RadioButtonGroupFieldDefinition;
40 import info.magnolia.ui.form.field.definition.OptionGroupFieldDefinition;
41 import info.magnolia.ui.form.field.transformer.basic.ListToSetTransformer;
42
43
44
45
46 public class OptionGroupFieldDefinitionConverter extends AbstractSelectFieldDefinitionConverter<Object, AbstractOptionGroupFieldDefinition<Object>, OptionGroupFieldDefinition> {
47
48 @Override
49 public AbstractOptionGroupFieldDefinition<Object> convert(info.magnolia.ui.form.field.definition.OptionGroupFieldDefinition oldDefinition) {
50 AbstractOptionGroupFieldDefinition<Object> newDefinition = super.convert(oldDefinition);
51 newDefinition.setLayout(convertLayout(oldDefinition.getLayout()));
52 return newDefinition;
53 }
54
55 @Override
56 AbstractOptionGroupFieldDefinition<Object> createNewDefinition(OptionGroupFieldDefinition oldDefinition) {
57 return oldDefinition.isMultiselect() ? new CheckBoxGroupFieldDefinition() : new RadioButtonGroupFieldDefinition();
58 }
59
60 @Override
61 Object convertDefaultValue(OptionGroupFieldDefinition oldDefinition, AbstractOptionGroupFieldDefinition<Object> newDefinition) {
62 return newDefinition instanceof CheckBoxGroupFieldDefinition ? resolveDefaultValues(oldDefinition) : resolveDefaultValue(oldDefinition);
63 }
64
65 private Layout convertLayout(info.magnolia.ui.form.field.definition.Layout oldLayout) {
66 return (oldLayout == info.magnolia.ui.form.field.definition.Layout.vertical) ? Layout.vertical : Layout.horizontal;
67 }
68
69 @Override
70 protected boolean supportsTransformerClass(Class transformerClass) {
71 return transformerClass.equals(ListToSetTransformer.class);
72 }
73 }