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.i18nsystem.SimpleTranslator;
38 import info.magnolia.task.TasksManager;
39 import info.magnolia.task.app.data.TaskCategory;
40 import info.magnolia.task.app.view.TasksBrowserDescriptor;
41 import info.magnolia.ui.api.app.SubAppContext;
42 import info.magnolia.ui.api.app.SubAppDescriptor;
43 import info.magnolia.ui.contentapp.ContentBrowserSubApp;
44 import info.magnolia.ui.framework.ViewProvider;
45
46 import java.util.Arrays;
47
48 import javax.inject.Inject;
49
50
51
52
53 public class TasksSubApp extends ContentBrowserSubApp {
54
55 private final TasksManager tasksManager;
56 private final SimpleTranslator simpleTranslator;
57 private final String userName;
58
59 @Inject
60 public TasksSubApp(SubAppContext subAppContext, ViewProvider viewProvider, TasksManager tasksManager, SimpleTranslator simpleTranslator, Context context) {
61 super(subAppContext, viewProvider);
62 this.tasksManager = tasksManager;
63 this.simpleTranslator = simpleTranslator;
64 this.userName = context.getUser().getName();
65 }
66
67 @Override
68 public String getCaption() {
69 SubAppDescriptor subAppDescriptor = getSubAppContext().getSubAppDescriptor();
70 String label = subAppDescriptor.getLabel();
71 if (subAppDescriptor instanceof TasksBrowserDescriptor) {
72 TaskCategory category = ((TasksBrowserDescriptor) subAppDescriptor).getCategory();
73 if (category != null) {
74 String name = simpleTranslator.translate(category.getI18nKey());
75 final long unclearedTasksForUser = tasksManager.getTasksAmountByUserAndStatus(userName, Arrays.asList(category.getStatus().orElse(null)));
76 label = unclearedTasksForUser > 0 ? String.format("Task | %s (%s)", name, unclearedTasksForUser) : name;
77 }
78 }
79 return label;
80 }
81 }