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.module.mail.app.field.transformer;
35
36 import info.magnolia.ui.form.field.definition.CompositeFieldDefinition;
37 import info.magnolia.ui.form.field.definition.ConfiguredFieldDefinition;
38 import info.magnolia.ui.form.field.definition.SwitchableFieldDefinition;
39 import info.magnolia.ui.form.field.transformer.basic.BasicTransformer;
40 import info.magnolia.ui.vaadin.integration.jcr.DefaultProperty;
41
42 import java.util.Iterator;
43 import java.util.List;
44
45 import com.vaadin.v7.data.Item;
46 import com.vaadin.v7.data.Property;
47 import com.vaadin.v7.data.util.PropertysetItem;
48
49
50
51
52
53
54 @Deprecated
55 public class MailSecurityTransformer extends BasicTransformer<PropertysetItem> {
56
57 protected List<String> fieldsName;
58 protected String compositeFieldName = "composite";
59
60 public MailSecurityTransformer(Item relatedFormItem, ConfiguredFieldDefinition definition, Class<PropertysetItem> type, List<String> fieldsName) {
61 super(relatedFormItem, definition, type);
62 fieldsName.clear();
63 List<ConfiguredFieldDefinition> fields = ((SwitchableFieldDefinition) definition).getFields();
64 for (ConfiguredFieldDefinition field : fields) {
65 if (field instanceof CompositeFieldDefinition) {
66 fieldsName.addAll(((CompositeFieldDefinition) field).getFieldsName());
67 }
68 }
69 this.fieldsName = fieldsName;
70 }
71
72 @Override
73 public void writeToItem(PropertysetItem newValues) {
74
75 Iterator<?> propertyNames = newValues.getItemPropertyIds().iterator();
76
77 while (propertyNames.hasNext()) {
78 String propertyName = (String) propertyNames.next();
79 if (propertyName.equals(compositeFieldName)) {
80 PropertysetItem values = (PropertysetItem) newValues.getItemProperty(propertyName).getValue();
81 Iterator<?> names = values.getItemPropertyIds().iterator();
82
83 while (names.hasNext()) {
84 String name = (String) names.next();
85 Property<?> property = relatedFormItem.getItemProperty(name);
86 if (property == null) {
87 relatedFormItem.addItemProperty(name, values.getItemProperty(name));
88 }
89 }
90 }
91 }
92
93
94 String propertyName = definePropertyName();
95
96 if (newValues.getItemProperty(propertyName) != null) {
97 relatedFormItem.addItemProperty(propertyName, newValues.getItemProperty(propertyName));
98 }
99 }
100
101 @Override
102 public PropertysetItem readFromItem() {
103 PropertysetItem compositeFielNewValues = new PropertysetItem();
104 for (String propertyName : fieldsName) {
105 if (relatedFormItem.getItemProperty(propertyName) != null) {
106 compositeFielNewValues.addItemProperty(propertyName, relatedFormItem.getItemProperty(propertyName));
107 }
108 }
109
110
111 PropertysetItem newValue = new PropertysetItem();
112 newValue.addItemProperty(compositeFieldName, new DefaultProperty<>(PropertysetItem.class, compositeFielNewValues));
113
114
115 String propertyName = definePropertyName();
116 if (relatedFormItem.getItemProperty(propertyName) != null) {
117 newValue.addItemProperty(propertyName, relatedFormItem.getItemProperty(propertyName));
118 }
119
120 return newValue;
121 }
122 }