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

import java.util.Collections;
import java.util.List;

import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.presentation.security.AbstractGebietSecurity;
import de.ivu.elect.presentation.wahlvorschlagsperson.WahlvorschlagsPersonSearchView;

public class WahlvorschlagsPersonSearchMenuItemEntry extends AbstractWahlvorschlagsPersonMenuItemEntry {

  private static final long serialVersionUID = 1L;

  public WahlvorschlagsPersonSearchMenuItemEntry() {
    super();
  }

  @Override
  public UseCasePermission getUseCasePermission() {
    return UseCasePermission.WAHLVORSCHLAGS_PERSON_SEARCH_ALL; // ELECT-10614
  }

  @Override
  public AbstractGebietSecurity getGebietSecurity() {
    return getEinsehenGebietSecurity();
  }

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

  @Override
  public String getTargetViewId() {
    // NOTE, dass die Action ausgeführt werden soll!
    return null;
  }

  @Override
  public String doAction() {
    // NOTE, dass bei Aufruf der Seite über diese Klasse, alle Wahlvorschlagspersonen angezeigt werden sollen, bei einem
    // ausgewählten Wahlvorschlag, aber nur dessen Wahlvorschlagspersonen angezeigt werden!
    clearSelectedWahlvorschlag();

    return WahlvorschlagsPersonSearchView.VIEW_ID;
  }

  @Override
  protected List<String> getAdditionalTopicViewIds() {
    return Collections.singletonList(WahlvorschlagsPersonSearchView.VIEW_ID);
  }

  @Override
  public String getLabelKey() {
    return "wahlvorschlagsperson.search.menu.item.label";
  }

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