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.politician.pagemode;
20
21 import java.util.Collections;
22 import java.util.Comparator;
23 import java.util.List;
24
25 import org.springframework.security.access.annotation.Secured;
26 import org.springframework.stereotype.Component;
27
28 import com.hack23.cia.model.external.riksdagen.person.impl.AssignmentData;
29 import com.hack23.cia.model.external.riksdagen.person.impl.PersonData;
30 import com.hack23.cia.model.internal.application.data.politician.impl.ViewRiksdagenPolitician;
31 import com.hack23.cia.service.api.DataContainer;
32 import com.hack23.cia.web.impl.ui.application.views.common.labelfactory.LabelFactory;
33 import com.hack23.cia.web.impl.ui.application.views.common.viewnames.PoliticianPageMode;
34 import com.vaadin.data.util.BeanItemContainer;
35 import com.vaadin.ui.Layout;
36 import com.vaadin.ui.MenuBar;
37 import com.vaadin.ui.Panel;
38 import com.vaadin.ui.VerticalLayout;
39
40
41
42
43 @Component
44 public final class PoliticianRoleListPageModContentFactoryImpl extends AbstractPoliticianPageModContentFactoryImpl {
45
46
47
48
49 public PoliticianRoleListPageModContentFactoryImpl() {
50 super();
51 }
52
53 @Override
54 public boolean matches(final String page, final String parameters) {
55 return NAME.equals(page) && parameters.contains(PoliticianPageMode.ROLELIST.toString());
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 final String pageId = getPageId(parameters);
64
65 final DataContainer<PersonData, String> dataContainer = getApplicationManager()
66 .getDataContainer(PersonData.class);
67
68 final PersonData personData = dataContainer.load(pageId);
69 if (personData != null) {
70
71 final DataContainer<ViewRiksdagenPolitician, String> politicianDataContainer = getApplicationManager()
72 .getDataContainer(ViewRiksdagenPolitician.class);
73
74 final ViewRiksdagenPolitician viewRiksdagenPolitician = politicianDataContainer.load(personData.getId());
75
76 getPoliticianMenuItemFactory().createPoliticianMenuBar(menuBar, pageId);
77
78 LabelFactory.createHeader2Label(panelContent,PoliticianPageMode.ROLELIST.toString());
79
80
81
82 final List<AssignmentData> assignmentList = personData.getPersonAssignmentData()
83 .getAssignmentList();
84
85 createRoleList(panelContent, assignmentList);
86
87 pageCompleted(parameters, panel, pageId, viewRiksdagenPolitician);
88
89 }
90 return panelContent;
91
92 }
93
94
95
96
97
98
99
100
101
102 private void createRoleList(final VerticalLayout roleSummaryLayoutTabsheet, final List<AssignmentData> assignmentList) {
103
104 final Comparator<AssignmentData> compare = (o1, o2) -> o1.getFromDate().compareTo(o2.getFromDate());
105
106 Collections.sort(assignmentList, compare);
107
108 getGridFactory()
109 .createBasicBeanItemGrid(roleSummaryLayoutTabsheet, new BeanItemContainer<>(AssignmentData.class, assignmentList),
110 "Assignments",
111 new String[] { "roleCode", "assignmentType", "status", "detail", "orgCode", "fromDate",
112 "toDate" }, new String[] { "hjid", "intressentId", "orderNumber", "orgCode" }, null, null, null);
113
114 }
115
116
117 }