
package de.ivu.elect.presentation.wahlvorschlagsperson;

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

import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp;
import de.ivu.elect.presentation.View;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;
import de.ivu.elect.presentation.wahlvorschlagsperson.form.AbstractWahlvorschlagsPersonViewFormBuilder;

@OnlineHilfeId(value = "446", mehrfachVergebenOk = true)
@Named(BeauftragterCreateView.COMPONENT_NAME)
@View(viewId = BeauftragterCreateView.VIEW_ID, useCase = UseCasePermission.WAHLVORSCHLAGS_PERSON_CREATE)
public class BeauftragterCreateView extends AbstractDynaFormWahlvorschlagsPersonCreateView {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "beauftragterCreateView";

  public static final String VIEW_ID = "/wahlvorschlagsperson/beauftragter-create.xhtml";

  @Inject
  private transient BeauftragterCreateViewHelper beauftragterCreateViewHelper;

  public BeauftragterCreateView() {
    super();
  }

  @Override
  protected String getViewId() {
    return VIEW_ID;
  }

  @Override
  protected WahlvorschlagsPersonTyp getInitialierWahlvorschlagsPersonTyp() {
    // NOTE, dass dieser Wert über ein SelectOneMenu zum Stellvertreter geändert werden kann
    return beauftragterCreateViewHelper.getInitialierWahlvorschlagsPersonTyp();
  }

  @Override
  protected AbstractWahlvorschlagsPersonViewFormBuilder getWahlvorschlagsPersonViewFormBuilder() {
    return beauftragterCreateViewHelper.getViewFormBuilder();
  }

  @Override
  protected AbstractWahlvorschlagspersonCreateViewHelper getWahlvorschlagspersonCreateViewHelper() {
    return beauftragterCreateViewHelper;
  }
}
