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.application.views.common.pagelinks.impl;
20
21 import org.springframework.stereotype.Service;
22
23 import com.hack23.cia.model.external.riksdagen.person.impl.PersonData;
24 import com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommittee;
25 import com.hack23.cia.model.internal.application.data.ministry.impl.ViewRiksdagenMinistry;
26 import com.hack23.cia.model.internal.application.data.party.impl.ViewRiksdagenParty;
27 import com.hack23.cia.web.impl.ui.application.action.ViewAction;
28 import com.hack23.cia.web.impl.ui.application.util.UserContextUtil;
29 import com.hack23.cia.web.impl.ui.application.views.common.pagelinks.api.PageLinkFactory;
30 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.AdminViews;
31 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.ApplicationPageMode;
32 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.CommonsViews;
33 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.UserViews;
34 import com.vaadin.server.ExternalResource;
35 import com.vaadin.server.FontAwesome;
36 import com.vaadin.ui.Link;
37
38
39
40
41 @Service
42 public final class PageLinkFactoryImpl implements PageLinkFactory {
43
44
45 private static final Character PAGE_SEPARATOR = '/';
46
47
48 private static final String SEARCH = "Search";
49
50
51 private static final String POLITICIAN = "Politician ";
52
53
54 private static final String PARTY = "Party ";
55
56
57 private static final String PAGE_PREFIX = "#!";
58
59
60 private static final String MINISTRY = "Ministry ";
61
62
63 private static final String COMMITTEE = "Committee ";
64
65
66 private static final String ADMIN_AGENT_OPERATIONS_LINK_TEXT = "Admin Agent Operations";
67
68
69 private static final String ADMIN_DATA_SUMMARY_LINK_TEXT = "Admin Data Summary";
70
71
72 private static final String POLITICIAN_RANKING_LINK_TEXT = "Politician Ranking";
73
74
75 private static final String PARTY_RANKING_LINK_TEXT = "Party Ranking";
76
77
78 private static final String COMMITTEE_RANKING_LINK_TEXT = "Committee Ranking";
79
80
81 private static final String MINISTRY_RANKING_LINK_TEXT = "Ministry Ranking";
82
83
84 private static final String COUNTRY_RANKING_LINK_TEXT = "Country Ranking";
85
86
87 private static final String PARLIAMENT_RANKING_LINK_TEXT = "Parliament Ranking";
88
89
90 private static final String LINK_SEPARATOR = PAGE_PREFIX;
91
92
93 private static final String MAIN_VIEW_LINK_TEXT = "Main View";
94
95 @Override
96 public Link createMainViewPageLink() {
97 final Link pageLink = new Link(MAIN_VIEW_LINK_TEXT, new ExternalResource(
98 LINK_SEPARATOR + CommonsViews.MAIN_VIEW_NAME));
99 pageLink.setId(ViewAction.VISIT_MAIN_VIEW.name());
100 pageLink.setIcon(FontAwesome.STAR);
101 return pageLink;
102 }
103
104 @Override
105 public Link createRegisterPageLink() {
106 final Link pageLink = new Link("Register", new ExternalResource(
107 LINK_SEPARATOR + CommonsViews.MAIN_VIEW_NAME + PAGE_SEPARATOR + ApplicationPageMode.REGISTER));
108 pageLink.setId(ViewAction.VISIT_REGISTER.name());
109 pageLink.setIcon(FontAwesome.USER_PLUS);
110 return pageLink;
111 }
112
113 @Override
114 public Link createLoginPageLink() {
115 final Link pageLink = new Link("Login", new ExternalResource(
116 LINK_SEPARATOR + CommonsViews.MAIN_VIEW_NAME + PAGE_SEPARATOR + ApplicationPageMode.LOGIN));
117 pageLink.setId(ViewAction.VISIT_LOGIN.name());
118 pageLink.setIcon(FontAwesome.SIGN_IN);
119 return pageLink;
120 }
121
122
123 @Override
124 public Link createCountryRankingViewPageLink() {
125 final Link pageLink = new Link(COUNTRY_RANKING_LINK_TEXT,
126 new ExternalResource(LINK_SEPARATOR + UserViews.COUNTRY_RANKING_VIEW_NAME));
127 pageLink.setId(ViewAction.VISIT_TEST_CHART_VIEW.name());
128 pageLink.setIcon(FontAwesome.FLAG);
129 return pageLink;
130 }
131
132 @Override
133 public Link createParliamentViewPageLink() {
134 final Link pageLink = new Link(PARLIAMENT_RANKING_LINK_TEXT,
135 new ExternalResource(LINK_SEPARATOR + UserViews.PARLIAMENT_RANKING_VIEW_NAME));
136 pageLink.setId(ViewAction.VISIT_TEST_CHART_VIEW.name());
137 pageLink.setIcon(FontAwesome.INSTITUTION);
138 return pageLink;
139 }
140
141
142 @Override
143 public Link createMinistryRankingViewPageLink() {
144 final Link pageLink = new Link(MINISTRY_RANKING_LINK_TEXT, new ExternalResource(
145 LINK_SEPARATOR + UserViews.MINISTRY_RANKING_VIEW_NAME));
146 pageLink.setId(ViewAction.VISIT_MINISTRY_RANKING_VIEW.name());
147 pageLink.setIcon(FontAwesome.GROUP);
148 return pageLink;
149 }
150
151 @Override
152 public Link createCommitteeRankingViewPageLink() {
153 final Link pageLink = new Link(COMMITTEE_RANKING_LINK_TEXT, new ExternalResource(
154 LINK_SEPARATOR + UserViews.COMMITTEE_RANKING_VIEW_NAME));
155 pageLink.setId(ViewAction.VISIT_COMMITTEE_RANKING_VIEW.name());
156 pageLink.setIcon(FontAwesome.GROUP);
157 return pageLink;
158 }
159
160 @Override
161 public Link createPartyRankingViewPageLink() {
162 final Link pageLink = new Link(PARTY_RANKING_LINK_TEXT, new ExternalResource(
163 LINK_SEPARATOR + UserViews.PARTY_RANKING_VIEW_NAME));
164 pageLink.setId(ViewAction.VISIT_PARTY_RANKING_VIEW.name());
165 pageLink.setIcon(FontAwesome.GROUP);
166 return pageLink;
167 }
168
169 @Override
170 public Link createPoliticianRankingViewPageLink() {
171 final Link pageLink = new Link(POLITICIAN_RANKING_LINK_TEXT,
172 new ExternalResource(LINK_SEPARATOR + UserViews.POLITICIAN_RANKING_VIEW_NAME));
173 pageLink.setId(ViewAction.VISIT_POLITICIAN_RANKING_VIEW.name());
174 pageLink.setIcon(FontAwesome.BUG);
175 return pageLink;
176 }
177
178 @Override
179 public Link createAdminDataSummaryViewPageLink() {
180 final Link pageLink = new Link(ADMIN_DATA_SUMMARY_LINK_TEXT,
181 new ExternalResource(LINK_SEPARATOR
182 + AdminViews.ADMIN_DATA_SUMMARY_VIEW_NAME));
183 pageLink.setId(ViewAction.VISIT_ADMIN_DATA_SUMMARY_VIEW.name());
184 pageLink.setIcon(FontAwesome.DATABASE);
185 return pageLink;
186 }
187
188 @Override
189 public Link createAdminAgentOperationViewPageLink() {
190 final Link pageLink = new Link(ADMIN_AGENT_OPERATIONS_LINK_TEXT, new ExternalResource(
191 LINK_SEPARATOR + AdminViews.ADMIN_AGENT_OPERATIONVIEW_NAME));
192 pageLink.setId(ViewAction.VISIT_ADMIN_AGENT_OPERATION_VIEW.name());
193 pageLink.setIcon(FontAwesome.USER_SECRET);
194 return pageLink;
195 }
196
197 @Override
198 public Link addCommitteePageLink(final ViewRiksdagenCommittee data) {
199 final Link pageLink = new Link(COMMITTEE
200 + data.getEmbeddedId().getDetail(), new ExternalResource(PAGE_PREFIX
201 + UserViews.COMMITTEE_VIEW_NAME + PAGE_SEPARATOR + data.getEmbeddedId().getOrgCode()));
202 pageLink.setId(ViewAction.VISIT_COMMITTEE_VIEW.name() + PAGE_SEPARATOR
203 + data.getEmbeddedId().getOrgCode());
204 pageLink.setIcon(FontAwesome.GROUP);
205 return pageLink;
206 }
207
208 @Override
209 public Link addMinistryPageLink(final ViewRiksdagenMinistry data) {
210 final Link pageLink = new Link(MINISTRY + data.getNameId(),
211 new ExternalResource(PAGE_PREFIX + UserViews.MINISTRY_VIEW_NAME + PAGE_SEPARATOR
212 + data.getNameId()));
213 pageLink.setId(ViewAction.VISIT_MINISTRY_VIEW.name() + PAGE_SEPARATOR
214 + data.getNameId());
215 pageLink.setIcon(FontAwesome.GROUP);
216 return pageLink;
217 }
218
219 @Override
220 public Link addPartyPageLink(final ViewRiksdagenParty data) {
221 final Link pageLink = new Link(PARTY + data.getPartyName(),
222 new ExternalResource(PAGE_PREFIX + UserViews.PARTY_VIEW_NAME + PAGE_SEPARATOR
223 + data.getPartyId()));
224 pageLink.setId(ViewAction.VISIT_PARTY_VIEW.name() + PAGE_SEPARATOR
225 + data.getPartyId());
226 pageLink.setIcon(FontAwesome.GROUP);
227 return pageLink;
228 }
229
230 @Override
231 public Link createPoliticianPageLink(final PersonData personData) {
232 final Link pageLink = new Link(POLITICIAN
233 + personData.getFirstName() + ' '
234 + personData.getLastName(), new ExternalResource(PAGE_PREFIX
235 + UserViews.POLITICIAN_VIEW_NAME + PAGE_SEPARATOR + personData.getId()));
236 pageLink.setId(ViewAction.VISIT_POLITICIAN_VIEW.name() + PAGE_SEPARATOR
237 + personData.getId());
238 pageLink.setIcon(FontAwesome.BUG);
239 return pageLink;
240 }
241
242 @Override
243 public Link createSearchDocumentViewPageLink() {
244 final Link pageLink = new Link(SEARCH, new ExternalResource(PAGE_PREFIX
245 + UserViews.SEARCH_DOCUMENT_VIEW_NAME));
246 pageLink.setId(ViewAction.VISIT_DOCUMENT_VIEW.name());
247 pageLink.setIcon(FontAwesome.SEARCH);
248
249 return pageLink;
250 }
251
252 @Override
253 public Link createAdminPagingLink(final String label,final String page, final String pageId, final String pageNr) {
254 final Link pageLink = new Link(label,
255 new ExternalResource(PAGE_PREFIX + page + PAGE_SEPARATOR
256 + "[" + pageNr + "]"));
257 pageLink.setId(page +"ShowPage" + PAGE_SEPARATOR
258 + pageNr);
259 pageLink.setIcon(FontAwesome.SERVER);
260
261 return pageLink;
262 }
263
264 @Override
265 public Link createUserHomeViewPageLink() {
266 final Link pageLink = new Link("User account:" + UserContextUtil.getUserNameFromSecurityContext(), new ExternalResource(PAGE_PREFIX
267 + UserViews.USERHOME_VIEW_NAME));
268 pageLink.setId(ViewAction.VISIT_USER_HOME_VIEW.name());
269 pageLink.setIcon(FontAwesome.USER);
270 return pageLink;
271 }
272
273 }