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.task.app;
35
36 import info.magnolia.context.Context;
37 import info.magnolia.objectfactory.ComponentProvider;
38 import info.magnolia.task.Task;
39 import info.magnolia.task.TasksManager;
40 import info.magnolia.ui.availability.AvailabilityChecker;
41 import info.magnolia.ui.contentapp.Datasource;
42 import info.magnolia.ui.contentapp.FilterableListDataProvider;
43 import info.magnolia.ui.contentapp.browser.ListPresenter;
44 import info.magnolia.ui.contentapp.configuration.GridViewDefinition;
45
46 import javax.inject.Inject;
47 import javax.inject.Provider;
48
49 import com.vaadin.data.BeanPropertySet;
50 import com.vaadin.data.PropertySet;
51
52
53
54
55 public class TaskListPresenter extends ListPresenter<Task> {
56
57 private final TasksManager tasksManager;
58 private final TasksDataSourceDefinition dataSourceDefinition;
59 private final Provider<Context> contextProvider;
60
61 @Inject
62 public TaskListPresenter(GridViewDefinition<Task> definition,
63 ComponentProvider componentProvider,
64 AvailabilityChecker<Task> availabilityChecker,
65 TasksManager tasksManager,
66 TasksDataSourceDefinition dataSourceDefinition,
67 Datasource<Task> datasource,
68 TaskDataSourceObservation datasourceObservation,
69 Provider<Context> contextProvider
70 ) {
71 super(definition, componentProvider, availabilityChecker, datasource, datasourceObservation);
72 this.tasksManager = tasksManager;
73 this.dataSourceDefinition = dataSourceDefinition;
74 this.contextProvider = contextProvider;
75 }
76
77 @Override
78 public FilterableListDataProvider<Task> createDataProvider() {
79 return FilterableListDataProvider.wrap(new TasksDataProvider(tasksManager, contextProvider, dataSourceDefinition));
80 }
81
82 @Override
83 protected PropertySet<Task> createPropertySet() {
84 return BeanPropertySet.get(Task.class);
85 }
86 }