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

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

import javax.inject.Named;

import de.ivu.elect.jee.presentation.dynamictable.AbstractColumnBuilder;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.presentation.dokumente.exchange.DokumentBulkExportSearchEntry;

@Named(DokumentBulkExportSearchEntryColumnBuilder.COMPONENT_NAME)
public class DokumentBulkExportSearchEntryColumnBuilder extends AbstractColumnBuilder<DokumentBulkExportSearchEntry> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "dokumentBulkExportSearchEntryColumnBuilder";

  private AbstractDokumentBulkExportSearchEntryColumn dokumentBulkExportSearchEntryDokumentBezeichnungColumn;

  private AbstractDokumentBulkExportSearchEntryColumn dokumentBulkExportSearchEntryDokumentBeschreibungColumn;

  private AbstractDokumentBulkExportSearchEntryColumn dokumentBulkExportSearchEntryFileTypeColumn;

  private AbstractDokumentBulkExportSearchEntryColumn dokumentBulkExportSearchEntryDokumentVorlageNameColumn;

  private AbstractDokumentBulkExportSearchEntryColumn dokumentBulkExportSearchEntryDokumentVorlageAktualisiertAmColumn;

  public DokumentBulkExportSearchEntryColumnBuilder() {
    super();
  }

  @Override
  public boolean isColumnsSortableByValue() {
    return false;
  }

  @Override
  protected void initColumns() {
    dokumentBulkExportSearchEntryDokumentBeschreibungColumn = AbstractDokumentBulkExportSearchEntryColumn.createDokumentBulkExportSearchEntryDokumentBeschreibungColumn(getMessages());
    dokumentBulkExportSearchEntryDokumentBezeichnungColumn = AbstractDokumentBulkExportSearchEntryColumn.createDokumentBulkExportSearchEntryDokumentBezeichnungColumn(getMessages());
    dokumentBulkExportSearchEntryFileTypeColumn = AbstractDokumentBulkExportSearchEntryColumn.createDokumentBulkExportSearchEntryFileTypeColumn(getMessages());

    dokumentBulkExportSearchEntryDokumentVorlageNameColumn = AbstractDokumentBulkExportSearchEntryColumn.createDokumentBulkExportSearchEntryDokumentVorlageNameColumn(getMessages());
    dokumentBulkExportSearchEntryDokumentVorlageAktualisiertAmColumn = AbstractDokumentBulkExportSearchEntryColumn
        .createDokumentBulkExportSearchEntryDokumentVorlageAktualisiertAmColumn(getMessages());
  }

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

    result.add(dokumentBulkExportSearchEntryDokumentBeschreibungColumn);
    result.add(dokumentBulkExportSearchEntryDokumentBezeichnungColumn);
    // result.add(dokumentBulkExportSearchEntryFileTypeColumn); // Sieht verwirrend aus bei gleiche Dokumentarten und verschiedene Dateitypen (ODT/ZIP)...

    result.add(dokumentBulkExportSearchEntryDokumentVorlageNameColumn);
    result.add(dokumentBulkExportSearchEntryDokumentVorlageAktualisiertAmColumn);

    return result;
  }
}
