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.framework.chooser;
35
36 import info.magnolia.ui.framework.chooser.definition.SingleItemWorkbenchChooserDefinition;
37 import info.magnolia.ui.framework.datasource.definition.DatasourceDefinition;
38
39 import java.util.Collections;
40 import java.util.Iterator;
41 import java.util.function.Consumer;
42
43 import com.vaadin.ui.Component;
44
45
46
47
48
49
50
51 public class SingleItemWorkbenchChooser<T> implements Chooser<T> {
52
53 private final WorkbenchChooser<T> workbenchChooser;
54
55 public SingleItemWorkbenchChooser(SingleItemWorkbenchChooserDefinition<T> definition) {
56 workbenchChooser = create(definition.getWorkbenchChooser());
57 }
58
59 @Override
60 public String getTitle() {
61 return workbenchChooser.getTitle();
62 }
63
64 @Override
65 public Component asVaadinComponent() {
66 return workbenchChooser.asVaadinComponent();
67 }
68
69 @Override
70 public void onChange(Consumer<T> callback) {
71 workbenchChooser.onChange(items ->
72 callback.accept(items.iterator().hasNext() ? items.iterator().next() : null));
73 }
74
75 @Override
76 public T getChoice() {
77 final Iterator<T> iterator = workbenchChooser.getChoice().iterator();
78 return iterator.hasNext() ? iterator.next() : null;
79 }
80
81 @Override
82 public void setChoice(T choice) {
83 workbenchChooser.setChoice(choice == null ? Collections.emptySet() : Collections.singleton(choice));
84 }
85 }