package de.ivu.elect.business.gruppe.control;

import java.util.List;
import java.util.function.Function;

import javax.annotation.Nullable;

import de.ivu.elect.business.ergebnis.entity.NachErfassungsgebietStimmenSearchGebietsauswahl;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.SvgLegendeKonfiguration;
import de.ivu.elect.business.gruppe.entity.SvgAnzahlEinteilung;
import de.ivu.elect.business.gruppe.entity.SvgArtEinteilung;

/**
 *  on 05.01.2016.
 */
public interface GebietSvgBuilderParameters {

  NachErfassungsgebietStimmenSearchGebietsauswahl getGebietsauswahl();

  long getWidthSvg();
  long getHeightSvg();

  /* true: Darstellung von Prozentwerten, false: stelle Gewinner pro Gebiet dar */
  boolean isProzentualeAngaben();


  SvgArtEinteilung getSvgArtEinteilung();

  SvgLegendeKonfiguration getSvgLegendeKonfiguration();

  SvgAnzahlEinteilung getSvgAnzahlEinteilung();

  Function<Gebiet, String> getGebietGewinnerFarbeFunction();

  Function<Gebiet, String> getGebietGewinnerNameFunction();

  void sortGewinnerNamnen(List<String> gewinner);

  @Nullable
  String getBasisFarbe();

  Function<Gebiet, Double> getGebietValueFunction();

}
