
package de.ivu.elect.presentation.exchange;

import java.util.List;

import javax.inject.Inject;

import de.ivu.elect.jee.presentation.search.Pagination;
import de.ivu.elect.jee.presentation.search.PaginationDefaultView;

public abstract class AbstractImportExportSearchView<Context, DateiImportExport> extends AbstractImportExportView<Context> implements Pagination {

  public abstract List<DateiImportExport> getSearchResult();

  @Inject
  private transient PaginationDefaultView paginationDefaultView;

  public AbstractImportExportSearchView() {
    super();
  }

  @Override
  public int getSearchResultSize() {
    return getSearchResult().size();
  }

  @Override
  public int getDefaultPageSize() {
    return getPageSizeConfigured();
  }

  protected int getPageSizeConfigured() {
    return paginationDefaultView.getPageSizeConfigured(getSearchResultSize());
  }

  @Override
  public double getPageSizeLazyFactor() {
    return paginationDefaultView.getPageSizeLazyFactor();
  }

  @Override
  public String getAnzahlTrefferLabel() {
    return paginationDefaultView.getAnzahlTrefferLabel(getSearchResultSize());
  }

  @Override
  public int getRows() {
    return paginationDefaultView.getRows(getSearchResultSize(), getDefaultPageSize());
  }

  @Override
  public String getRowsPerPageTemplate() {
    return paginationDefaultView.getRowsPerPageTemplate(getSearchResultSize(), getDefaultPageSize());
  }

  @Override
  public boolean isLazy() {
    return isPaginator();
  }

  @Override
  public boolean isShowPaginator() {
    return paginationDefaultView.isShowPaginator(getSearchResultSize());
  }

  @Override
  public boolean isPaginator() {
    return isPaginator(getSearchResultSize());
  }

  @Override
  public boolean isPaginator(int searchResultSize) {
    return paginationDefaultView.isPaginator(searchResultSize, getDefaultPageSize());
  }

  @Override
  public String getPaginatorTemplate() {
    return paginationDefaultView.getPaginatorTemplate(getSearchResultSize(), getDefaultPageSize());
  }

  @Override
  public String getPaginatorPosition() {
    return paginationDefaultView.getPaginatorPosition(getSearchResultSize(), getDefaultPageSize());
  }
}
