
package de.ivu.elect.presentation.dokumente;

import java.util.List;

import javax.faces.convert.Converter;

import de.ivu.elect.business.dokumente.entity.DokumentVorlage;
import de.ivu.elect.business.dokumente.entity.DokumentVorlageMeta;
import de.ivu.elect.jee.faces.EntityConverter;
import de.ivu.elect.jee.presentation.dynamicform.AbstractSelectOneMenuProperty;

public class DokumentErzeugenFileFormatProperty extends AbstractSelectOneMenuProperty<DokumentVorlage> {

  private final DokumentVorlageMeta dokumentVorlageMeta;

  private final AbstractDokumentErzeugenView dokumentErzeugenView;

  public DokumentErzeugenFileFormatProperty(DokumentVorlageMeta dokumentVorlageMeta, AbstractDokumentErzeugenView dokumentErzeugenView) {
    super();

    this.dokumentVorlageMeta = dokumentVorlageMeta;
    this.dokumentErzeugenView = dokumentErzeugenView;
  }

  @Override
  public Converter getDefaultConverter() {
    return EntityConverter.getInstance();
  }

  @Override
  public String getDefaultLabel() {
    return dokumentVorlageMeta.getEinzahlMessage();
  }

  @Override
  public boolean getDefaultRequired() {
    return true;
  }

  @Override
  public DokumentVorlage getValue() {
    return dokumentErzeugenView.getSelectedDokumentVorlage();
  }

  @Override
  public void setValue(DokumentVorlage dokumentVorlage) {
    dokumentErzeugenView.setSelectedDokumentVorlage(dokumentVorlage);
  }

  @Override
  public List<DokumentVorlage> getValues() {
    return dokumentErzeugenView.getDokumentVorlagen();
  }

  @Override
  public String getItemLabel(DokumentVorlage dokumentVorlage) {
    return dokumentVorlage.getName();
  }
}
