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

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

import javax.inject.Named;

import de.ivu.elect.business.kandidatur.entity.Kandidatur;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.presentation.kandidatur.table.AbstractKandidaturColumnBuilder;
import de.ivu.elect.presentation.kandidatur.table.KandidaturPolitischeGruppeColumn;
import de.ivu.elect.presentation.kandidatur.table.NlKandidaturInitialenMitVornameColumn;
import de.ivu.elect.presentation.person.table.AbstractPersonendatenColumn;
import de.ivu.elect.presentation.table.AbstractColumnEntry;

@Named(VerstorbeneKandidatenColumnBuilder.COMPONENT_NAME)
public class VerstorbeneKandidatenColumnBuilder extends AbstractKandidaturColumnBuilder {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "verstorbeneKandidatenColumnBuilder";

  private AbstractColumnEntry<Kandidatur> listenkandidaturPolitischeGruppeColumn;

  private AbstractColumnEntry<Kandidatur> listenkandidaturFamiliennameBestandteilColumn;

  private AbstractColumnEntry<Kandidatur> listenkandidaturFamiliennameColumn;

  private AbstractColumnEntry<Kandidatur> listenkandidaturInitialenMitVornameColumn;

  public VerstorbeneKandidatenColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    listenkandidaturPolitischeGruppeColumn = new KandidaturPolitischeGruppeColumn(getMessages());

    listenkandidaturFamiliennameBestandteilColumn = AbstractPersonendatenColumn.createPersonendatenFamiliennameBestandteilColumn(getMessages());
    listenkandidaturFamiliennameColumn = AbstractPersonendatenColumn.createPersonendatenFamiliennameColumn(getMessages());
    listenkandidaturInitialenMitVornameColumn = new NlKandidaturInitialenMitVornameColumn(getMessages(), getPersonendatenFormatter());
  }

  @Override
  protected List<ColumnEntry< ? super Kandidatur>> getColumnEntriesSorted() {
    List<ColumnEntry< ? super Kandidatur>> result = new ArrayList<>();

    /*
     * Cf. NlWasKandidaturColumnBuilder, NlWasListenkandidaturColumnBuilder!!!
     */

    // ELECTVAPP-1657, ELECTVAPP-1658
    result.add(listenkandidaturFamiliennameBestandteilColumn);
    result.add(listenkandidaturFamiliennameColumn);
    result.add(listenkandidaturInitialenMitVornameColumn);

    result.add(listenkandidaturPolitischeGruppeColumn);

    return result;
  }

  @Override
  protected void addColumnEntriesGruppeGebiet(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesStimmzetteldaten(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesKandidaturdaten(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesPersonendaten(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesBeschaeftigungsdaten(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesAnschrift(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesGewaehlt(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesVerknuepfungen(List<ColumnEntry< ? super Kandidatur>> result) {

  }

  @Override
  protected void addColumnEntriesZulassungspruefung(List<ColumnEntry< ? super Kandidatur>> result) {

  }
}
