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

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.kandidatur.table.NlWasKandidaturStimmzettelPositionColumn;
import de.ivu.elect.presentation.person.table.AbstractPersonendatenColumn;
import de.ivu.elect.presentation.table.AbstractColumnEntry;

import javax.inject.Named;
import java.util.ArrayList;
import java.util.List;

@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> kandidaturInitialenColumn;
    private AbstractColumnEntry<Kandidatur> kandidaturPolitischeGruppeColumn;
    private AbstractColumnEntry<Kandidatur> listenkandidaturFamiliennameColumn;
    private AbstractColumnEntry<Kandidatur> listenkandidaturFamiliennameBestandteilColumn;
    private AbstractColumnEntry<Kandidatur> listenkandidaturStimmzettelPositionColumn;

    public VerstorbeneKandidatenColumnBuilder() {
        super();
    }

    @Override
    protected void initColumns() {

        kandidaturPolitischeGruppeColumn = new KandidaturPolitischeGruppeColumn(getMessages());
        listenkandidaturFamiliennameColumn = AbstractPersonendatenColumn.createPersonendatenFamiliennameColumn(getMessages());
        listenkandidaturFamiliennameBestandteilColumn = AbstractPersonendatenColumn.createPersonendatenFamiliennameBestandteilColumn(getMessages());
        kandidaturInitialenColumn = new NlKandidaturInitialenMitVornameColumn(getMessages(), getPersonendatenFormatter());
        listenkandidaturStimmzettelPositionColumn = new NlWasKandidaturStimmzettelPositionColumn<>(getMessages(), getIcons(), getSelectedGebiet(), getEntityAufStimmzettelDaten());

    }

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

        result.add(listenkandidaturFamiliennameBestandteilColumn);
        result.add(listenkandidaturFamiliennameColumn);
        result.add(kandidaturInitialenColumn);

        result.add(kandidaturPolitischeGruppeColumn);

        result.add(listenkandidaturStimmzettelPositionColumn);


        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) {

    }


}
