
package de.ivu.elect.presentation.gruppe.table;

import static org.apache.commons.lang3.StringUtils.defaultIfBlank;
import static org.apache.commons.lang3.StringUtils.trimToEmpty;

import de.ivu.elect.business.gruppe.entity.KopfzahlKumulierteStimmen;
import de.ivu.elect.business.gruppe.entity.SystemGruppeEigenschaften;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

public class KopfzahlKumulierteStimmenAnteilColumn extends AbstractKopfzahlKumulierteStimmenColumn {

  private static final long serialVersionUID = 1L;

  public KopfzahlKumulierteStimmenAnteilColumn(Messages messages, SystemGruppeEigenschaften systemGruppeEigenschaften) {
    super(messages, systemGruppeEigenschaften);
  }

  @Override
  public ColumnType getType() {
    return AbstractGruppeKumulierteStimmenAnteilColumn.STIMMEN_ANTEIL_COLUMN_TYPE;
  }

  @Override
  public String getHeader() {
    return getMessage("gruppe.kumulierte.stimmen.anteil");
  }

  @Override
  public Object getValue(KopfzahlKumulierteStimmen kopfzahlKumulierteStimmen) {
    if (isSystemGruppeWaehler(kopfzahlKumulierteStimmen.getGruppeImGebiet())) {
      return kopfzahlKumulierteStimmen.getAnteil();
    }

    return null;
  }

  @Override
  public String getTooltip(KopfzahlKumulierteStimmen kopfzahlKumulierteStimmen) {
    return defaultIfBlank(super.getTooltip(kopfzahlKumulierteStimmen), kopfzahlKumulierteStimmen.getAnteilTooltip());
  }

  @Override
  public String getStyleClass() {
    return trimToEmpty(super.getStyleClass()) + " " + AbstractGruppeKumulierteStimmenColumn.ANTEIL_COLUMN_STYLE_CLASS;
  }
}
