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.admincentral.apps.notifications.view.column;
35
36 import info.magnolia.ui.api.message.Message;
37 import info.magnolia.ui.contentapp.configuration.column.ConfiguredColumnDefinition;
38
39 import org.jsoup.Jsoup;
40 import org.jsoup.safety.Whitelist;
41
42 import com.vaadin.data.ValueProvider;
43 import com.vaadin.ui.renderers.AbstractRenderer;
44 import com.vaadin.ui.renderers.HtmlRenderer;
45
46 import lombok.Getter;
47 import lombok.Setter;
48
49
50
51
52 @Getter
53 @Setter
54 public class NotificationTextColumnDefinition extends ConfiguredColumnDefinition {
55
56 public static final double MAX_NOTI_TEXT_WIDTH = 300.0;
57
58 @Override
59 public Class<? extends AbstractRenderer> getRenderer() {
60 return HtmlRenderer.class;
61 }
62
63 @Override
64 public Class<? extends ValueProvider> getValueProvider() {
65 return MessageTextValueProvider.class;
66 }
67
68 @Override
69 public Double getLargeContentColumnWidth() {
70 return MAX_NOTI_TEXT_WIDTH;
71 }
72
73
74
75
76 public class MessageTextValueProvider implements ValueProvider<Message, String> {
77
78 public MessageTextValueProvider() {}
79
80 @Override
81 public String apply(Message message) {
82 final String notificationText =
83 "<div class='notification-text'>" +
84 "<div class='notification-text-header'>"
85 + Jsoup.clean(message.getSubject(), Whitelist.simpleText())
86 + "</div>"
87 + "<div class='notification-text-content'>"
88 + Jsoup.clean(message.getMessage(), Whitelist.simpleText())
89 + "</div>"
90 + "</div>";
91 return notificationText;
92 }
93 }
94
95 }