1 package info.magnolia.ui.contentapp.browser;
2
3 import info.magnolia.ui.contentapp.Datasource;
4
5 import java.util.function.Predicate;
6
7 import com.vaadin.ui.Grid;
8
9
10
11
12 class MagnoliaGridDecoration {
13
14 static <T> void addCommonConfiguration(Grid<T> grid,
15 Predicate<T> itemInteractionAvailability,
16 Datasource<T> datasource) {
17 grid.getEditor().addOpenListener(e -> {
18 if (!itemInteractionAvailability.test(e.getBean())) {
19 grid.getEditor().cancel();
20 grid.getDataProvider().refreshAll();
21 }
22 });
23 grid.addSelectionListener(e -> e.getAllSelectedItems().forEach(item -> {
24 if (!itemInteractionAvailability.test(item)) {
25 grid.deselect(item);
26 }
27 }));
28 }
29
30 }