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

import static java.util.Collections.singletonList;

import java.util.List;

import javax.inject.Inject;

import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.security.control.ElectCommonPrincipal;
import de.ivu.elect.presentation.benutzerverwaltung.BenutzerParameterEditView;
import de.ivu.elect.presentation.benutzerverwaltung.BenutzerParameterSearchView;
import de.ivu.elect.presentation.menu.AbstractMenuItemEntry;
import de.ivu.elect.presentation.security.AbstractGebietSecurity;

public class BenutzerEinstellungenMenuItemEntry extends AbstractMenuItemEntry {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient ElectCommonPrincipal principal;

  public BenutzerEinstellungenMenuItemEntry() {
    super();
  }

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

  @Override
  public boolean isRendered() {
    return hasUseCasePermission(UseCasePermission.BENUTZER_PARAMETER_EDIT);
  }

  @Override
  protected boolean isDisabledInternal() {
    return !principal.isLoggedIn();
  }

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

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

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

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