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

import javax.annotation.Nonnull;
import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.datei.boundary.DateiImportConversationSelect;
import de.ivu.elect.business.datei.entity.DateiImport;
import de.ivu.elect.jee.faces.FacesContextUtil;

@Named("dateiImportEditAction")
public class DateiImportEditAction extends AbstractDateiImportAction {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient DateiImportFormatFestlegenAction dateiImportFormatFestlegenAction;

  @Inject
  private transient DateiImportImportBestaetigenAction dateiImportImportBestaetigenAction;

  @Inject
  private transient DateiImportBerichtAction dateiImportBerichtAction;

  @Inject
  private transient DateiImportConversationSelect dateiImportConversationSelect;

  @Override
  public String getLabelKey() {
    return "datei.import.edit.action.import";
  }

  @Override
  public String getIcon() {
    return appIcons.getIconEdit();
  }

  @Override
  protected String doIt(DateiImport entity) {
    if (entity.isImportierenMoeglich()) {
      return dateiImportImportBestaetigenAction.action(entity);
    } else if (entity.isFormatFestlegenMoeglich()) {
      return dateiImportFormatFestlegenAction.action(entity);
    } else if (entity.isImportiert()) {
      return dateiImportBerichtAction.action(entity);
    }
    return FacesContextUtil.getCurrentViewId();
  }

  @Override
  public boolean isDisabledInternal(@Nonnull DateiImport entity) {
    return !entity.isFormatFestlegenMoeglich() && !entity.isImportierenMoeglich() && !entity.isImportiert();
  }

}
