1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.hack23.cia.web.impl.ui.page.admin;
20
21 import java.util.Arrays;
22 import java.util.List;
23
24 import org.vaadin.navigator7.Page;
25 import org.vaadin.vaadinvisualizations.Table;
26
27 import com.hack23.cia.model.internal.application.data.impl.DataAgentOperation;
28 import com.hack23.cia.model.internal.application.data.impl.DataAgentTarget;
29 import com.hack23.cia.model.internal.application.data.impl.DataAgentWorkOrder;
30 import com.hack23.cia.service.api.DataContainer;
31 import com.hack23.cia.service.api.DataSummary;
32 import com.hack23.cia.service.api.DataSummary.DataSummaryId;
33 import com.vaadin.ui.Button;
34 import com.vaadin.ui.Button.ClickEvent;
35 import com.vaadin.ui.Component;
36 import com.vaadin.ui.Label;
37 import com.vaadin.ui.Select;
38 import com.vaadin.ui.VerticalLayout;
39
40
41
42
43 @Page(uriName = "admin", crawlable = true)
44 @SuppressWarnings("serial")
45 public final class AdminPage extends AbstractAdminPage implements
46 Button.ClickListener {
47
48
49 private final VerticalLayout content = new VerticalLayout();
50
51
52 private final Button startAgentButton;
53
54
55 private final Select targetSelect;
56
57
58 private final Select operationSelect;
59
60
61
62
63 public AdminPage() {
64 super();
65 final Label label = new Label(translateFromEnglish("Admin"));
66 label.setWidth(100, Component.UNITS_PERCENTAGE);
67 content.addComponent(label);
68
69 final DataContainer<DataSummary, DataSummaryId> dataContainer = getApplicationManager()
70 .getDataContainer(DataSummary.class);
71
72 final List<DataSummary> all = dataContainer.getAll();
73
74 final DataSummary dataSummary = all.iterator().next();
75
76 final Table summaryTable = new Table();
77 summaryTable.setOption("allowHtml", true);
78 summaryTable.setOption("showRowNumber", true);
79
80 summaryTable.addTableColumn(translateFromEnglish("Name"), "string");
81 summaryTable.addTableColumn(translateFromEnglish("Size"), "number");
82 summaryTable.addTableColumn(translateFromEnglish("Missing"), "number");
83
84 summaryTable.add(new String[] { "Parliament member",
85 "" + dataSummary.personSize, 0 + "" });
86 summaryTable.add(new String[] { "DocumentElement",
87 "" + dataSummary.documentElementSize, 0 + "" });
88 summaryTable.add(new String[] {
89 "documentContent",
90 "" + dataSummary.documentContentSize,
91 dataSummary.documentElementSize
92 - dataSummary.documentContentSize + "" });
93 summaryTable.add(new String[] {
94 "documentStatus",
95 "" + dataSummary.documentStatusSize,
96 dataSummary.documentElementSize
97 - dataSummary.documentStatusSize + "" });
98 summaryTable.add(new String[] { "committeeProposalSize",
99 "" + dataSummary.committeeProposalSize, 0 + "" });
100 summaryTable.add(new String[] { "Votes", "" + dataSummary.voteSize,
101 dataSummary.totalBallotVotes - dataSummary.voteSize + "" });
102
103 summaryTable.setHeight("200px");
104
105 content.addComponent(summaryTable);
106
107
108 targetSelect = new Select(translateFromEnglish("Target"), Arrays.asList(DataAgentTarget
109 .values()));
110 content.addComponent(targetSelect);
111
112 operationSelect = new Select(translateFromEnglish("Operation"),
113 Arrays.asList(DataAgentOperation.values()));
114 content.addComponent(operationSelect);
115
116 startAgentButton = new Button(translateFromEnglish("Start"), this);
117 content.addComponent(startAgentButton);
118
119 content.setWidth(100, Component.UNITS_PERCENTAGE);
120 content.setSizeFull();
121 content.setMargin(false);
122 content.setSpacing(true);
123 setCompositionRoot(content);
124 setHeight(null);
125
126
127 }
128
129
130
131
132
133
134
135 @Override
136 public void buttonClick(final ClickEvent event) {
137 try {
138 final DataAgentWorkOrder dataAgentWorkOrder = new DataAgentWorkOrder();
139 final DataAgentTarget target = DataAgentTarget.valueOf(targetSelect
140 .getValue().toString());
141 dataAgentWorkOrder.setTarget(target);
142 dataAgentWorkOrder.setOperation(DataAgentOperation
143 .valueOf(operationSelect.getValue().toString()));
144
145 getApplicationManager().getAgentContainer().execute(
146 dataAgentWorkOrder);
147
148 } catch (final Exception e) {
149 getApplication().getMainWindow().showNotification(e.getMessage());
150 }
151 }
152
153
154
155
156 @Override
157 public String getPageTitle() {
158 return "";
159 }
160
161 }