BallotChartDataManagerImpl.java

  1. /*
  2.  * Copyright 2010-2025 James Pether Sörling
  3.  *
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  *
  8.  *   http://www.apache.org/licenses/LICENSE-2.0
  9.  *
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  *
  16.  *  $Id$
  17.  *  $HeadURL$
  18.  */
  19. package com.hack23.cia.web.impl.ui.application.views.common.chartfactory.impl;

  20. import java.util.List;

  21. import org.dussan.vaadin.dcharts.DCharts;
  22. import org.dussan.vaadin.dcharts.base.elements.XYseries;
  23. import org.dussan.vaadin.dcharts.data.DataSeries;
  24. import org.dussan.vaadin.dcharts.options.Series;
  25. import org.springframework.stereotype.Service;

  26. import com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotPartySummary;
  27. import com.hack23.cia.model.internal.application.data.committee.impl.ViewRiksdagenVoteDataBallotSummary;
  28. import com.hack23.cia.web.impl.ui.application.views.common.chartfactory.api.BallotChartDataManager;
  29. import com.vaadin.ui.AbstractOrderedLayout;
  30. import com.vaadin.ui.TabSheet.Tab;

  31. /**
  32.  * The Class BallotChartDataManagerImpl.
  33.  */
  34. @Service
  35. public final class BallotChartDataManagerImpl extends AbstractChartDataManagerImpl implements BallotChartDataManager {

  36.     /**
  37.      * Instantiates a new ballot chart data manager impl.
  38.      */
  39.     public BallotChartDataManagerImpl() {
  40.         super();
  41.     }


  42.     /**
  43.      * Creates the chart.
  44.      *
  45.      * @param tab the tab
  46.      * @param content the content
  47.      * @param partySummaries the party summaries
  48.      */
  49.     @Override
  50.     public void createChart(final Tab tab,final AbstractOrderedLayout content,final List<ViewRiksdagenVoteDataBallotPartySummary> partySummaries) {
  51.         final DataSeries dataSeries = new DataSeries();

  52.         final Series series = new Series();

  53.         series.addSeries(new XYseries().setLabel("Yes"));
  54.         series.addSeries(new XYseries().setLabel("No"));
  55.         series.addSeries(new XYseries().setLabel("Abstain"));
  56.         series.addSeries(new XYseries().setLabel("Absent"));

  57.         String caption=null;
  58.         for (final ViewRiksdagenVoteDataBallotPartySummary partySummary : partySummaries) {
  59.             if (caption == null) {
  60.                 caption = "Party Summary : " + partySummary.getEmbeddedId().getIssue() + " " + partySummary.getEmbeddedId().getConcern();
  61.                 content.setCaption(caption);
  62.                 tab.setCaption(caption);
  63.             }

  64.             dataSeries.newSeries()
  65.             .add(getPartyName(partySummary.getEmbeddedId().getParty()), partySummary.getPartyYesVotes())
  66.             .add(getPartyName(partySummary.getEmbeddedId().getParty()),partySummary.getPartyNoVotes())
  67.             .add(getPartyName(partySummary.getEmbeddedId().getParty()),partySummary.getPartyAbstainVotes())
  68.             .add(getPartyName(partySummary.getEmbeddedId().getParty()),partySummary.getPartyAbsentVotes());
  69.         }


  70.         addChart(content,caption + " ( 4 circles Yes/No/Abstain/Absent votes by party )", new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsDonoutChartWithSeries(series)).show(), true);
  71.     }



  72.     /**
  73.      * Creates the chart.
  74.      *
  75.      * @param tab the tab
  76.      * @param content the content
  77.      * @param ballotSummary the ballot summary
  78.      */
  79.     @Override
  80.     public void createChart(final Tab tab,final AbstractOrderedLayout content,final ViewRiksdagenVoteDataBallotSummary ballotSummary) {
  81.         final DataSeries dataSeries = new DataSeries();

  82.         dataSeries.newSeries().add("Yes", ballotSummary.getYesVotes());
  83.         dataSeries.newSeries().add("No", ballotSummary.getNoVotes());
  84.         dataSeries.newSeries().add("Abstain", ballotSummary.getAbstainVotes());
  85.         dataSeries.newSeries().add("Absent", ballotSummary.getAbsentVotes());

  86.         final String caption = "Summary : " +ballotSummary.getEmbeddedId().getIssue() + " " + ballotSummary.getEmbeddedId().getConcern();
  87.         tab.setCaption(caption);

  88.         addChart(content,caption, new DCharts().setDataSeries(dataSeries).setOptions(getChartOptions().createOptionsDonoutChart()).show(), true);
  89.     }


  90. }