Search in sources :

Example 1 with ViewWorldbankIndicatorDataCountrySummary

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

the class CountryMenuItemFactoryImpl method addSourcesAndIndicatorsToMenu.

/**
 * Adds the sources and indicators to menu.
 *
 * @param countryIndicators
 *            the country indicators
 * @param sourceIndicatorMap
 *            the source indicator map
 */
private static void addSourcesAndIndicatorsToMenu(final MenuItem countryIndicators, final Map<String, List<ViewWorldbankIndicatorDataCountrySummary>> sourceIndicatorMap) {
    final Map<String, List<ViewWorldbankIndicatorDataCountrySummary>> sortedIndicatorMap = sourceIndicatorMap.entrySet().stream().sorted((e1, e2) -> e1.getKey().compareTo(e2.getKey())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
    for (final Entry<String, List<ViewWorldbankIndicatorDataCountrySummary>> entry : sortedIndicatorMap.entrySet()) {
        final MenuItem sourceItems = countryIndicators.addItem(entry.getKey(), null, null);
        final List<ViewWorldbankIndicatorDataCountrySummary> sortedEntries = entry.getValue().stream().sorted((e1, e2) -> e1.getIndicatorName().compareTo(e2.getIndicatorName())).collect(Collectors.toList());
        for (final ViewWorldbankIndicatorDataCountrySummary indciatorSummary : sortedEntries) {
            MenuItem addItem = sourceItems.addItem(indciatorSummary.getIndicatorName(), new PageModeMenuCommand(UserViews.COUNTRY_RANKING_VIEW_NAME, PageMode.INDICATORS, indciatorSummary.getEmbeddedId().getIndicatorId()));
            addItem.setStyleName("RestrictedHeader");
        }
    }
}
Also used : PageMode(com.hack23.cia.web.impl.ui.application.views.common.viewnames.PageMode) Arrays(java.util.Arrays) MenuItem(com.vaadin.ui.MenuBar.MenuItem) WorldbankIndicatorDataCountrySummaryEmbeddedId_(com.hack23.cia.model.internal.application.data.impl.WorldbankIndicatorDataCountrySummaryEmbeddedId_) VerticalLayout(com.vaadin.ui.VerticalLayout) Alignment(com.vaadin.ui.Alignment) Autowired(org.springframework.beans.factory.annotation.Autowired) ViewWorldbankIndicatorDataCountrySummary_(com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary_) LinkedHashMap(java.util.LinkedHashMap) PageModeMenuCommand(com.hack23.cia.web.impl.ui.application.views.common.pagelinks.api.PageModeMenuCommand) Service(org.springframework.stereotype.Service) Map(java.util.Map) ViewWorldbankIndicatorDataCountrySummary(com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary) VaadinIcons(com.vaadin.icons.VaadinIcons) SimpleEntry(java.util.AbstractMap.SimpleEntry) ContentRatio(com.hack23.cia.web.impl.ui.application.views.common.sizing.ContentRatio) MenuBar(com.vaadin.ui.MenuBar) UserViews(com.hack23.cia.web.impl.ui.application.views.common.viewnames.UserViews) Collectors(java.util.stream.Collectors) ApplicationManager(com.hack23.cia.service.api.ApplicationManager) CountryMenuItemFactory(com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.CountryMenuItemFactory) DataContainer(com.hack23.cia.service.api.DataContainer) AbstractMap(java.util.AbstractMap) List(java.util.List) ApplicationMenuItemFactory(com.hack23.cia.web.impl.ui.application.views.common.menufactory.api.ApplicationMenuItemFactory) WorldbankIndicatorDataCountrySummaryEmbeddedId(com.hack23.cia.model.internal.application.data.impl.WorldbankIndicatorDataCountrySummaryEmbeddedId) Entry(java.util.Map.Entry) PageModeMenuCommand(com.hack23.cia.web.impl.ui.application.views.common.pagelinks.api.PageModeMenuCommand) ViewWorldbankIndicatorDataCountrySummary(com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary) List(java.util.List) MenuItem(com.vaadin.ui.MenuBar.MenuItem) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) AbstractMap(java.util.AbstractMap)

Example 2 with ViewWorldbankIndicatorDataCountrySummary

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

the class WorldIndicatorChartDataManagerImpl method createIndicatorChart.

@Override
public void createIndicatorChart(final AbstractOrderedLayout content, final List<WorldBankData> list, final ViewWorldbankIndicatorDataCountrySummary summary) {
    final Map<Country, List<WorldBankData>> countryIndicatorsMap = list.stream().collect(Collectors.groupingBy(WorldBankData::getCountry, Collectors.toList()));
    final Series series = new Series();
    final DataSeries dataSeries = new DataSeries();
    for (final Entry<Country, List<WorldBankData>> entry : countryIndicatorsMap.entrySet()) {
        series.addSeries(new XYseries().setLabel(entry.getKey().getValue()));
        dataSeries.newSeries();
        for (final WorldBankData item : entry.getValue()) {
            if (item != null && item.getYearDate() != null && item.getDataValue() != null && !item.getDataValue().isEmpty()) {
                dataSeries.add(item.getYearDate() + "-01-01", Float.valueOf(item.getDataValue()));
            }
        }
    }
    addChart(content, summary.getIndicatorName(), new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsCountryLineChart(series)).show(), false);
}
Also used : DataSeries(org.dussan.vaadin.dcharts.data.DataSeries) Series(org.dussan.vaadin.dcharts.options.Series) WorldBankData(com.hack23.cia.model.external.worldbank.data.impl.WorldBankData) Country(com.hack23.cia.model.external.worldbank.data.impl.Country) 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)

Example 3 with ViewWorldbankIndicatorDataCountrySummary

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

the class WorldIndicatorsPageModContentFactoryImpl method createDataIndicatorSummaryChartPanel.

/**
 * Creates the data indicator summary chart panel.
 *
 * @param verticalLayout
 *            the vertical layout
 * @param indicator
 *            the indicator
 */
private void createDataIndicatorSummaryChartPanel(final VerticalLayout verticalLayout, final String indicator) {
    final DataContainer<ViewWorldbankIndicatorDataCountrySummary, WorldbankIndicatorDataCountrySummaryEmbeddedId> indicatorDataCountrSummaryDailyDataContainer = getApplicationManager().getDataContainer(ViewWorldbankIndicatorDataCountrySummary.class);
    final Optional<ViewWorldbankIndicatorDataCountrySummary> indicatorSummary = indicatorDataCountrSummaryDailyDataContainer.getAll().parallelStream().filter(t -> t != null && t.getEmbeddedId().getIndicatorId().equals(indicator)).findFirst();
    ViewWorldbankIndicatorDataCountrySummary indicatorSummaryValue = null;
    if (indicatorSummary.isPresent()) {
        indicatorSummaryValue = indicatorSummary.get();
        getFormFactory().addFormPanelTextFields(verticalLayout, indicatorSummaryValue, ViewWorldbankIndicatorDataCountrySummary.class, AS_LIST);
    }
    final DataContainer<WorldBankData, Serializable> dataContainer = getApplicationManager().getDataContainer(WorldBankData.class);
    final List<WorldBankData> dataList = dataContainer.findListByEmbeddedProperty(WorldBankData.class, WorldBankData_.indicator, Indicator.class, Indicator_.id, indicator);
    chartDataManager.createIndicatorChart(verticalLayout, dataList, indicatorSummaryValue);
}
Also used : PageMode(com.hack23.cia.web.impl.ui.application.views.common.viewnames.PageMode) Panel(com.vaadin.ui.Panel) Arrays(java.util.Arrays) MenuBar(com.vaadin.ui.MenuBar) ApplicationEventGroup(com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup) VerticalLayout(com.vaadin.ui.VerticalLayout) WorldBankData_(com.hack23.cia.model.external.worldbank.data.impl.WorldBankData_) Autowired(org.springframework.beans.factory.annotation.Autowired) Indicator_(com.hack23.cia.model.external.worldbank.data.impl.Indicator_) Serializable(java.io.Serializable) Secured(org.springframework.security.access.annotation.Secured) DataContainer(com.hack23.cia.service.api.DataContainer) List(java.util.List) Component(org.springframework.stereotype.Component) WorldBankData(com.hack23.cia.model.external.worldbank.data.impl.WorldBankData) Layout(com.vaadin.ui.Layout) ViewAction(com.hack23.cia.web.impl.ui.application.action.ViewAction) Indicator(com.hack23.cia.model.external.worldbank.data.impl.Indicator) WorldbankIndicatorDataCountrySummaryEmbeddedId(com.hack23.cia.model.internal.application.data.impl.WorldbankIndicatorDataCountrySummaryEmbeddedId) ViewWorldbankIndicatorDataCountrySummary(com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary) Optional(java.util.Optional) WorldIndicatorChartDataManager(com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.WorldIndicatorChartDataManager) WorldbankIndicatorDataCountrySummaryEmbeddedId(com.hack23.cia.model.internal.application.data.impl.WorldbankIndicatorDataCountrySummaryEmbeddedId) ViewWorldbankIndicatorDataCountrySummary(com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary) Serializable(java.io.Serializable) WorldBankData(com.hack23.cia.model.external.worldbank.data.impl.WorldBankData)

Aggregations

List (java.util.List)3 WorldBankData (com.hack23.cia.model.external.worldbank.data.impl.WorldBankData)2 ViewWorldbankIndicatorDataCountrySummary (com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary)2 WorldbankIndicatorDataCountrySummaryEmbeddedId (com.hack23.cia.model.internal.application.data.impl.WorldbankIndicatorDataCountrySummaryEmbeddedId)2 DataContainer (com.hack23.cia.service.api.DataContainer)2 PageMode (com.hack23.cia.web.impl.ui.application.views.common.viewnames.PageMode)2 MenuBar (com.vaadin.ui.MenuBar)2 VerticalLayout (com.vaadin.ui.VerticalLayout)2 Arrays (java.util.Arrays)2 Autowired (org.springframework.beans.factory.annotation.Autowired)2 Country (com.hack23.cia.model.external.worldbank.data.impl.Country)1 Indicator (com.hack23.cia.model.external.worldbank.data.impl.Indicator)1 Indicator_ (com.hack23.cia.model.external.worldbank.data.impl.Indicator_)1 WorldBankData_ (com.hack23.cia.model.external.worldbank.data.impl.WorldBankData_)1 ViewWorldbankIndicatorDataCountrySummary_ (com.hack23.cia.model.internal.application.data.impl.ViewWorldbankIndicatorDataCountrySummary_)1 WorldbankIndicatorDataCountrySummaryEmbeddedId_ (com.hack23.cia.model.internal.application.data.impl.WorldbankIndicatorDataCountrySummaryEmbeddedId_)1 ApplicationEventGroup (com.hack23.cia.model.internal.application.system.impl.ApplicationEventGroup)1 ApplicationManager (com.hack23.cia.service.api.ApplicationManager)1 ViewAction (com.hack23.cia.web.impl.ui.application.action.ViewAction)1 WorldIndicatorChartDataManager (com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.WorldIndicatorChartDataManager)1