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

import java.util.ArrayList;
import java.util.List;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.praesentation.entity.PraesentationBereitstellen;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlParameterExtendedLoader;
import de.ivu.elect.business.wahl.entity.WahlParameterWerte;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;

@Specializes
public class WasBasisWahlColumnBuilder extends CommonWahlColumnBuilder {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WahlParameterExtendedLoader wahlParameterExtendedLoader;

  private AbstractWahldurchfuehrungColumn wahlPraesentationStatus;

  public WasBasisWahlColumnBuilder() {
    super();
  }

  @Override
  public void initColumns() {
    super.initColumns();

    wahlPraesentationStatus = new AbstractWahldurchfuehrungColumn<>("wahlPraesentationStatus", messages, "wahl.praesentation.status", ColumnType.ENUM, w ->
        wahlParameterExtendedLoader.resolveEnumValue(w, WahlParameterWerte.PREASENTATIION_STATUS, PraesentationBereitstellen.class)
    );

  }

  @Override
  public List<ColumnEntry< ? super Wahl>> getColumnEntriesSorted() {
    List<ColumnEntry< ? super Wahl>> result = new ArrayList<>(super.getColumnEntriesSorted());

    result.add(wahlPraesentationStatus);

    return result;
  }
}
