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

namespace Billing
{
    public class Customizer : MercatorUi.ICustomizers.IFormLoadCustomizer, MercatorUi.ICustomizers.IFormClosedCustomizer
    {
        private const string idExpression = "1QZ1FZ3457";
        private const string source = "C_ENCOURS";


        public void FormLoadCustomize(Form form)
        {
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)form;
            if (billingForm.MovableControls.ContainsKey(idExpression))
            {
                MercatorUi.MovableControls.MovableExpression movableExpression = (MercatorUi.MovableControls.MovableExpression)billingForm.MovableControls[idExpression];
                movableExpression.ButtonCustom.Visible = true;
                movableExpression.ButtonCustom.Shortcut = DevComponents.DotNetBar.eShortcut.CtrlEnter;
                movableExpression.ButtonCustom.Image = _Divers.ImageFromResource("MercatorUi.MovableControls.Images.tinydetails.png");
                movableExpression.ButtonCustomClick += MovableExpression_ButtonCustomClick;
            }
        }

        public void FormClosedCustomize(Form form)
        {
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)form;
            if (billingForm.MovableControls.ContainsKey(idExpression))
            {
                MercatorUi.MovableControls.MovableExpression movableExpression = (MercatorUi.MovableControls.MovableExpression)billingForm.MovableControls[idExpression];
                movableExpression.ButtonCustomClick -= MovableExpression_ButtonCustomClick;
            }
        }

        private void MovableExpression_ButtonCustomClick(object sender, System.EventArgs e)
        {
            MercatorUi.MovableControls.MovableExpression movableExpression = (MercatorUi.MovableControls.MovableExpression)sender;
            MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)movableExpression.Form;
            MercatorUi.Sig.SigCli sigCli = (MercatorUi.Sig.SigCli)MercatorUi.Sig._SigsStatic.SigByModule(MercatorUi.Sig._SigEnum.CLI);
            if (billingForm.BillingEngine.CLI != null)
                sigCli.Statement(billingForm.BillingEngine.CliRecord.C_ID, source);
        }
    }
}