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

import de.ivu.elect.business.wahlvorschlag.entity.Liste;
import de.ivu.elect.business.wahlvorschlag.entity.ListeConstants;
import de.ivu.elect.jee.presentation.dynamicform.*;
import de.ivu.elect.presentation.wahlvorschlag.AutoUpdateWahlvorschlagKennwortProperty;
import de.ivu.elect.presentation.wahlvorschlag.WahlvorschlagGruppeFinder;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

@Specializes
public class NlListeViewFormBuilder extends ListeViewFormBuilder {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WahlvorschlagGruppeFinder wahlvorschlagGruppeFinder;

  /**
   * NOTE: NL-ViewFormBuilder sind unabhängig vom Produkt. (ELECT-9733)
   */
  @Override
  public void addProperties(FormBuilder formBuilder, Liste liste, boolean readonly) {

    WahlvorschlagGruppeFinderProperty gruppeFinderProperty =  wahlvorschlagGruppeFinder.getGruppeProperty(liste);

    formBuilder.addProperty(gruppeFinderProperty).withReadonly(liste.isPersistent()); // ELECT-177

    formBuilder.addSeparator(ListeConstants.MESSAGE_KEY_ENTITY_EINZAHL);

    AbstractStringProperty kennwortProperty = liste.getProperties().getKennwortProperty();
    formBuilder.addProperty(new AutoUpdateWahlvorschlagKennwortProperty(kennwortProperty, gruppeFinderProperty)).withObservedProperty(gruppeFinderProperty).required();
  }
}
