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

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gruppe.entity.GruppeKumulierteStimmen;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;
import de.ivu.elect.presentation.gebietsbaum.table.GebietGebietsartNameMitIconColumn;
import de.ivu.elect.presentation.gebietsbaum.tree.GebietsbaumTreeNodeIconResolver;
import de.ivu.elect.presentation.table.AbstractColumnEntry;

public class GruppeKumulierteStimmenGebietArtColumn extends AbstractGruppeKumulierteStimmenColumn {

  private static final long serialVersionUID = 1L;

  private final AbstractColumnEntry<Gebiet> gebietGebietsartNameMitIconColumn;

  public GruppeKumulierteStimmenGebietArtColumn(Messages messages, GebietsbaumTreeNodeIconResolver gebietsbaumTreeNodeIconResolver) {
    super(messages);

    this.gebietGebietsartNameMitIconColumn = new GebietGebietsartNameMitIconColumn(messages, gebietsbaumTreeNodeIconResolver);
  }

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

  @Override
  public String getHeader() {
    return gebietGebietsartNameMitIconColumn.getHeader();
  }

  @Override
  public String getHeaderIgnoringErgebnisartFuerDifferenz() {
    return getHeader();
  }

  @Override
  public Object getValue(GruppeKumulierteStimmen gruppeKumulierteStimmen) {
    return gebietGebietsartNameMitIconColumn.getDisplayValue(gruppeKumulierteStimmen.getGebiet());
  }

  @Override
  public boolean isIconRendered(GruppeKumulierteStimmen gruppeKumulierteStimmen) {
    return true;
  }

  @Override
  public boolean isIconPresent() {
    return true;
  }

  @Override
  public String getIcon(GruppeKumulierteStimmen gruppeKumulierteStimmen) {
    if (gruppeKumulierteStimmen == null) {
      return super.getIcon(gruppeKumulierteStimmen);
    }

    return gebietGebietsartNameMitIconColumn.getIcon(gruppeKumulierteStimmen.getGebiet());
  }

  @Override
  public String getIconTitle(GruppeKumulierteStimmen gruppeKumulierteStimmen) {
    if (gruppeKumulierteStimmen == null) {
      return super.getIconTitle(gruppeKumulierteStimmen);
    }

    return gebietGebietsartNameMitIconColumn.getIconTitle(gruppeKumulierteStimmen.getGebiet());
  }

  @Override
  public String getIconStyleClass(GruppeKumulierteStimmen gruppeKumulierteStimmen) {
    if (gruppeKumulierteStimmen == null) {
      return super.getIconStyleClass(gruppeKumulierteStimmen);
    }

    return gebietGebietsartNameMitIconColumn.getIconStyleClass(gruppeKumulierteStimmen.getGebiet());
  }

  @Override
  public String getIconStyle(GruppeKumulierteStimmen gruppeKumulierteStimmen) {
    if (gruppeKumulierteStimmen == null) {
      return super.getIconStyle(gruppeKumulierteStimmen);
    }

    return gebietGebietsartNameMitIconColumn.getIconStyle(gruppeKumulierteStimmen.getGebiet());
  }
}
