
package de.ivu.elect.presentation.kandidatur.menu;

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.kandidatur.boundary.EinzelbewerberKandidaturKonfiguration;
import de.ivu.elect.business.mandant.entity.Mandant;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.presentation.kandidatur.EinzelbewerberListenkandidaturCreateViewResolver;

public class EinzelbewerberListenkandidaturCreateMenuItemEntry extends AbstractListenkandidaturCreateMenuItemEntry {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient EinzelbewerberKandidaturKonfiguration einzelbewerberKandidaturKonfiguration;

  @Inject
  private transient EinzelbewerberListenkandidaturCreateViewResolver einzelbewerberListenkandidaturCreateViewResolver;

  public EinzelbewerberListenkandidaturCreateMenuItemEntry() {
    super();
  }

  @Override
  public boolean isRendered() {
    return hasUseCasePermission(UseCasePermission.LISTENKANDIDATUR_CREATE) && einzelbewerberKandidaturKonfiguration.isEinzelbewerberListenkandidaturAnlegenZulaessig(getSelectedGebiet());
  }

  @Override
  public boolean isDisabledInternal() {
    return !isGebietSelected();
  }

  @Override
  protected Gebiet getGebietFuerSecurity() {
    return getSelectedGebiet();
  }

  @Override
  protected String getViewId(Mandant mandant) {
    return einzelbewerberListenkandidaturCreateViewResolver.getViewId(mandant);
  }

  @Override
  protected String getEntityEinzahlMessageKey() {
    return EinzelbewerberKandidaturKonfiguration.MSG_KEY_EINZELBEWERBER_LISTENKANDIDATUR_EINZAHL;
  }
}
