
package de.ivu.elect.presentation.niederschrift;

import static java.util.Collections.emptyList;

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.gebietsbaum.boundary.WahldurchfuehrungsgebietSessionSelect;
import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.niederschrift.entity.NiederschriftKorrektur;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.presentation.gebietsbaum.GebietNummerFormatter;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;
import de.ivu.elect.presentation.niederschrift.form.NiederschriftKorrekturViewFormBuilder;

@OnlineHilfeId(value = "252", mehrfachVergebenOk = true)
@Named(AbstractNiederschriftKorrekturEditNoScopeView.COMPONENT_NAME)
public class NiederschriftKorrekturEditView extends AbstractNiederschriftKorrekturEditView {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WahldurchfuehrungsgebietSessionSelect wahldurchfuehrungsgebietSessionSelect;

  @Inject
  private transient GebietNummerFormatter gebietNummerFormatter;

  @Inject
  private transient NiederschriftKorrekturViewFormBuilder niederschriftKorrekturViewFormBuilder;

  public NiederschriftKorrekturEditView() {
    super();
  }

  @Override
  protected boolean isGebietBearbeitenRechtPruefen() {
    return true;
  }

  @Override
  public void addProperties(FormBuilder formBuilder, NiederschriftKorrektur niederschriftKorrektur) {
    niederschriftKorrekturViewFormBuilder.addProperties(formBuilder, niederschriftKorrektur, emptyList(), false);
  }

  public String getGebietNameMitNummer() {
    return gebietNummerFormatter.getNameMitNummer(getSelectedWahldurchfuehrungsgebiet());
  }

  private boolean isWahldurchfuehrungsgebietSelected() {
    return wahldurchfuehrungsgebietSessionSelect.isSelected();
  }

  private Wahldurchfuehrungsgebiet getSelectedWahldurchfuehrungsgebiet() {
    return wahldurchfuehrungsgebietSessionSelect.getEntity();
  }
}
