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.module.googlesitemap.app.subapp.sitemapdetail.contentviews.virtualuris;
35
36 import info.magnolia.module.googlesitemap.bean.SiteMapEntry;
37 import info.magnolia.ui.vaadin.grid.MagnoliaTable;
38 import info.magnolia.ui.workbench.list.ListViewImpl;
39
40 import org.apache.commons.lang3.StringUtils;
41
42 import com.vaadin.data.Container;
43 import com.vaadin.data.Property;
44 import com.vaadin.ui.Table;
45
46
47
48
49 public class SitemapListViewImpl extends ListViewImpl implements SitemapListView {
50
51 @Override
52 protected Table createTable(Container container) {
53 MagnoliaTable table = new MagnoliaTable() {
54 @Override
55 protected String formatPropertyValue(Object rowId, Object colId, Property<?> property) {
56 if (SiteMapEntry.SITE_ALERT_NAME.equals(colId)) {
57 StringBuilder sb = new StringBuilder("<span class=\"").
58 append(!(Boolean) property.getValue() ? "icon-tick" : "icon-close").
59 append("\"></span>");
60 return sb.toString();
61 }
62
63 Object value = property.getValue();
64 if (value == null || StringUtils.isEmpty(String.valueOf(value))) {
65 return "-";
66 }
67 return super.formatPropertyValue(rowId, colId, property);
68 }
69 };
70 table.setContainerDataSource(container);
71 return table;
72 }
73
74 @Override
75 public void setColumnAlignment(Object columnId, Table.Align alignment) {
76 ((Table)asVaadinComponent()).setColumnAlignment(columnId, alignment);
77 }
78 }