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 }