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.user.party.pagemode;
20
21 import org.apache.commons.lang3.StringUtils;
22 import org.springframework.security.access.annotation.Secured;
23 import org.springframework.stereotype.Service;
24
25 import com.hack23.cia.model.internal.application.data.party.impl.ViewRiksdagenPartySummary;
26 import com.hack23.cia.model.internal.application.data.party.impl.ViewRiksdagenPartySummary_;
27 import com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup;
28 import com.hack23.cia.service.api.DataContainer;
29 import com.hack23.cia.web.impl.ui.application.action.ViewAction;
30 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.PageMode;
31 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.UserViews;
32 import com.hack23.cia.web.impl.ui.application.views.pageclicklistener.PageItemPropertyClickListener;
33 import com.vaadin.data.util.BeanItemContainer;
34 import com.vaadin.ui.Layout;
35 import com.vaadin.ui.MenuBar;
36 import com.vaadin.ui.Panel;
37 import com.vaadin.ui.VerticalLayout;
38
39
40
41
42 @Service
43 public final class PartyRankingDataGridPageModContentFactoryImpl extends AbstractPartyRankingPageModContentFactoryImpl {
44
45
46 private static final String DATAGRID = "Datagrid:";
47
48
49 public static final String NAME = UserViews.PARTY_RANKING_VIEW_NAME;
50
51
52
53
54 public PartyRankingDataGridPageModContentFactoryImpl() {
55 super();
56 }
57
58 @Secured({ "ROLE_ANONYMOUS", "ROLE_USER", "ROLE_ADMIN" })
59 @Override
60 public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
61 final VerticalLayout panelContent = createPanelContent();
62
63 getPartyRankingMenuItemFactory().createPartyRankingMenuBar(menuBar);
64
65 final String pageId = getPageId(parameters);
66
67
68 final DataContainer<ViewRiksdagenPartySummary, String> dataContainer = getApplicationManager()
69 .getDataContainer(ViewRiksdagenPartySummary.class);
70
71 final BeanItemContainer<ViewRiksdagenPartySummary> politicianDocumentDataSource = new BeanItemContainer<>(
72 ViewRiksdagenPartySummary.class,
73 dataContainer.getAllOrderBy(ViewRiksdagenPartySummary_.currentAssignments));
74
75 getGridFactory().createBasicBeanItemGrid(panelContent, politicianDocumentDataSource,
76 "Parties",
77 new String[] { "party", "currentAssignments", "totalActiveGovernment", "totalActiveCommittee", "totalActiveParliament", "totalActiveEu", "active", "firstAssignmentDate", "lastAssignmentDate",
78 "activeEu",
79 "activeGovernment", "activeCommittee",
80 "totalAssignments","totalDaysServed", "totalDaysServedGovernment", "totalDaysServedCommittee", "activeParliament",
81 "totalDaysServedParliament", "totalDaysServedEu" }, new String[] {"active","activeParliament","activeGovernment","activeCommittee", "activeEu", "activeParty", "activeSpeaker"}, new PageItemPropertyClickListener(UserViews.PARTY_VIEW_NAME, "party"), null, null);
82
83
84 panel.setCaption(DATAGRID + parameters);
85
86 getPageActionEventHelper().createPageEvent(ViewAction.VISIT_PARTY_RANKING_VIEW, ApplicationEventGroup.USER,
87 NAME, parameters, pageId);
88
89 return panelContent;
90
91 }
92
93 @Override
94 public boolean matches(final String page, final String parameters) {
95 return NAME.equals(page) && (!StringUtils.isEmpty(parameters) && parameters.contains(PageMode.DATAGRID.toString()));
96 }
97
98 }