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

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

import javax.inject.Named;

import de.ivu.elect.business.ergebniskonflikt.entity.ErgebnisKonflikt;
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> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "ergebnisKonfliktColumnBuilder";

  private AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktErgebnisKonfliktArtColumn;

  private AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktErgebnisKonfliktStatusColumn;

  private AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktKonfliktBeschreibungColumn;

  private AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktLoesungBeschreibungColumn;

  private AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktLoesungVonColumn;

  private AbstractErgebnisKonfliktColumn<ErgebnisKonflikt> ergebnisKonfliktLoesungZeitpunktColumn;

  public ErgebnisKonfliktColumnBuilder() {
    super();
  }

  @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;
  }
}
