package _VisualDVM.Passes.All;
import Common.Visual.UI;
import _VisualDVM.Global;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.Sapfor.SapforAnalysis;
public class SPF_GetArrayDistribution extends SPF_GetArrayDistributionOnlyAnalysis {
    @Override
    protected void performDone() throws Exception {
        super.performDone();
        SapforAnalysis code_analysis = (SapforAnalysis) Global.mainModule.getPass(PassCode.SPF_GetArrayDistributionOnlyAnalysis);
        if (!code_analysis.isDone()) {
            code_analysis.setDone();
            code_analysis.MarkAsDone();
        }
    }
    @Override
    protected void showDone() throws Exception {
        super.showDone();
        Global.mainModule.getUI().getVersionsWindow().UnblockVariants();
        Global.mainModule.getUI().getVersionsWindow().getVariantsWindow().ShowVariants();
    }
    @Override
    protected void FocusResult() {
        super.FocusResult();
        Global.mainModule.getUI().getMainWindow().getProjectWindow().FocusVersions();
        Global.mainModule.getUI().getVersionsWindow().FocusDistribution();
    }
    @Override
    protected boolean canStart(Object... args) throws Exception {
        if (Global.mainModule.getProject().sapforProperties.MPI_PROGRAM) {
            UI.Info("Включена настройка SAPFOR 'MPI программа'." +
                    "\nПостроение распределения данных невозможно.");
            Global.mainModule.getPass(PassCode.SPF_SharedMemoryParallelization).Do();
            return false;
        }
        return super.canStart(args);
    }
    @Override
    public String getDescription() {
        return Global.mainModule.getPassDescription(getName());
    }
}
