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

import java.io.Serializable;

import javax.inject.Inject;

import de.ivu.elect.business.gruppe.entity.GruppeProperties;
import de.ivu.elect.business.gruppe.entity.ReferendumVorlageMeta;
import de.ivu.elect.business.gruppeimgebiet.entity.GruppeImGebiet;
import de.ivu.elect.business.gruppeimgebiet.entity.GruppeImGebietProperties;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.jee.presentation.dynamicform.PropertyType;

public class ReferendumVorlageImGebietViewFormBuilder implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private ReferendumVorlageMeta referendumVorlageMeta;

  @Inject
  private GruppeImGebietUniquePositionFacesValidator referendumVorlageImGebietUniquePositionValidator;

  public ReferendumVorlageImGebietViewFormBuilder() {
    super();
  }

  public void addProperties(FormBuilder formBuilder, GruppeImGebiet referendumVorlageImGebiet) {
    GruppeProperties referendumVorlageProperties = referendumVorlageImGebiet.getGruppe().getProperties();

    formBuilder.addProperty(referendumVorlageProperties.getSchluesselProperty());
    formBuilder.addProperty(referendumVorlageProperties.getKurznameProperty());

    formBuilder.addProperty(referendumVorlageProperties.getNameProperty()).withType(PropertyType.INPUT_TEXTAREA)
        .withLabel(referendumVorlageMeta.getNameEinzahlMessage());

    GruppeImGebietProperties referendumVorlageImGebietProperties = referendumVorlageImGebiet.getProperties();

    formBuilder.addProperty(referendumVorlageImGebietProperties.getRelativePositionProperty()).required()
        .withValidatorAndPk(referendumVorlageImGebietUniquePositionValidator, referendumVorlageImGebiet.getPk());
  }
}
