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

import java.util.Arrays;
import java.util.List;

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.WusFeaturesAktiviert;
import de.ivu.elect.business.gebietsbaum.boundary.GebietsartConversationSelect;
import de.ivu.elect.presentation.wahl.WahlMandantenAufteilenPermissions;

@Specializes
public class WasGebietCreateMenuItemEntry extends CoreGebietCreateMenuItemEntry {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient GebietsartConversationSelect gebietsartConversationSelect;

  @Inject
  private transient WusFeaturesAktiviert wusFeaturesAktiviert;

  @Inject
  private transient WahlMandantenAufteilenPermissions wahlMandantenAufteilenPermissions;

  public WasGebietCreateMenuItemEntry() {
    super();
  }

  @Override
  public boolean isRendered() {
    return super.isRendered() && wusFeaturesAktiviert
        .isWusOderWusWasZusammen() && wahlMandantenAufteilenPermissions.isGebietAnlegenMoeglich(getSelectedGebiet());
  }

  @Override
  public String getTargetViewId() {
    return null; // and doAction...
  }

  @Override
  public String doAction() {
    // Cf. AbstractWasErfassungsgebietCreateMenuItemEntry#doAction!!!
    gebietsartConversationSelect.clearEntity();

    return super.getTargetViewId();
  }

  @Override
  protected List<String> getAdditionalTopicViewIds() {
    return Arrays.asList(super.getTargetViewId());
  }
}
