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

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

import javax.inject.Named;

import de.ivu.elect.business.internet.entity.InternetSeite;
import de.ivu.elect.jee.presentation.dynamictable.AbstractColumnBuilder;
import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;

@Named(InternetSeiteColumnBuilder.COMPONENT_NAME)
public class InternetSeiteColumnBuilder extends AbstractColumnBuilder<InternetSeite> {

  public static final String COMPONENT_NAME = "internetSeiteColumnBuilder";

  private static final long serialVersionUID = 1L;

  private AbstractInternetSeiteColumn<InternetSeite> internetSeitePositionColumn;

  private AbstractInternetSeiteColumn<InternetSeite> internetSeiteTitelColumn;

  private AbstractInternetSeiteColumn<InternetSeite> internetSeiteSeitenTypColumn;

  private AbstractInternetSeiteColumn<InternetSeite> internetSeiteStatusColumn;

  private AbstractInternetSeiteColumn<InternetSeite> internetSeiteBeschreibungColumn;

  public InternetSeiteColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    internetSeitePositionColumn = AbstractInternetSeiteColumn.createInternetSeitePositionColumn(getMessages());
    internetSeiteTitelColumn = AbstractInternetSeiteColumn.createInternetSeiteTitelColumn(getMessages());
    internetSeiteSeitenTypColumn = new InterneSeiteTypColumn(AbstractInternetSeiteColumn.createInternetSeiteSeitenTypColumn(getMessages()), messages);
    internetSeiteStatusColumn = new InternetSeiteStatusColumn(AbstractInternetSeiteColumn.createInternetSeiteStatusColumn(getMessages()), messages);
    internetSeiteBeschreibungColumn = AbstractInternetSeiteColumn.createInternetSeiteBeschreibungColumn(getMessages());
  }

  @Override
  protected List<ColumnEntry<? super InternetSeite>> getColumnEntriesSorted() {
    List<ColumnEntry<? super InternetSeite>> result = new ArrayList<>();
    result.add(internetSeitePositionColumn);
    result.add(internetSeiteTitelColumn);
    result.add(internetSeiteSeitenTypColumn);
    result.add(internetSeiteStatusColumn);
    result.add(internetSeiteBeschreibungColumn);
    return result;
  }

}
