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

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

import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.presentation.table.AbstractColumnEntry;
import de.ivu.elect.presentation.verteilung.VerteilungBerechnenViewTeilnehmerErgebnis;

public class VerteilungBerechnenViewDivisorColumnBuilder extends AbstractVerteilungBerechnenViewZuteilungsdivisorResultColumnBuilder {

  private static final long serialVersionUID = 1L;

  private AbstractColumnEntry<VerteilungBerechnenViewTeilnehmerErgebnis> verteilungBerechnenViewTeilnehmerErgebnisAnzahlSitzeAnspruchColumn;

  public VerteilungBerechnenViewDivisorColumnBuilder() {
    super();
  }

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

    verteilungBerechnenViewTeilnehmerErgebnisAnzahlSitzeAnspruchColumn = new VerteilungBerechnenViewTeilnehmerErgebnisAnzahlSitzeAnspruchColumn(getMessages(), getLocale(), false);
  }

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

    result.add(verteilungBerechnenViewTeilnehmerErgebnisAnzahlSitzeAnspruchColumn);

    return result;
  }

  @Override
  protected AbstractVerteilungBerechnenViewTeilnehmerErgebnisQuotientColumn createTeilnehmerErgebnisQuotientGemeinColumn() {
    String id = "VerteilungBerechnenViewDivisorTeilnehmerErgebnisQuotientGemeinColumn";

    return new AbstractVerteilungBerechnenViewTeilnehmerErgebnisQuotientColumn(id, getMessages(), getLocale(), id + ".header", (context, quotient) -> quotient.formatGemein(context), false, false,
        false) {

      private static final long serialVersionUID = 1L;
    };
  }

  @Override
  protected AbstractVerteilungBerechnenViewTeilnehmerErgebnisQuotientColumn createTeilnehmerErgebnisQuotientDezimalColumn() {
    String id = "VerteilungBerechnenViewDivisorTeilnehmerErgebnisQuotientDezimalColumn";

    return new AbstractVerteilungBerechnenViewTeilnehmerErgebnisQuotientColumn(id, getMessages(), getLocale(), id + ".header", (context, quotient) -> quotient.formatDezimal(context), false, false,
        false) {

      private static final long serialVersionUID = 1L;
    };
  }
}
