Search in sources :

Example 1 with ViewRiksdagenVoteDataBallotPartySummary

use of com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary in project cia by Hack23.

the class BallotChartDataManagerImpl method createChart.

@Override
public void createChart(final Tab tab, final AbstractOrderedLayout content, final List<ViewRiksdagenVoteDataBallotPartySummary> partyList) {
    final DataSeries dataSeries = new DataSeries();
    final Series series = new Series();
    series.addSeries(new XYseries().setLabel("Yes"));
    series.addSeries(new XYseries().setLabel("No"));
    series.addSeries(new XYseries().setLabel("Abstain"));
    series.addSeries(new XYseries().setLabel("Absent"));
    String caption = null;
    for (final ViewRiksdagenVoteDataBallotPartySummary viewRiksdagenVoteDataBallotPartySummary : partyList) {
        if (caption == null) {
            caption = "Party Summary : " + viewRiksdagenVoteDataBallotPartySummary.getEmbeddedId().getIssue() + " " + viewRiksdagenVoteDataBallotPartySummary.getEmbeddedId().getConcern();
            content.setCaption(caption);
            tab.setCaption(caption);
        }
        dataSeries.newSeries().add(getPartyName(viewRiksdagenVoteDataBallotPartySummary.getEmbeddedId().getParty()), viewRiksdagenVoteDataBallotPartySummary.getPartyYesVotes()).add(getPartyName(viewRiksdagenVoteDataBallotPartySummary.getEmbeddedId().getParty()), viewRiksdagenVoteDataBallotPartySummary.getPartyNoVotes()).add(getPartyName(viewRiksdagenVoteDataBallotPartySummary.getEmbeddedId().getParty()), viewRiksdagenVoteDataBallotPartySummary.getPartyAbstainVotes()).add(getPartyName(viewRiksdagenVoteDataBallotPartySummary.getEmbeddedId().getParty()), viewRiksdagenVoteDataBallotPartySummary.getPartyAbsentVotes());
    }
    addChart(content, caption + " ( 4 circles Yes/No/Abstain/Absent votes by party )", new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsDonoutChartWithSeries(series)).show(), true);
}
Also used : DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) Series(org.dussan.vaadin.dcharts.options.Series) ViewRiksdagenVoteDataBallotPartySummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary) DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) DCharts(org.dussan.vaadin.dcharts.DCharts) XYseries(org.dussan.vaadin.dcharts.base.elements.XYseries)

Example 2 with ViewRiksdagenVoteDataBallotPartySummary

use of com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary in project cia by Hack23.

the class BallotOverviewPageModContentFactoryImpl method createContent.

@Secured({ "ROLE_ANONYMOUS", "ROLE_USER", "ROLE_ADMIN" })
@Override
public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
    final VerticalLayout panelContent = createPanelContent();
    final String pageId = getPageId(parameters);
    final DataContainer<ViewRiksdagenVoteDataBallotSummary, RiksdagenVoteDataBallotEmbeddedId> dataContainer = getApplicationManager().getDataContainer(ViewRiksdagenVoteDataBallotSummary.class);
    final DataContainer<ViewRiksdagenVoteDataBallotPartySummary, RiksdagenVoteDataBallotPartyEmbeddedId> dataPartyContainer = getApplicationManager().getDataContainer(ViewRiksdagenVoteDataBallotPartySummary.class);
    final DataContainer<ViewRiksdagenCommitteeBallotDecisionSummary, ViewRiksdagenCommitteeBallotDecisionEmbeddedId> dataDecisionContainer = getApplicationManager().getDataContainer(ViewRiksdagenCommitteeBallotDecisionSummary.class);
    final List<ViewRiksdagenVoteDataBallotSummary> ballots = dataContainer.findListByEmbeddedProperty(ViewRiksdagenVoteDataBallotSummary.class, ViewRiksdagenVoteDataBallotSummary_.embeddedId, RiksdagenVoteDataBallotEmbeddedId.class, RiksdagenVoteDataBallotEmbeddedId_.ballotId, pageId);
    final List<ViewRiksdagenVoteDataBallotPartySummary> partyBallotList = dataPartyContainer.findListByEmbeddedProperty(ViewRiksdagenVoteDataBallotPartySummary.class, ViewRiksdagenVoteDataBallotPartySummary_.embeddedId, RiksdagenVoteDataBallotPartyEmbeddedId.class, RiksdagenVoteDataBallotPartyEmbeddedId_.ballotId, pageId);
    final List<ViewRiksdagenCommitteeBallotDecisionSummary> decisionSummaries = dataDecisionContainer.getAllBy(ViewRiksdagenCommitteeBallotDecisionSummary_.ballotId, pageId);
    if (!ballots.isEmpty()) {
        getBallotMenuItemFactory().createBallotMenuBar(menuBar, pageId);
        LabelFactory.createHeader2Label(panelContent, OVERVIEW);
        for (final ViewRiksdagenVoteDataBallotSummary viewRiksdagenVoteDataBallotSummary : ballots) {
            if (!decisionSummaries.isEmpty()) {
                getFormFactory().addFormPanelTextFields(panelContent, decisionSummaries.get(FIRST_OBJECT), ViewRiksdagenCommitteeBallotDecisionSummary.class, AS_LIST);
            } else {
                getFormFactory().addFormPanelTextFields(panelContent, viewRiksdagenVoteDataBallotSummary, ViewRiksdagenVoteDataBallotSummary.class, AS_LIST2);
            }
        }
        getGridFactory().createBasicBeanItemNestedPropertiesGrid(panelContent, ViewRiksdagenVoteDataBallotPartySummary.class, partyBallotList, PARTY_BALLOT_SUMMARY, NESTED_PROPERTIES, COLUMN_ORDER, HIDE_COLUMNS, LISTENER, EMBEDDED_ID_PARTY, null);
        final VerticalLayout overviewLayout = new VerticalLayout();
        overviewLayout.setSizeFull();
        panelContent.addComponent(overviewLayout);
        panelContent.setExpandRatio(overviewLayout, ContentRatio.LARGE_FORM);
        getBallotMenuItemFactory().createOverviewPage(overviewLayout, pageId);
        panel.setCaption(NAME + "::" + BALLOT + pageId);
        getPageActionEventHelper().createPageEvent(ViewAction.VISIT_BALLOT_VIEW, ApplicationEventGroup.USER, NAME, parameters, pageId);
    }
    return panelContent;
}
Also used : RiksdagenVoteDataBallotPartyEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotPartyEmbeddedId) ViewRiksdagenVoteDataBallotPartySummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary) ViewRiksdagenCommitteeBallotDecisionEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommitteeBallotDecisionEmbeddedId) ViewRiksdagenCommitteeBallotDecisionSummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommitteeBallotDecisionSummary) ViewRiksdagenVoteDataBallotSummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary) VerticalLayout(com.vaadin.ui.VerticalLayout) RiksdagenVoteDataBallotEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotEmbeddedId) Secured(org.springframework.security.access.annotation.Secured)

Example 3 with ViewRiksdagenVoteDataBallotPartySummary

use of com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary in project cia by Hack23.

the class BallotChartsPageModContentFactoryImpl method createContent.

@Secured({ "ROLE_ANONYMOUS", "ROLE_USER", "ROLE_ADMIN" })
@Override
public Layout createContent(final String parameters, final MenuBar menuBar, final Panel panel) {
    final VerticalLayout panelContent = createPanelContent();
    final String pageId = getPageId(parameters);
    final DataContainer<ViewRiksdagenVoteDataBallotSummary, RiksdagenVoteDataBallotEmbeddedId> dataContainer = getApplicationManager().getDataContainer(ViewRiksdagenVoteDataBallotSummary.class);
    final DataContainer<ViewRiksdagenVoteDataBallotPartySummary, RiksdagenVoteDataBallotPartyEmbeddedId> dataPartyContainer = getApplicationManager().getDataContainer(ViewRiksdagenVoteDataBallotPartySummary.class);
    final List<ViewRiksdagenVoteDataBallotSummary> ballots = dataContainer.findListByEmbeddedProperty(ViewRiksdagenVoteDataBallotSummary.class, ViewRiksdagenVoteDataBallotSummary_.embeddedId, RiksdagenVoteDataBallotEmbeddedId.class, RiksdagenVoteDataBallotEmbeddedId_.ballotId, pageId);
    final List<ViewRiksdagenVoteDataBallotPartySummary> partyBallotList = dataPartyContainer.findListByEmbeddedProperty(ViewRiksdagenVoteDataBallotPartySummary.class, ViewRiksdagenVoteDataBallotPartySummary_.embeddedId, RiksdagenVoteDataBallotPartyEmbeddedId.class, RiksdagenVoteDataBallotPartyEmbeddedId_.ballotId, pageId);
    if (!ballots.isEmpty()) {
        getBallotMenuItemFactory().createBallotMenuBar(menuBar, pageId);
        LabelFactory.createHeader2Label(panelContent, CHARTS);
        final TabSheet tabsheet = new TabSheet();
        tabsheet.setWidth(100, Unit.PERCENTAGE);
        tabsheet.setHeight(100, Unit.PERCENTAGE);
        panelContent.addComponent(tabsheet);
        panelContent.setExpandRatio(tabsheet, ContentRatio.LARGE);
        Collections.sort(ballots, (Comparator<ViewRiksdagenVoteDataBallotSummary>) (o1, o2) -> (o1.getEmbeddedId().getIssue() + o2.getEmbeddedId().getConcern()).compareTo(o1.getEmbeddedId().getIssue() + o2.getEmbeddedId().getConcern()));
        for (final ViewRiksdagenVoteDataBallotSummary viewRiksdagenVoteDataBallotSummary : ballots) {
            final HorizontalLayout tabContent = new HorizontalLayout();
            tabContent.setWidth(100, Unit.PERCENTAGE);
            tabContent.setHeight(100, Unit.PERCENTAGE);
            final Tab tab = tabsheet.addTab(tabContent);
            ballotChartDataManager.createChart(tab, tabContent, viewRiksdagenVoteDataBallotSummary);
        }
        final Map<String, List<ViewRiksdagenVoteDataBallotPartySummary>> concernIssuePartyBallotSummaryMap = createIssueConcernMap(partyBallotList);
        for (final List<ViewRiksdagenVoteDataBallotPartySummary> partyBallotSummaryList : concernIssuePartyBallotSummaryMap.values()) {
            final HorizontalLayout tabContent = new HorizontalLayout();
            tabContent.setWidth(100, Unit.PERCENTAGE);
            tabContent.setHeight(100, Unit.PERCENTAGE);
            final Tab tab = tabsheet.addTab(tabContent);
            ballotChartDataManager.createChart(tab, tabContent, partyBallotSummaryList);
        }
        panel.setCaption(new StringBuilder().append(NAME).append("::").append(BALLOT).append(pageId).toString());
        getPageActionEventHelper().createPageEvent(ViewAction.VISIT_BALLOT_VIEW, ApplicationEventGroup.USER, NAME, parameters, pageId);
    }
    return panelContent;
}
Also used : RiksdagenVoteDataBallotPartyEmbeddedId_(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotPartyEmbeddedId_) PageMode(com.hack23.cia.web.impl.ui.application.views.common.viewnames.PageMode) Panel(com.vaadin.ui.Panel) ApplicationEventGroup(com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup) VerticalLayout(com.vaadin.ui.VerticalLayout) Autowired(org.springframework.beans.factory.annotation.Autowired) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Secured(org.springframework.security.access.annotation.Secured) ViewRiksdagenVoteDataBallotSummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary) ViewRiksdagenVoteDataBallotPartySummary_(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary_) ViewAction(com.hack23.cia.web.impl.ui.application.action.ViewAction) Map(java.util.Map) ViewRiksdagenVoteDataBallotSummary_(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary_) BallotChartDataManager(com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.BallotChartDataManager) ContentRatio(com.hack23.cia.web.impl.ui.application.views.common.sizing.ContentRatio) Tab(com.vaadin.ui.TabSheet.Tab) MenuBar(com.vaadin.ui.MenuBar) RiksdagenVoteDataBallotEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotEmbeddedId) RiksdagenVoteDataBallotPartyEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotPartyEmbeddedId) LabelFactory(com.hack23.cia.web.impl.ui.application.views.common.labelfactory.LabelFactory) DataContainer(com.hack23.cia.service.api.DataContainer) List(java.util.List) Component(org.springframework.stereotype.Component) Layout(com.vaadin.ui.Layout) HorizontalLayout(com.vaadin.ui.HorizontalLayout) TabSheet(com.vaadin.ui.TabSheet) RiksdagenVoteDataBallotEmbeddedId_(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotEmbeddedId_) Comparator(java.util.Comparator) ViewRiksdagenVoteDataBallotPartySummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary) Unit(com.vaadin.server.Sizeable.Unit) Collections(java.util.Collections) RiksdagenVoteDataBallotPartyEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotPartyEmbeddedId) ViewRiksdagenVoteDataBallotPartySummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary) HorizontalLayout(com.vaadin.ui.HorizontalLayout) Tab(com.vaadin.ui.TabSheet.Tab) ViewRiksdagenVoteDataBallotSummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary) TabSheet(com.vaadin.ui.TabSheet) VerticalLayout(com.vaadin.ui.VerticalLayout) ArrayList(java.util.ArrayList) List(java.util.List) RiksdagenVoteDataBallotEmbeddedId(com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotEmbeddedId) Secured(org.springframework.security.access.annotation.Secured)

Example 4 with ViewRiksdagenVoteDataBallotPartySummary

use of com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary in project cia by Hack23.

the class BallotChartsPageModContentFactoryImpl method createIssueConcernMap.

/**
 * Creates the issue concern map.
 *
 * @param partyBallotList
 *            the party ballot list
 * @return the map
 */
private static Map<String, List<ViewRiksdagenVoteDataBallotPartySummary>> createIssueConcernMap(final List<ViewRiksdagenVoteDataBallotPartySummary> partyBallotList) {
    final Map<String, List<ViewRiksdagenVoteDataBallotPartySummary>> concernIssuePartyBallotSummaryMap = new HashMap<>();
    for (final ViewRiksdagenVoteDataBallotPartySummary partySummary : partyBallotList) {
        if (partySummary.getEmbeddedId().getIssue() != null || partySummary.getEmbeddedId().getConcern() != null) {
            final String key = partySummary.getEmbeddedId().getIssue() + partySummary.getEmbeddedId().getConcern();
            if (concernIssuePartyBallotSummaryMap.get(key) == null) {
                concernIssuePartyBallotSummaryMap.put(key, new ArrayList<>());
            }
            final List<ViewRiksdagenVoteDataBallotPartySummary> partySummarList = concernIssuePartyBallotSummaryMap.computeIfAbsent(key, k -> new ArrayList<>());
            partySummarList.add(partySummary);
        }
    }
    return concernIssuePartyBallotSummaryMap;
}
Also used : HashMap(java.util.HashMap) ViewRiksdagenVoteDataBallotPartySummary(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

ViewRiksdagenVoteDataBallotPartySummary (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary)4 RiksdagenVoteDataBallotEmbeddedId (com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotEmbeddedId)2 RiksdagenVoteDataBallotPartyEmbeddedId (com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotPartyEmbeddedId)2 ViewRiksdagenVoteDataBallotSummary (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary)2 VerticalLayout (com.vaadin.ui.VerticalLayout)2 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Secured (org.springframework.security.access.annotation.Secured)2 RiksdagenVoteDataBallotEmbeddedId_ (com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotEmbeddedId_)1 RiksdagenVoteDataBallotPartyEmbeddedId_ (com.hack23.cia.model.internal.application.data.committee.impl.RiksdagenVoteDataBallotPartyEmbeddedId_)1 ViewRiksdagenCommitteeBallotDecisionEmbeddedId (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommitteeBallotDecisionEmbeddedId)1 ViewRiksdagenCommitteeBallotDecisionSummary (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommitteeBallotDecisionSummary)1 ViewRiksdagenVoteDataBallotPartySummary_ (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary_)1 ViewRiksdagenVoteDataBallotSummary_ (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary_)1 ApplicationEventGroup (com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup)1 DataContainer (com.hack23.cia.service.api.DataContainer)1 ViewAction (com.hack23.cia.web.impl.ui.application.action.ViewAction)1 BallotChartDataManager (com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.BallotChartDataManager)1 LabelFactory (com.hack23.cia.web.impl.ui.application.views.common.labelfactory.LabelFactory)1