
package de.ivu.elect.presentation;

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

import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.wahl.boundary.WahlSessionSelect;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.presentation.wahl.WahlSearchView;
import de.ivu.elect.presentation.wahl.WahlStatusuebersichtView;
import de.ivu.elect.presentation.wahl.menu.WahlSearchMenuItemEntry;
import de.ivu.elect.presentation.wahl.menu.WahlStatusuebersichtMenuItemEntry;

@Specializes
public class WasStartViewResolver extends ElectBaseStartViewResolver {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient WahlSessionSelect wahlSelect;

  @Inject
  private transient WahlStatusuebersichtMenuItemEntry wahlStatusuebersichtMenuItemEntry;

  @Inject
  private transient WahlSearchMenuItemEntry wahlSearchMenuItemEntry;

  public WasStartViewResolver() {
    super();
  }

  @Override
  protected String getStartViewIdInternal() {
    return getWasStartViewId();
  }

  protected String getWasStartViewId() {
    if (wahlStatusuebersichtMenuItemEntry.isPossible()) {
      return wahlStatusuebersichtMenuItemEntry.getTargetViewId();
    }

    if (wahlSearchMenuItemEntry.isPossible()) {
      return wahlSearchMenuItemEntry.getTargetViewId();
    }

    return super.getStartViewIdInternal();

  }

  protected boolean isWahlSelected() {
    return wahlSelect.isSelected();
  }

  protected Wahl getSelectedWahl() {
    return wahlSelect.getEntity();
  }

}
