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

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.GebietExtendedDAO;
import de.ivu.elect.business.gebietsbaum.entity.NlGebiet;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.wahl.boundary.WahlSessionSelect;
import de.ivu.elect.presentation.gebietsbaum.VoteValueEditView;
import de.ivu.elect.presentation.security.AbstractGebietSecurity;

public class VoteValueEditMenuItemEntry extends AbstractGebietMenuItemEntry {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient GebietExtendedDAO gebietExtendedDAO;

  @Inject
  private transient WahlSessionSelect wahlSessionSelect;

  public VoteValueEditMenuItemEntry() {
    super();
  }

  @Override
  public boolean isRendered() {
    return super.isRendered() && !NlGebiet.collectVoteValueGebiete(wahlSessionSelect.getEntity(), gebietExtendedDAO).isEmpty();
  }

  @Override
  protected UseCasePermission getUseCasePermission() {
    return UseCasePermission.GEBIET_BEVOELKERUNGSZAHLEN_EDIT;
  }

  @Override
  protected AbstractGebietSecurity getGebietSecurity() {
    return AbstractGebietSecurity.KEINE_GEBIET_SECURITY;
  }

  @Override
  public String getTargetViewId() {
    return VoteValueEditView.VIEW_ID;
  }

  @Override
  public String getLabelKey() {
    return "vote.value.edit.menu.item";
  }

  @Override
  public String getIcon() {
    return getIcons().getIconEdit();
  }
}
