using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using System.Windows.Forms;

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {

        public void Main(MercatorUi.ICustomizers.ExecAction Action)
        {
            if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Globals.Main.BaseFormCreating += Main_BaseFormCreating;
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BaseFormCreating -= Main_BaseFormCreating;
            }
        }

        void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
        {
            if (e.Form is MercatorUi.Forms.Accounting.AccountingRemindersForm)
            {
                e.Form.Shown += Form_Shown;
                e.Form.FormClosed += Form_FormClosed;
            }
        }

        void Form_Shown(object sender, EventArgs e)
        {
            MercatorUi.Forms.Accounting.AccountingRemindersForm accountingRemindersForm = (MercatorUi.Forms.Accounting.AccountingRemindersForm)sender;
            accountingRemindersForm.Shown -= Form_Shown;
            accountingRemindersForm.ButtonGenerate.BeforeClick += ButtonGenerate_BeforeClick;
        }

        void Form_FormClosed(object sender, FormClosedEventArgs e)
        {
            MercatorUi.Forms.Accounting.AccountingRemindersForm accountingRemindersForm = (MercatorUi.Forms.Accounting.AccountingRemindersForm)sender;
            accountingRemindersForm.FormClosed -= Form_FormClosed;
            accountingRemindersForm.ButtonGenerate.BeforeClick -= ButtonGenerate_BeforeClick;
        }

        private void ButtonGenerate_BeforeClick(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (!Dialogs.AnswerYesNo("Réellement générer les rappels ?"))
                e.Cancel = true; // arrêter l'exécution du handler Click du bouton
        }
    }
}