
package de.ivu.elect.presentation.entschaedigung;

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.entschaedigung.entity.Auszahlung;
import de.ivu.elect.business.security.UseCasePermission;
import de.ivu.elect.business.security.UseCaseSecure;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;
import de.ivu.elect.jee.presentation.redirect.Redirect;
import de.ivu.elect.presentation.entschaedigung.action.AuszahlungDownloadAction;
import de.ivu.elect.presentation.entschaedigung.form.AuszahlungViewFormBuilder;
import de.ivu.elect.presentation.hilfe.OnlineHilfeId;

@OnlineHilfeId("537")
@Named(AbstractAuszahlungEditNoScopeView.COMPONENT_NAME)
public class AuszahlungEditView extends AbstractAuszahlungEditView {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient AuszahlungDownloadAction auszahlungDownloadAction;

  @Inject
  private transient AuszahlungViewFormBuilder auszahlungViewFormBuilder;

  public AuszahlungEditView() {
    super();
  }

  @Override
  protected boolean isGebietBearbeitenRechtPruefen() {
    return false;
  }

  @Override
  public void addProperties(FormBuilder formBuilder, Auszahlung auszahlung) {
    if (!auszahlungViewFormBuilder.isBearbeitbar(auszahlung)) {
      addWarningMessage("auszahlung.edit.entity.readonly.message");
    }

    auszahlungViewFormBuilder.addProperties(formBuilder, auszahlung, false);
  }

  public boolean isBtnDownloadRendered() {
    return auszahlungDownloadAction.isActionPossible(getEntity());
  }

  @Redirect
  @UseCaseSecure(UseCasePermission.KONTODATEN_EXPORTIEREN)
  public String download() {
    return auszahlungDownloadAction.action(getEntity());
  }
}
