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

import de.ivu.elect.business.ergebnis.control.ErgebnisExportContext;
import de.ivu.elect.business.ergebnis.control.ZwischenergebnisberechnungBackgroundService;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.jee.presentation.dynamicform.FormBuilder;

import javax.enterprise.inject.Specializes;

@Specializes
public class NlErgebnisExportView extends ErgebnisExportView {
    private static final long serialVersionUID = 1L;

    public static final String SELECTED_GEBIET_PK = "EML510GebietPK";

    @Override
    protected ErgebnisExportContext getContext() {
        ErgebnisExportContext context = super.getContext();
        Gebiet selectedGebiet = getSelectedGebiet();

        if (selectedGebiet == null) {
            context.put(SELECTED_GEBIET_PK, null);
        } else {
            context.put(SELECTED_GEBIET_PK, selectedGebiet.getPk());
        }

        return context;
    }

    @Override
    public boolean isBtnExportierenDisabled() {
        return super.isBtnExportierenDisabled() || ergebnisberechnungLaueft();
    }

    @Override
    protected void addProperties(FormBuilder formBuilder) {
        super.addProperties(formBuilder);
        if (isBtnExportierenDisabled()) {
            formBuilder.globalReadonly();
        }
    }

    @Override
    public void preRenderView() {
        super.preRenderView();
        if (ergebnisberechnungLaueft()) {
            messages.addWarnMessage("nl.was.ergebnisberechnung.laueft.noch.warnung");
        }
    }


    private boolean ergebnisberechnungLaueft() {
        return ZwischenergebnisberechnungBackgroundService.RUNNING.get() > 0;
    }
}
