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.cache.browser.app;
35
36 import info.magnolia.cache.browser.rest.CacheServiceFactory;
37 import info.magnolia.event.EventBus;
38 import info.magnolia.objectfactory.ComponentProvider;
39 import info.magnolia.ui.api.app.AppEventBus;
40 import info.magnolia.ui.workbench.column.definition.ColumnDefinition;
41 import info.magnolia.ui.workbench.definition.ContentPresenterDefinition;
42 import info.magnolia.ui.workbench.list.ListPresenter;
43 import info.magnolia.ui.workbench.list.ListView;
44
45 import javax.inject.Inject;
46 import javax.inject.Named;
47
48 import com.vaadin.v7.data.Container;
49
50
51
52
53 public class CacheBrowserListPresenter extends ListPresenter {
54
55 private final CacheServiceFactory cacheServiceFactory;
56 private final EventBus eventBus;
57
58 @Inject
59 public CacheBrowserListPresenter(ListView view, ComponentProvider componentProvider, CacheServiceFactory cacheServiceFactory, @Named(AppEventBus.NAME) EventBus eventBus) {
60 super(view, componentProvider);
61 this.cacheServiceFactory = cacheServiceFactory;
62 this.eventBus = eventBus;
63 }
64
65 @Override
66 protected Container initializeContainer() {
67 CacheBrowserContentConnectorDefinition contentConnectorDefinition = (CacheBrowserContentConnectorDefinition) ((CacheBrowserContentConnector) contentConnector).getContentConnectorDefinition();
68 Container container = new CacheBrowserContainer(contentConnectorDefinition, cacheServiceFactory, eventBus);
69 configureContainer(getPresenterDefinition(), container);
70 ((CacheBrowserContentConnector) contentConnector).setContainer((CacheBrowserContainer) container);
71 return container;
72 }
73
74 protected void configureContainer(ContentPresenterDefinition presenterDefinition, Container container) {
75 for (ColumnDefinition column : presenterDefinition.getColumns()) {
76 String propertyId = column.getPropertyName() != null ? column.getPropertyName() : column.getName();
77 container.addContainerProperty(propertyId, column.getType(), null);
78 if (container instanceof CacheBrowserContainer) {
79 if (column.isSortable()) {
80 ((CacheBrowserContainer) container).getSortableContainerPropertyIds().add(propertyId);
81 }
82 }
83 }
84 }
85 }