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.ui.vaadin.grid;
35
36 import java.util.Collection;
37 import java.util.Map;
38
39 import org.apache.commons.lang.StringEscapeUtils;
40 import org.slf4j.Logger;
41 import org.slf4j.LoggerFactory;
42
43 import com.vaadin.data.Property;
44 import com.vaadin.data.Validator;
45 import com.vaadin.shared.ui.treetable.TreeTableState;
46 import com.vaadin.ui.TreeTable;
47
48
49
50
51 public class MagnoliaTreeTable extends TreeTable {
52
53 private static Logger log = LoggerFactory.getLogger(MagnoliaTreeTable.class);
54
55 public MagnoliaTreeTable() {
56 addStyleName("v-magnolia-table");
57 setCacheRate(4);
58 }
59
60
61
62
63
64
65 @Override
66 public int indexOfId(Object itemId) {
67 return super.indexOfId(itemId);
68 }
69
70 @Override
71 protected String formatPropertyValue(Object rowId, Object colId, Property<?> property) {
72 String result = super.formatPropertyValue(rowId, colId, property);
73 return StringEscapeUtils.escapeHtml(result);
74 }
75
76 @Override
77 public void changeVariables(Object source, Map<String, Object> variables) {
78 super.changeVariables(source, variables);
79 if (variables.containsKey("selectAll")) {
80 boolean selectAll = (Boolean) variables.get("selectAll");
81 if (selectAll) {
82 Collection<?> ids = getItemIds();
83 for (final Object id : ids) {
84 select(id);
85 }
86 } else {
87 setValue(null);
88 }
89 }
90
91 if (variables.containsKey("toggleSelection")) {
92 boolean selected = (Boolean) variables.get("toggleSelection");
93 String key = String.valueOf(variables.get("toggledRowId"));
94 final Object id = itemIdMapper.get(key);
95 if (selected) {
96 select(id);
97 } else {
98 unselect(id);
99 }
100 }
101 }
102
103
104
105
106
107 @Override
108 protected TreeTableState getState() {
109 return (TreeTableState) getState(false);
110 }
111
112
113
114
115 @Override
116 public Collection<Validator> getValidators() {
117 return null;
118 }
119 }