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.messages.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 MessageTextColumnDefinition extends ConfiguredColumnDefinition {
55
56 @Override
57 public Class<? extends AbstractRenderer> getRenderer() {
58 return HtmlRenderer.class;
59 }
60
61 @Override
62 public Class<? extends ValueProvider> getValueProvider() {
63 return MessageTextValueProvider.class;
64 }
65
66 @Override
67 public Double getLargeContentColumnWidth() {
68 return 300.0;
69 }
70
71
72
73
74 public class MessageTextValueProvider implements ValueProvider<Message, String> {
75
76 public MessageTextValueProvider() {}
77
78 @Override
79 public String apply(Message message) {
80 final String msgText =
81 "<div class='message-text'>" +
82 "<span class='message-text-header'>"
83 + Jsoup.clean(message.getSubject(), Whitelist.simpleText())
84 + "</span>"
85 + "<br/>"
86 + "<span class='message-text-content'>"
87 + Jsoup.clean(message.getMessage(), Whitelist.simpleText())
88 + "</span>"
89 + "</div>";
90 return msgText;
91 }
92 }
93
94 }