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.field.factory;
35
36 import info.magnolia.objectfactory.ComponentProvider;
37 import info.magnolia.ui.field.ComboBoxFieldDefinition;
38 import info.magnolia.ui.field.SelectFieldSupport;
39
40 import java.util.Optional;
41
42 import javax.inject.Inject;
43
44 import com.vaadin.ui.ComboBox;
45
46
47
48
49
50
51
52 public class ComboBoxFieldFactory<T, D extends ComboBoxFieldDefinition<T>> extends AbstractSelectFieldFactory<D, T> {
53
54 @Inject
55 public ComboBoxFieldFactory(D definition, ComponentProvider componentProvider, SelectFieldSupport<T> selectFieldSupport) {
56 super(definition, componentProvider, selectFieldSupport);
57 }
58
59 @Override
60 protected ComboBox<T> createFieldComponent() {
61 final ComboBox<T> select = new ComboBox<>();
62 select.setScrollToSelectedItem(getDefinition().isScrollToSelectedItem());
63 select.setEmptySelectionAllowed(getDefinition().isEmptySelectionAllowed());
64 select.setTextInputAllowed(getDefinition().isTextInputAllowed());
65 select.setPopupWidth(getDefinition().getPopWidth());
66 select.setEmptySelectionCaption(getDefinition().getEmptySelectionCaption());
67 select.setPlaceholder(getDefinition().getPlaceholder());
68 select.setPageLength(getDefinition().getPageLength());
69 select.setNewItemProvider(Optional.ofNullable(getDefinition().getNewItemProviderClass())
70 .map(aClass -> componentProvider.newInstance(aClass))
71 .orElse(null)
72 );
73 return select;
74 }
75
76 }