
package de.ivu.elect.presentation.kandidatur;

import javax.annotation.Nullable;
import javax.inject.Inject;

import de.ivu.elect.business.kandidatur.boundary.WaehlerBenannteKandidaturKonfiguration;
import de.ivu.elect.business.kandidatur.entity.Listenkandidatur;
import de.ivu.elect.business.wahlvorschlag.entity.Liste;
import de.ivu.elect.presentation.kandidatur.form.WaehlerBenannteKandidaturViewFormBuilder;

public class WaehlerBenannteListenkandidaturCreateViewHelper extends AbstractListenkandidaturCreateViewHelper {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WaehlerBenannteKandidaturViewFormBuilder waehlerBenannteKandidaturViewFormBuilder;

  public WaehlerBenannteListenkandidaturCreateViewHelper() {
    super();
  }

  @Override
  @Nullable
  public String checkPreCondition() {
    if (isListeForGebietSelected() && waehlerBenannteKandidaturViewFormBuilder.isWaehlerBenannteListe(getSelectedListe())) {
      return null;
    }

    return cancel();
  }

  @Override
  public String getViewId() {
    return WaehlerBenannteListenkandidaturCreateView.VIEW_ID;
  }

  @Override
  public String getParentViewId() {
    return WaehlerBenannteListenkandidaturCreateView.PARENT_VIEW_ID;
  }

  @Override
  protected WaehlerBenannteKandidaturViewFormBuilder getViewFormBuilder() {
    return waehlerBenannteKandidaturViewFormBuilder;
  }

  @Override
  public void init(Liste liste, Long listenposition, Listenkandidatur listenkandidatur) {
    super.init(liste, listenposition, listenkandidatur);

    listenkandidatur.setListenkandidaturArt(WaehlerBenannteKandidaturKonfiguration.WAEHLER_BENANNTE_LISTENKANDIDATUR_LISTENKANDIDATUR_ART_DEFAULT);
    listenkandidatur.setKandidaturStatus(WaehlerBenannteKandidaturKonfiguration.WAEHLER_BENANNTE_KANDIDATUR_KANDIDATUR_STATUS_DEFAULT);
  }
}
