using System;
using System.Collections;
using System.Xml;
using System.Xml.Serialization;

namespace Novell.CASA.CASAPolicy
{
public class UIPol : CASAPol
{
    bool showInTaskBar;
    public bool ShowInTaskBar
    {
        get
        {
            return showInTaskBar;
        }
    }
    bool showSecretValue;
    public bool ShowSecretValue
    {
        get
        {
            return showSecretValue;
        }
    }
    bool showSecretInClearText;
    public bool ShowSecretInClearText
    {
        get
        {
            return showSecretInClearText;
        }
    }
    string synchEngineStartMode;
    public string SynchEngineStartMode
    {
        get
        {
            return synchEngineStartMode;
        }
    }

    public UIPol(bool inTrayIcon, bool inShowVals,bool inClearText,string startMode)
    {
        policyType = CASAPolType.UI_POL;
        showInTaskBar = inTrayIcon;
        showSecretValue = inShowVals;
        showSecretInClearText = inClearText;
        synchEngineStartMode = startMode;
    }

    public override void DumpPol()
    {
        Console.WriteLine("\nUIPolicy");
        Console.WriteLine("showInTaskBar = " + showInTaskBar);
        Console.WriteLine("showSecretValue = " + showSecretValue);
        Console.WriteLine("showSecretInClearText = " + showSecretInClearText);
        Console.WriteLine("synchEngineStartMode = " + synchEngineStartMode);
    }

    internal override void AppendToDoc(XmlDocument doc)
    {
        XmlElement elem;
        XmlAttribute attr;
        string xPath = "";
    
        try
        {
            xPath = "//" + XmlConsts.CASAPolicyNode;
            XmlNode rootElem = doc.SelectSingleNode(xPath);

            XmlElement uiPolElem = doc.CreateElement(XmlConsts.UIPolicyNode);

            attr = doc.CreateAttribute(XmlConsts.ShowInTaskBarAttr);
            attr.Value = showInTaskBar.ToString();
            uiPolElem.SetAttributeNode(attr);

            attr = doc.CreateAttribute(XmlConsts.ShowSecretValueAttr);
            attr.Value = showSecretValue.ToString();
            uiPolElem.SetAttributeNode(attr);

            attr = doc.CreateAttribute(XmlConsts.ShowSecretInClearTextAttr);
            attr.Value = showSecretInClearText.ToString();
            uiPolElem.SetAttributeNode(attr);

            rootElem.AppendChild(uiPolElem);

            elem = doc.CreateElement(XmlConsts.SynchEngineStartModeNode);
            elem.InnerText = synchEngineStartMode;

            uiPolElem.AppendChild(elem);
        }
        catch(Exception e)
        {
            //Console.WriteLine(e.ToString());
        }
    }

}
}