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.event.EventBus;
37 import info.magnolia.event.HandlerRegistration;
38 import info.magnolia.event.SystemEventBus;
39 import info.magnolia.task.event.TaskEvent;
40 import info.magnolia.task.event.TaskEventHandler;
41 import info.magnolia.ui.api.ioc.UiContextScoped;
42 import info.magnolia.ui.framework.ioc.Destructible;
43 import info.magnolia.ui.observation.LocalManualDatasourceObservation;
44
45 import javax.inject.Inject;
46 import javax.inject.Named;
47
48 import com.vaadin.ui.UI;
49
50
51
52
53 @UiContextScoped
54 public class TaskDataSourceObservation extends LocalManualDatasourceObservation implements Destructible, TaskEventHandler {
55
56 private final HandlerRegistration taskEventHandler;
57
58 @Inject
59 TaskDataSourceObservation(UI ui, @Named(SystemEventBus.NAME) EventBus eventBus) {
60 super(ui);
61 taskEventHandler = eventBus.addHandler(TaskEvent.class, this);
62 }
63
64 @Override
65 public void destroy() {
66 taskEventHandler.removeHandler();
67 }
68
69 @Override
70 public void taskClaimed(TaskEvent taskEvent) {
71 trigger();
72 }
73
74 @Override
75 public void taskAdded(TaskEvent taskEvent) {
76 trigger();
77 }
78
79 @Override
80 public void taskArchived(TaskEvent taskEvent) {
81 trigger();
82 }
83
84 @Override
85 public void taskResolved(TaskEvent taskEvent) {
86 trigger();
87 }
88
89 @Override
90 public void taskFailed(TaskEvent taskEvent) {
91 trigger();
92 }
93
94 @Override
95 public void taskRemoved(TaskEvent taskEvent) {
96 trigger();
97 }
98
99 @Override
100 public void taskScheduled(TaskEvent taskEvent) {
101 trigger();
102 }
103 }