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.poc.extensions;
35
36 import javax.validation.constraints.NotNull;
37
38 import com.vaadin.data.Binder;
39 import com.vaadin.data.Validator;
40 import com.vaadin.data.ValueProvider;
41 import com.vaadin.server.AbstractClientConnector;
42 import com.vaadin.server.AbstractExtension;
43 import com.vaadin.server.Setter;
44 import com.vaadin.ui.AbstractField;
45
46
47
48
49 public class StringFieldValidationExtension extends AbstractExtension {
50
51 protected StringFieldValidationExtension(AbstractClientConnector component) {
52 extend(component);
53 }
54
55 public static StringFieldValidationExtension extendValidationFor(AbstractClientConnector component) {
56 return new StringFieldValidationExtension(component);
57 }
58
59 public static StringFieldValidationExtension extendValidationFor(@NotNull AbstractField component, @NotNull Validator... validators) {
60 Binder<String> textBinder = new Binder<>();
61 ValueProvider<String, String> getter = (ValueProvider<String, String>) s -> s;
62 Setter<String, String> setter = (Setter<String, String>) (s, s2) -> {
63 };
64 Binder.BindingBuilder bindingBuilder = textBinder.forField(component);
65 for (Validator v : validators) {
66 bindingBuilder = bindingBuilder.withValidator(v);
67
68 }
69 bindingBuilder.bind(getter, setter);
70 return new StringFieldValidationExtension(component);
71 }
72
73 }