
package de.ivu.elect.presentation.wahlvorschlagsperson.form;

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

import javax.enterprise.inject.Specializes;

import de.ivu.elect.business.wahlvorschlag.entity.NlListe;
import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPerson;
import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;

@Specializes
public class NlBeauftragterViewFormBuilder extends BeauftragterViewFormBuilder {

  private static final long serialVersionUID = 1L;

  public NlBeauftragterViewFormBuilder() {
    super();
  }

  @Override
  public List<WahlvorschlagsPersonTyp> getRelevantWahlvorschlagsPersonTypen() {
    List<WahlvorschlagsPersonTyp> result = new ArrayList<>(super.getRelevantWahlvorschlagsPersonTypen());

    if (!result.contains(NlListe.LISTENBEAUFTRAGTER)) {
      result.add(NlListe.LISTENBEAUFTRAGTER);
    }

    return result;
  }

  /**
   * NOTE: NL-ViewFormBuilder sind unabhängig vom Produkt. (ELECT-9733)
   */
  @Override
  public void addProperties(FormBuilder formBuilder, WahlvorschlagsPerson beauftragter, boolean propertiesReadonly) {
    addWahlvorschlagsPersonPersonendatenProperties(formBuilder, beauftragter, propertiesReadonly);
  }

  /**
   * NOTE: NL-ViewFormBuilder sind unabhängig vom Produkt. (ELECT-9733)
   */
  @Override
  protected void addWahlvorschlagsPersonPersonendatenProperties(FormBuilder formBuilder, WahlvorschlagsPerson beauftragter, boolean propertiesReadonly) {
    getWahlvorschlagsPersonViewFormBuilder().addWahlvorschlagsPersonPersonendatenProperties(formBuilder, beauftragter, propertiesReadonly);
  }
}
