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.view.column;
35
36 import info.magnolia.icons.MagnoliaIcons;
37 import info.magnolia.task.Task;
38 import info.magnolia.ui.contentapp.configuration.column.ConfiguredColumnDefinition;
39
40 import org.apache.commons.lang3.StringUtils;
41 import org.jsoup.Jsoup;
42 import org.jsoup.safety.Whitelist;
43
44 import com.vaadin.data.ValueProvider;
45 import com.vaadin.ui.renderers.AbstractRenderer;
46 import com.vaadin.ui.renderers.HtmlRenderer;
47
48
49
50
51 public class TaskSendToColumnDefinition extends ConfiguredColumnDefinition {
52
53 @Override
54 public Class<? extends AbstractRenderer> getRenderer() {
55 return HtmlRenderer.class;
56 }
57
58 @Override
59 public Class<? extends ValueProvider> getValueProvider() {
60 return TaskSendToColumnValueProvider.class;
61 }
62
63
64
65
66 public class TaskSendToColumnValueProvider implements ValueProvider<Task, String> {
67
68 @Override
69 public String apply(Task task) {
70 StringBuilder html = new StringBuilder();
71 if (task.getGroupIds() != null && task.getGroupIds().size() > 0) {
72 html.append(MagnoliaIcons.USER_GROUP.getHtml())
73 .append(" <span style='height:59px; padding-top:16px; padding-left:8px'>")
74 .append(Jsoup.clean(StringUtils.join(task.getGroupIds(), ","), Whitelist.simpleText()))
75 .append("</span>");
76 }
77 if (task.getActorIds() != null && task.getActorIds().size() > 0) {
78 html.append(MagnoliaIcons.USER_ANYONE.getHtml())
79 .append(" <span style='height:59px; padding-top:16px; padding-left:8px'>")
80 .append(Jsoup.clean(StringUtils.join(task.getActorIds(), ","), Whitelist.simpleText()))
81 .append("</span>");
82 }
83 return html.toString();
84 }
85 }
86 }