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

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

import de.ivu.elect.business.gebietsbaum.boundary.GebietsarteigenschaftExtendedDAO;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsart;

@Specializes
public class CoreGebietsartDeleteAction extends GebietsartDeleteAction {

  @Inject
  private transient GebietsarteigenschaftExtendedDAO gebietsarteigenschaftExtendedDAO;

  @Override
  protected boolean isDisabledInternal(@Nonnull Gebietsart gebietsart) {
    return super.isDisabledInternal(gebietsart) || isInWahlartVerwendet(gebietsart);
  }

  private boolean isInWahlartVerwendet(Gebietsart gebietsart) {
    return !gebietsarteigenschaftExtendedDAO.findByGebietsart(gebietsart).isEmpty();
  }
}
