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.goverment.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.ministry.impl.ViewRiksdagenMinistry;
26 import com.hack23.cia.model.internal.application.data.ministry.impl.ViewRiksdagenMinistry_;
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 MinistryRankingDataGridPageModContentFactoryImpl
44 extends AbstractMinistryRankingPageModContentFactoryImpl {
45
46
47 private static final String DATAGRID = "Datagrid:";
48
49
50
51
52
53 public MinistryRankingDataGridPageModContentFactoryImpl() {
54 super();
55 }
56
57 @Override
58 public boolean matches(final String page, final String parameters) {
59 return NAME.equals(page)
60 && (!StringUtils.isEmpty(parameters) && parameters.contains(PageMode.DATAGRID.toString()));
61 }
62
63 @Secured({ "ROLE_ANONYMOUS", "ROLE_USER", "ROLE_ADMIN" })
64 @Override
65 public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
66 final VerticalLayout panelContent = createPanelContent();
67
68 getMinistryRankingMenuItemFactory().createMinistryRankingMenuBar(menuBar);
69
70 final String pageId = getPageId(parameters);
71
72 final DataContainer<ViewRiksdagenMinistry, String> dataContainer = getApplicationManager()
73 .getDataContainer(ViewRiksdagenMinistry.class);
74
75 final BeanItemContainer<ViewRiksdagenMinistry> dataSource = new BeanItemContainer<>(ViewRiksdagenMinistry.class,
76 dataContainer.getAllOrderBy(ViewRiksdagenMinistry_.currentMemberSize));
77
78 getGridFactory().createBasicBeanItemGrid(panelContent, dataSource,
79 "Ministries",
80 new String[] { "nameId", "totalDaysServed", "currentMemberSize", "totalAssignments",
81 "firstAssignmentDate", "lastAssignmentDate", "active" }, new String[] {"active"}, new PageItemPropertyClickListener(UserViews.MINISTRY_VIEW_NAME, "nameId"), null, null);
82
83 panel.setCaption(DATAGRID + parameters);
84
85 getPageActionEventHelper().createPageEvent(ViewAction.VISIT_MINISTRY_RANKING_VIEW, ApplicationEventGroup.USER,
86 NAME, parameters, pageId);
87
88 return panelContent;
89
90 }
91
92 }