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

import javax.enterprise.event.Observes;
import javax.enterprise.event.Reception;
import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.boundary.GebietSelectChangeEvent;
import de.ivu.elect.presentation.exchange.ImportDescription;
import de.ivu.elect.presentation.exchange.menu.AbstractImportMenuItemEntry;
import de.ivu.elect.presentation.veranstaltung.exchange.VeranstaltungImportDescription;

public class VeranstaltungImportMenuItemEntry extends AbstractImportMenuItemEntry {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient VeranstaltungDisabledPruefer veranstaltungDisabledPruefer;

  @Inject
  private transient VeranstaltungImportDescription veranstaltungImportDescription;

  public VeranstaltungImportMenuItemEntry() {
    super();
  }

  @Override
  protected boolean isDisabledInternal() {
    return super.isDisabledInternal() || veranstaltungDisabledPruefer.isDisabled();
  }

  @Override
  protected ImportDescription getImportDescription() {
    return veranstaltungImportDescription;
  }

  @Override
  public String getLabel() {
    return getMessage(getLabelKey(), getMessage("entity.mehrzahl.VERANSTALTUNG"));
  }

  public void onWahlSelectChangeEvent(@Observes(notifyObserver = Reception.ALWAYS) GebietSelectChangeEvent event) {
    // Menüeintrag erscheint nach Gebiet-Import nicht
    if (event.getAlteEntity() == null && event.getNeueEntity() != null || event.getAlteEntity() != null && event.getNeueEntity() == null) {
      supportedFileFormatErmittler.reset();
    }
  }
}
