using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using MercatorApi;
using MercatorExtensions;
using MercatorUi;
using MercatorDatabase;
using System.Xml;

namespace SigStock
{
    public class Customizer : MercatorUi.ICustomizers.IXmlDocumentUpdaterWithContextInfo
    {

        public void XmlDocumentUpdateWithContextInfo(XmlDocument xmlDocument, object contextInfo)
        {
            if (Globals.IsMercatorPenguinServer)
            {
                MercatorUi.Sig.Tools.SigRecordDescriptor sigRecordDescriptor = (MercatorUi.Sig.Tools.SigRecordDescriptor)contextInfo;

                // supprimer un élément
                XmlNode node = xmlDocument.FindNodesRecursive(n => (n.Name == "m:EditPicker") && (n.Attributes["Source"].Value == "s_modeled")).FirstOrDefault();
                if (node != null)
                    node.ParentNode.RemoveChild(node);

                // changer la couleur de fond d'un élément
                node = xmlDocument.FindNodesRecursive(n => (n.Name == "m:EditEntry") && (n.Attributes["Source"].Value == "s_cle1")).FirstOrDefault();
                if (node != null)
                {
                    XmlAttribute attr = xmlDocument.CreateAttribute("BackgroundColor");
                    attr.Value = "Red";
                    node.Attributes.SetNamedItem(attr);
                }

                // disabler un élément
                node = xmlDocument.FindNodesRecursive(n => (n.Name == "m:EditEntry") && (n.Attributes["Source"].Value == "s_cle2")).FirstOrDefault();
                if (node != null)
                {
                    XmlAttribute attr = xmlDocument.CreateAttribute("IsEnabled");
                    attr.Value = "false";
                    node.Attributes.SetNamedItem(attr);
                }

                // rendre un élément invisible
                node = xmlDocument.FindNodesRecursive(n => (n.Name == "m:EditEntry") && (n.Attributes["Source"].Value == "s_cle3")).FirstOrDefault();
                if (node != null)
                {
                    XmlAttribute attr = xmlDocument.CreateAttribute("IsVisible");
                    attr.Value = "false";
                    node.Attributes.SetNamedItem(attr);
                }
            }
        }
    }
}