
package de.ivu.elect.presentation.niederschrift.action;

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

import de.ivu.elect.business.niederschrift.boundary.NiederschriftConversationSelect;
import de.ivu.elect.business.niederschrift.entity.Niederschrift;
import de.ivu.elect.business.niederschrift.entity.NiederschriftStatusAenderungConstants;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.presentation.niederschrift.NiederschriftStatusAenderungSearchView;
import de.ivu.elect.presentation.security.AbstractGebietSecurity;

@Named(NiederschriftNiederschriftStatusAenderungSearchAction.COMPONENT_NAME)
public class NiederschriftNiederschriftStatusAenderungSearchAction extends AbstractNiederschriftAction {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "niederschriftNiederschriftStatusAenderungSearchAction";

  @Inject
  private transient NiederschriftConversationSelect niederschriftConversationSelect;

  public NiederschriftNiederschriftStatusAenderungSearchAction() {
    super();
  }

  @Override
  protected UseCasePermission getRequiredPermission() {
    return UseCasePermission.NIEDERSCHRIFT_STATUS_AENDERUNG_SEARCH;
  }

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

  @Override
  protected String doIt(Niederschrift entity) {
    niederschriftConversationSelect.setEntity(entity);

    return getTargetViewId();
  }

  private String getTargetViewId() {
    return NiederschriftStatusAenderungSearchView.VIEW_ID;
  }

  @Override
  protected String getLocalizedLabel() {
    return getMessage(getLabelKey(), getMessage(NiederschriftStatusAenderungConstants.MESSAGE_KEY_ENTITY_EINZAHL));
  }

  @Override
  public String getLabelKey() {
    return "entity.edit.action.go.to.next.view.search";
  }

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