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

import java.io.Serializable;

import javax.inject.Inject;

import de.ivu.elect.business.ergebnis.boundary.ErgebnisSessionSelect;
import de.ivu.elect.business.ergebnis.boundary.ErgebnisberechnungHintergrund;
import de.ivu.elect.business.ergebnis.entity.Ergebnis;
import de.ivu.elect.business.gebietsbaum.boundary.GebietSessionSelect;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.jee.presentation.menu.MenuEntry;

public class ErgebnisMenuDisabled implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient GebietSessionSelect gebietSessionSelect;

  @Inject
  private transient ErgebnisSessionSelect ergebnisSessionSelect;

  @Inject
  private transient ErgebnisberechnungHintergrund ergebnisberechnungHintergrund;

  public ErgebnisMenuDisabled() {
    super();
  }

  public boolean isDisabled(MenuEntry menuEntry) {
    return menuEntry == null || isDisabledOhneBeruecksichtigungGebiet() || !isGebietSelected();
  }

  public boolean isDisabledOhneBeruecksichtigungGebiet() {
    return !isErgebnisberechnungHintergrundAktiviert() || !isErgebnisSelected();
  }

  protected boolean isGebietSelected() {
    return gebietSessionSelect.isSelected();
  }

  protected Gebiet getSelectedGebiet() {
    return gebietSessionSelect.getEntity();
  }

  protected boolean isErgebnisSelected() {
    return ergebnisSessionSelect.isSelected();
  }

  protected Ergebnis getSelectedErgebnis() {
    return ergebnisSessionSelect.getEntity();
  }

  protected boolean isErgebnisberechnungHintergrundAktiviert() {
    return ergebnisberechnungHintergrund.isAktiviert();
  }
}
