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

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.GetType() == typeof(MercatorUi.Forms.Accounting.AccountingRemindersForm))
                e.Form.Shown += AccountingRemindersForm_Shown;
        }

        void AccountingRemindersForm_Shown(object sender, EventArgs e)
        {
            MercatorUi.Forms.Accounting.AccountingRemindersForm accountingRemindersForm = (MercatorUi.Forms.Accounting.AccountingRemindersForm)sender;
            accountingRemindersForm.Shown -= AccountingRemindersForm_Shown;
            MercatorUi.BoutonsPro.BleuPro bleuPro1 = (MercatorUi.BoutonsPro.BleuPro)accountingRemindersForm.Controls["bleuPro1"];
            MercatorUi.BoutonsPro.ButtonXPro buttonCustom = new MercatorUi.BoutonsPro.ButtonXPro
            {
                AccessibleRole = AccessibleRole.PushButton,
                Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular, GraphicsUnit.Point, 0),
                Image = Image.FromFile("window_edit.png"),
                Location = new Point(250, 5),
                Name = "buttonCustom",
                Size = new Size(120, 48),
                SubItemsExpandWidth = 16,
                Text = "Custom Action"
            };
            buttonCustom.Click += buttonCustom_Click;
            buttonCustom.Disposed += ButtonCustom_Disposed;
            bleuPro1.Controls.Add(buttonCustom);
        }

        private void ButtonCustom_Disposed(object sender, EventArgs e)
        {
            MercatorUi.BoutonsPro.ButtonXPro buttonCustom = (MercatorUi.BoutonsPro.ButtonXPro)sender;
            buttonCustom.Click -= buttonCustom_Click;
            buttonCustom.Disposed -= ButtonCustom_Disposed;
        }

        void buttonCustom_Click(object sender, EventArgs e)
        {
            MercatorUi.BoutonsPro.ButtonXPro buttonCustom = (MercatorUi.BoutonsPro.ButtonXPro)sender;
            MercatorUi.Forms.Accounting.AccountingRemindersForm accountingRemindersForm = (MercatorUi.Forms.Accounting.AccountingRemindersForm)buttonCustom.FindForm();
            _Divers.ViewData(accountingRemindersForm.DataSet, true);
        }
    }
}