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

import java.io.Serializable;

import de.ivu.elect.business.wahllokalsystem.entity.WahllokalsystemStatus;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;

public class WahllokalsystemStatusViewFormBuilder implements Serializable {

  private static final long serialVersionUID = 1L;

  public void addProperties(FormBuilder formBuilder, WahllokalsystemStatus wahllokalsystemStatus) {

    addAusstattungProperties(formBuilder, wahllokalsystemStatus, false);
    addMeldungProperties(formBuilder, wahllokalsystemStatus, false);
    addWaehlerProperties(formBuilder, wahllokalsystemStatus, false);
    formBuilder.addSeparator("wahllokalsystem.status.section.dokumente");
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getSchnellmeldungSendenProperty());
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getSchnellmeldungDruckenProperty());
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getNiederschriftSendenProperty());
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getNiederschriftDruckenProperty());
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getNiederschriftEingangProperty());
  }

  public void addWaehlerProperties(FormBuilder formBuilder, WahllokalsystemStatus wahllokalsystemStatus, boolean readOnly) {
    formBuilder.addSeparator("wahllokalsystem.status.section.waehler");
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getAnzahlWaehlerZeitpunktProperty()).withReadonly(readOnly);
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getAnzahlWaehlerProperty()).withReadonly(readOnly);
  }

  public void addMeldungProperties(FormBuilder formBuilder, WahllokalsystemStatus wahllokalsystemStatus, boolean readOnly) {
    formBuilder.addSeparator("wahllokalsystem.status.section.meldung");
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getLetzteMeldungProperty()).withReadonly(readOnly);
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getLetzteAbmeldungProperty()).withReadonly(readOnly);
  }

  public void addAusstattungProperties(FormBuilder formBuilder, WahllokalsystemStatus wahllokalsystemStatus, boolean readOnly) {
    formBuilder.addSeparator("wahllokalsystem.status.section.ausstattung");
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getAusstattungProperty()).withReadonly(readOnly);
    formBuilder.addProperty(wahllokalsystemStatus.getProperties().getBemerkungProperty()).withReadonly(readOnly);
  }

}
