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

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

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.ergebniskonflikt.entity.ErgebnisKonflikt;
import de.ivu.elect.business.ergebniskonflikt.entity.ErgebnisKonfliktMeta;
import de.ivu.elect.jee.presentation.dynamictable.AbstractColumnBuilder;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;

@Named(ErgebnisKonfliktColumnBuilder.COMPONENT_NAME)
public class ErgebnisKonfliktColumnBuilder extends AbstractColumnBuilder<ErgebnisKonflikt> {

  public static final String COMPONENT_NAME = "ergebnisKonfliktColumnBuilder";

  private static final long serialVersionUID = 1L;

  @Inject
  ErgebnisKonfliktMeta ergebnisKonfliktMeta;

  AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktErgebnisKonfliktArtColumn;

  AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktErgebnisKonfliktStatusColumn;

  ErgebnisKonfliktKonfliktBeschreibungColumn ergebnisKonfliktKonfliktBeschreibungColumn;

  ErgebnisKonfliktLoesungBeschreibungColumn ergebnisKonfliktLoesungBeschreibungColumn;

  AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktLoesungVonColumn;

  AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktLoesungZeitpunktColumn;

  @Override
  protected void initColumns() {

    ergebnisKonfliktErgebnisKonfliktArtColumn =  AbstractErgebnisKonfliktColumn.createErgebnisKonfliktErgebnisKonfliktArtColumn(getMessages());
    ergebnisKonfliktErgebnisKonfliktStatusColumn =  AbstractErgebnisKonfliktColumn.createErgebnisKonfliktErgebnisKonfliktStatusColumn(getMessages());
    ergebnisKonfliktKonfliktBeschreibungColumn = new ErgebnisKonfliktKonfliktBeschreibungColumn(getMessages());
    ergebnisKonfliktLoesungBeschreibungColumn = new ErgebnisKonfliktLoesungBeschreibungColumn(getMessages());
    ergebnisKonfliktLoesungVonColumn =  AbstractErgebnisKonfliktColumn.createErgebnisKonfliktLoesungVonColumn(getMessages());
    ergebnisKonfliktLoesungZeitpunktColumn =  AbstractErgebnisKonfliktColumn.createErgebnisKonfliktLoesungZeitpunktColumn(getMessages());

  }

  @Override
  protected List<ColumnEntry<? super ErgebnisKonflikt>> getColumnEntriesSorted() {

    List<ColumnEntry<? super ErgebnisKonflikt>> result = new ArrayList<>();
    result.add(ergebnisKonfliktErgebnisKonfliktStatusColumn);
    result.add(ergebnisKonfliktErgebnisKonfliktArtColumn);
    result.add(ergebnisKonfliktKonfliktBeschreibungColumn);
    result.add(ergebnisKonfliktLoesungBeschreibungColumn);
    result.add(ergebnisKonfliktLoesungVonColumn);
    result.add(ergebnisKonfliktLoesungZeitpunktColumn);

    return result;
  }
}

