Search in sources :

Example 6 with XYseries

use of org.dussan.vaadin.dcharts.base.elements.XYseries in project cia by Hack23.

the class GovernmentBodyChartDataManagerImpl method createMinistryGovernmentBodyHeadcountSummaryChart.

@Override
public void createMinistryGovernmentBodyHeadcountSummaryChart(final AbstractOrderedLayout content) {
    final Map<Integer, List<GovernmentBodyAnnualSummary>> map = esvApi.getData();
    final List<String> ministryNames = esvApi.getMinistryNames();
    final DataSeries dataSeries = new DataSeries();
    final Series series = new Series();
    for (final String ministryName : ministryNames) {
        series.addSeries(new XYseries().setLabel(ministryName));
        dataSeries.newSeries();
        for (final Entry<Integer, List<GovernmentBodyAnnualSummary>> entry : map.entrySet()) {
            final List<GovernmentBodyAnnualSummary> item = entry.getValue();
            final Integer totalHeadcount = item.stream().filter((final GovernmentBodyAnnualSummary p) -> p.getMinistry().equalsIgnoreCase(ministryName)).mapToInt(GovernmentBodyAnnualSummary::getHeadCount).sum();
            if (entry.getKey() != null && totalHeadcount > 0) {
                dataSeries.add(FIRST_OF_JAN + entry.getKey(), totalHeadcount);
            }
        }
    }
    addChart(content, ANNUAL_HEADCOUNT_ALL_MINISTRIES, new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsXYDateFloatLogYAxisLegendOutside(series)).show(), true);
}
Also used : DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) Series(org.dussan.vaadin.dcharts.options.Series) List(java.util.List) DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) GovernmentBodyAnnualSummary(com.hack23.cia.service.external.esv.api.GovernmentBodyAnnualSummary) DCharts(org.dussan.vaadin.dcharts.DCharts) XYseries(org.dussan.vaadin.dcharts.base.elements.XYseries)

Example 7 with XYseries

use of org.dussan.vaadin.dcharts.base.elements.XYseries in project cia by Hack23.

the class OrgDocumentChartDataManagerImpl method addNewDataSerie.

private static void addNewDataSerie(final DataSeries dataSeries, final Series series, final SimpleDateFormat simpleDateFormat, final SimpleDateFormat parseIncomingDateFormat, final Entry<String, List<ViewRiksdagenOrgDocumentDailySummary>> entry) {
    series.addSeries(new XYseries().setLabel(entry.getKey()));
    dataSeries.newSeries();
    if (entry.getValue() != null) {
        for (final ViewRiksdagenOrgDocumentDailySummary item : entry.getValue()) {
            if (item != null && item.getEmbeddedId().getPublicDate().length() > 0) {
                try {
                    dataSeries.add(simpleDateFormat.format(parseIncomingDateFormat.parse(item.getEmbeddedId().getPublicDate())), item.getTotal());
                } catch (final ParseException e) {
                    LOGGER.warn("Problem parsing date:{}", item.getEmbeddedId().getPublicDate());
                }
            }
        }
    } else {
        LOGGER.info(LOG_MSG_MISSING_DATA_FOR_KEY, entry);
    }
}
Also used : ViewRiksdagenOrgDocumentDailySummary(com.hack23.cia.model.internal.application.data.document.impl.ViewRiksdagenOrgDocumentDailySummary) ParseException(java.text.ParseException) XYseries(org.dussan.vaadin.dcharts.base.elements.XYseries)

Example 8 with XYseries

use of org.dussan.vaadin.dcharts.base.elements.XYseries in project cia by Hack23.

the class PartyChartDataManagerImpl method createPartyLineChart.

@Override
public void createPartyLineChart(final AbstractOrderedLayout content, final String partyId) {
    final List<ViewRiksdagenVoteDataBallotPartySummaryDaily> list = getViewRiksdagenVoteDataBallotPartySummaryDaily(partyId);
    final Series series = new Series().addSeries(new XYseries().setLabel(PARTY_WON)).addSeries(new XYseries().setLabel(PARTY_ABSENT));
    final DataSeries dataSeries = new DataSeries().newSeries();
    final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DD_MMM_YYYY, Locale.ENGLISH);
    if (list != null) {
        for (final ViewRiksdagenVoteDataBallotPartySummaryDaily viewRiksdagenVoteDataBallotPartySummaryDaily : list) {
            if (viewRiksdagenVoteDataBallotPartySummaryDaily != null) {
                dataSeries.add(simpleDateFormat.format(viewRiksdagenVoteDataBallotPartySummaryDaily.getEmbeddedId().getVoteDate()), viewRiksdagenVoteDataBallotPartySummaryDaily.getPartyWonPercentage());
            }
        }
        dataSeries.newSeries();
        for (final ViewRiksdagenVoteDataBallotPartySummaryDaily viewRiksdagenVoteDataBallotPartySummaryDaily : list) {
            if (viewRiksdagenVoteDataBallotPartySummaryDaily != null) {
                dataSeries.add(simpleDateFormat.format(viewRiksdagenVoteDataBallotPartySummaryDaily.getEmbeddedId().getVoteDate()), viewRiksdagenVoteDataBallotPartySummaryDaily.getPartyPercentageAbsent());
            }
        }
    }
    addChart(content, "Party result by", new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsPartyLineChart(series)).show(), true);
}
Also used : DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) Series(org.dussan.vaadin.dcharts.options.Series) ViewRiksdagenVoteDataBallotPartySummaryDaily(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummaryDaily) DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) DCharts(org.dussan.vaadin.dcharts.DCharts) XYseries(org.dussan.vaadin.dcharts.base.elements.XYseries) SimpleDateFormat(java.text.SimpleDateFormat)

Example 9 with XYseries

use of org.dussan.vaadin.dcharts.base.elements.XYseries in project cia by Hack23.

the class PartyChartDataManagerImpl method createPartyBallotChart.

/**
 * Creates the party ballot chart.
 *
 * @param dataValueCalculator
 *            the data value calculator
 * @return the d charts
 */
private void createPartyBallotChart(final AbstractOrderedLayout content, final DataValueCalculator dataValueCalculator) {
    final Map<String, List<ViewRiksdagenVoteDataBallotPartySummaryDaily>> map = getPartyMap();
    final DataSeries dataSeries = new DataSeries();
    final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DD_MMM_YYYY, Locale.ENGLISH);
    final Series series = new Series();
    for (final Entry<String, List<ViewRiksdagenVoteDataBallotPartySummaryDaily>> entry : map.entrySet()) {
        if (!"-".equals(entry.getKey())) {
            series.addSeries(new XYseries().setLabel(getPartyName(entry.getKey())));
            dataSeries.newSeries();
            final List<ViewRiksdagenVoteDataBallotPartySummaryDaily> list = entry.getValue();
            for (final ViewRiksdagenVoteDataBallotPartySummaryDaily viewRiksdagenVoteDataBallotPartySummaryDaily : list) {
                if (viewRiksdagenVoteDataBallotPartySummaryDaily != null) {
                    dataSeries.add(simpleDateFormat.format(viewRiksdagenVoteDataBallotPartySummaryDaily.getEmbeddedId().getVoteDate()), dataValueCalculator.getDataValue(viewRiksdagenVoteDataBallotPartySummaryDaily));
                }
            }
        }
    }
    addChart(content, "Party ballot chart", new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsXYDateFloatLegendInsideOneColumn(series)).show(), true);
}
Also used : DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) Series(org.dussan.vaadin.dcharts.options.Series) ViewRiksdagenVoteDataBallotPartySummaryDaily(com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummaryDaily) ArrayList(java.util.ArrayList) List(java.util.List) DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) DCharts(org.dussan.vaadin.dcharts.DCharts) XYseries(org.dussan.vaadin.dcharts.base.elements.XYseries) SimpleDateFormat(java.text.SimpleDateFormat)

Example 10 with XYseries

use of org.dussan.vaadin.dcharts.base.elements.XYseries in project cia by Hack23.

the class PersonDocumentChartDataManagerImpl method addDocumentHistoryByPersonData.

/**
 * Adds the document history by person data.
 *
 * @param simpleDateFormat
 *            the simple date format
 * @param dataSeries
 *            the data series
 * @param series
 *            the series
 * @param map
 *            the map
 */
private static void addDocumentHistoryByPersonData(final SimpleDateFormat simpleDateFormat, final DataSeries dataSeries, final Series series, final Map<String, List<ViewRiksdagenPoliticianDocumentDailySummary>> map) {
    for (final Entry<String, List<ViewRiksdagenPoliticianDocumentDailySummary>> entry : map.entrySet()) {
        series.addSeries(new XYseries().setLabel(entry.getKey()));
        dataSeries.newSeries();
        if (entry.getValue() != null) {
            for (final ViewRiksdagenPoliticianDocumentDailySummary item : entry.getValue()) {
                if (item != null) {
                    dataSeries.add(simpleDateFormat.format(item.getEmbeddedId().getPublicDate()), item.getTotal());
                }
            }
        } else {
            LOGGER.info(LOG_MSG_MISSING_DATA_FOR_KEY, entry);
        }
    }
}
Also used : List(java.util.List) XYseries(org.dussan.vaadin.dcharts.base.elements.XYseries) ViewRiksdagenPoliticianDocumentDailySummary(com.hack23.cia.model.internal.application.data.document.impl.ViewRiksdagenPoliticianDocumentDailySummary)

Aggregations

XYseries (org.dussan.vaadin.dcharts.base.elements.XYseries)19 DCharts (org.dussan.vaadin.dcharts.DCharts)13 DataSeries (org.dussan.vaadin.dcharts.data.DataSeries)13 Series (org.dussan.vaadin.dcharts.options.Series)13 List (java.util.List)11 SimpleDateFormat (java.text.SimpleDateFormat)9 ViewRiksdagenVoteDataBallotPartySummaryDaily (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummaryDaily)3 GovernmentBodyAnnualSummary (com.hack23.cia.service.external.esv.api.GovernmentBodyAnnualSummary)2 ParseException (java.text.ParseException)2 ArrayList (java.util.ArrayList)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 Country (com.hack23.cia.model.external.worldbank.data.impl.Country)1 WorldBankData (com.hack23.cia.model.external.worldbank.data.impl.WorldBankData)1 ViewRiksdagenCommitteeDecisionTypeDailySummary (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommitteeDecisionTypeDailySummary)1 ViewRiksdagenCommitteeDecisionTypeOrgDailySummary (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenCommitteeDecisionTypeOrgDailySummary)1 ViewRiksdagenVoteDataBallotPartySummary (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary)1 ViewRiksdagenVoteDataBallotPoliticianSummaryDaily (com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPoliticianSummaryDaily)1 ViewRiksdagenDocumentTypeDailySummary (com.hack23.cia.model.internal.application.data.document.impl.ViewRiksdagenDocumentTypeDailySummary)1 ViewRiksdagenOrgDocumentDailySummary (com.hack23.cia.model.internal.application.data.document.impl.ViewRiksdagenOrgDocumentDailySummary)1 ViewRiksdagenPartyDocumentDailySummary (com.hack23.cia.model.internal.application.data.document.impl.ViewRiksdagenPartyDocumentDailySummary)1