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.security.app.tools;
35
36 import info.magnolia.i18nsystem.SimpleTranslator;
37 import info.magnolia.ui.framework.tools.DefaultFormToolView;
38 import info.magnolia.ui.vaadin.grid.MagnoliaTreeTable;
39
40 import javax.inject.Inject;
41
42 import com.vaadin.ui.CssLayout;
43 import com.vaadin.v7.data.Container;
44 import com.vaadin.v7.shared.ui.label.ContentMode;
45 import com.vaadin.v7.ui.Label;
46 import com.vaadin.v7.ui.Table;
47
48
49
50
51 public class DefaultSecurityToolView extends DefaultFormToolView implements SecurityToolView {
52 private MagnoliaTreeTable resultTable;
53 private Label emptyPlaceHolder;
54
55 @Inject
56 public DefaultSecurityToolView(SimpleTranslator i18n) {
57 setSizeFull();
58 createResultView(i18n.translate("security.tools.results.noResults"));
59 }
60
61 protected void createResultView(String noResultMessage) {
62 CssLayout resultLayout = new CssLayout();
63 resultLayout.addStyleName("result-wrapper top-spacing");
64 resultLayout.setSizeFull();
65
66 resultTable = new MagnoliaTreeTable();
67 resultTable.addStyleName("result-table no-header-checkbox not-selectable");
68 resultTable.setSelectable(false);
69 resultTable.setMultiSelect(false);
70 resultTable.setSortEnabled(false);
71 resultTable.setColumnHeaderMode(Table.ColumnHeaderMode.HIDDEN);
72 resultTable.setSizeFull();
73 resultTable.setVisible(false);
74
75 emptyPlaceHolder = new Label();
76 emptyPlaceHolder.setContentMode(ContentMode.HTML);
77 emptyPlaceHolder.setValue(String.format("<span class=\"icon-user-group icon-no-results\"></span><div class=\"message\">%s</div>", noResultMessage));
78 emptyPlaceHolder.addStyleName("emptyplaceholder");
79 emptyPlaceHolder.setSizeFull();
80 emptyPlaceHolder.setVisible(false);
81
82 resultLayout.addComponent(resultTable);
83 resultLayout.addComponent(emptyPlaceHolder);
84
85 addComponent(resultLayout);
86 setExpandRatio(resultLayout, 1f);
87 }
88
89 @Override
90 public void setDataSource(Container datasource) {
91 if (datasource != null) {
92 resultTable.setContainerDataSource(datasource);
93 }
94 for (Object itemId : resultTable.getItemIds()) {
95 resultTable.setCollapsed(itemId, false);
96 }
97
98 boolean showTable = datasource != null && datasource.size() > 0;
99 boolean showPlaceHolder = datasource != null && !showTable;
100 resultTable.setVisible(showTable);
101 emptyPlaceHolder.setVisible(showPlaceHolder);
102 }
103 }