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.user;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.vaadin.navigator7.Navigator.NavigationEvent;
25 import org.vaadin.navigator7.Page;
26 import org.vaadin.navigator7.ParamChangeListener;
27 import org.vaadin.navigator7.uri.Param;
28
29 import com.hack23.cia.model.internal.application.data.impl.AggregatedBugData;
30 import com.hack23.cia.service.api.DataContainer;
31 import com.vaadin.data.Property;
32 import com.vaadin.data.Property.ValueChangeEvent;
33 import com.vaadin.ui.Alignment;
34 import com.vaadin.ui.GridLayout;
35 import com.vaadin.ui.ListSelect;
36 import com.vaadin.ui.Panel;
37
38
39
40
41 @Page(uriName = "politician", crawlable = true)
42 @SuppressWarnings("serial")
43 public final class PoliticianPage extends AbstractUserPage implements
44 Property.ValueChangeListener, ParamChangeListener {
45
46
47 @Param(pos = 0, required = false)
48 private String country="";
49
50
51 @Param(pos = 1, required = false)
52 private String party="";
53
54
55 @Param(pos = 2, required = false)
56 private String id="";
57
58
59 @Param(pos = 3, required = false)
60 private String name="";
61
62
63 private AggregatedBugDataPanel targetSelectPanel = null;
64
65
66
67
68 public PoliticianPage() {
69 super();
70 final GridLayout grid = new GridLayout(10, 8);
71 grid.setSpacing(true);
72
73 final DataContainer<AggregatedBugData, String> dataContainer = getApplicationManager()
74 .getDataContainer(AggregatedBugData.class);
75
76 final List<String> countryNames = new ArrayList<String>();
77 final List<AggregatedBugData> all = dataContainer.getAll();
78
79 final ListSelect targetSelect = new ListSelect(
80 "Please select target politician", countryNames);
81
82
83
84
85
86
87 targetSelect.setImmediate(true);
88 targetSelect.addListener(this);
89 grid.addComponent(targetSelect, 0, 0, 9, 0);
90 grid.setComponentAlignment(targetSelect, Alignment.MIDDLE_CENTER);
91 targetSelect.setSizeFull();
92
93 targetSelectPanel = new AggregatedBugDataPanel(all.iterator().next());
94 grid.addComponent(targetSelectPanel, 0, 1, 1, 7);
95 grid.setComponentAlignment(targetSelectPanel, Alignment.MIDDLE_CENTER);
96 targetSelectPanel.setSizeFull();
97
98 final Panel operationalAgentPanel = new Panel(
99 "Budget/Cost & Operational Statements Panel");
100 grid.addComponent(operationalAgentPanel, 2, 1, 7, 4);
101 grid.setComponentAlignment(operationalAgentPanel,
102 Alignment.MIDDLE_CENTER);
103 operationalAgentPanel.setSizeFull();
104
105 final Panel targetQAPanel = new Panel("Quality Assurance Results");
106 grid.addComponent(targetQAPanel, 2, 5, 7, 7);
107 grid.setComponentAlignment(targetQAPanel, Alignment.MIDDLE_CENTER);
108 targetQAPanel.setSizeFull();
109
110 final Panel targetPerformanceIndicatorsPanel = new Panel(
111 "Performance Indicators ");
112 grid.addComponent(targetPerformanceIndicatorsPanel, 8, 1, 9, 5);
113 grid.setComponentAlignment(targetPerformanceIndicatorsPanel,
114 Alignment.MIDDLE_CENTER);
115 targetPerformanceIndicatorsPanel.setSizeFull();
116
117 final Panel targetOpenDataAccessPanel = new Panel("Data");
118 grid.addComponent(targetOpenDataAccessPanel, 8, 6, 9, 7);
119 grid.setComponentAlignment(targetOpenDataAccessPanel,
120 Alignment.MIDDLE_CENTER);
121 targetOpenDataAccessPanel.setSizeFull();
122
123 grid.setSizeFull();
124 grid.setMargin(true);
125 grid.setSpacing(true);
126 setCompositionRoot(grid);
127 setHeight(getScreenHeight());
128
129 }
130
131
132
133
134 @Override
135 public void paramChanged(final NavigationEvent navigationEvent) {
136 final DataContainer<AggregatedBugData, String> dataContainer = getApplicationManager()
137 .getDataContainer(AggregatedBugData.class);
138 final AggregatedBugData bug = dataContainer.load(country + "/" + party + "/" + id + "/" + name);
139
140 if (bug != null) {
141 targetSelectPanel.update(bug);
142 } else {
143 targetSelectPanel.update(dataContainer.getAll().iterator().next());
144 }
145 }
146
147
148
149
150 @Override
151 public void valueChange(final ValueChangeEvent event) {
152 final DataContainer<AggregatedBugData, String> dataContainer = getApplicationManager()
153 .getDataContainer(AggregatedBugData.class);
154 final AggregatedBugData countryData = dataContainer.load(event.getProperty()
155 .toString());
156
157 targetSelectPanel.update(countryData);
158 }
159
160
161
162
163 @Override
164 public String getPageTitle() {
165 return "";
166 }
167
168 }