/// <summary>
        /// The template xml for the screen
        /// </summary>
        /// <param name="FileName"></param>
        public void LoadXML(string FileName)
        {
            using (XmlReader reader = XmlReader.Create(FileName))
            {
                reader.Read();
                reader.ReadStartElement("simple");

                while (!reader.EOF)
                {
                    reader.ReadToFollowing("ac");

                    if (reader.Name == "")
                        break;

                    XmlReader acinner = reader.ReadSubtree();

                    while (acinner.ReadToFollowing("param"))
                    {
                        XmlReader inner = acinner.ReadSubtree();

                        configitem item = new configitem();

                        while (inner.Read())
                        {
                            inner.MoveToElement();
                            if (inner.IsStartElement())
                            {
                                switch (inner.Name.ToLower())
                                {
                                    case "title":
                                        item.title = inner.ReadString();
                                        break;
                                    case "desc":
                                        item.desc = inner.ReadString();
                                        break;
                                    case "name":
                                        item.paramname = inner.ReadString();
                                        break;
                                    case "value":
                                        item.paramvalue = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo);
                                        break;
                                    case "min":
                                        item.min = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo);
                                        break;
                                    case "max":
                                        item.max = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo);
                                        break;
                                    case "relation":
                                        XmlReader relation = reader.ReadSubtree();
                                        relationitem relitem = new relationitem();
                                        while (relation.Read())
                                        {
                                            relation.MoveToElement();
                                            if (relation.Name == "param")
                                            {
                                                relitem.paramaname = inner.ReadString();
                                            }
                                            else if (relation.Name == "multiplier")
                                            {
                                                relitem.multiplier = float.Parse(inner.ReadString(), System.Globalization.NumberFormatInfo.InvariantInfo);
                                            }
                                        }

                                        item.relations.Add(relitem);
                                        break;
                                }
                            }
                        }
                        // process item to screen
                        ProcessItem(item);
                    }
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     The template xml for the screen
        /// </summary>
        /// <param name="FileName"></param>
        public void LoadXML(string FileName)
        {
            using (var reader = XmlReader.Create(FileName))
            {
                reader.Read();
                reader.ReadStartElement("simple");

                while (!reader.EOF)
                {
                    reader.ReadToFollowing("ac");

                    if (reader.Name == "")
                    {
                        break;
                    }

                    var acinner = reader.ReadSubtree();

                    while (acinner.ReadToFollowing("param"))
                    {
                        var inner = acinner.ReadSubtree();

                        var item = new configitem();

                        while (inner.Read())
                        {
                            inner.MoveToElement();
                            if (inner.IsStartElement())
                            {
                                switch (inner.Name.ToLower())
                                {
                                case "title":
                                    item.title = inner.ReadString();
                                    break;

                                case "desc":
                                    item.desc = inner.ReadString();
                                    break;

                                case "name":
                                    item.paramname = inner.ReadString();
                                    break;

                                case "value":
                                    item.paramvalue = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo);
                                    break;

                                case "min":
                                    item.min = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo);
                                    break;

                                case "max":
                                    item.max = float.Parse(inner.ReadString(), NumberFormatInfo.InvariantInfo);
                                    break;

                                case "relation":
                                    var relation = reader.ReadSubtree();
                                    var relitem  = new relationitem();
                                    while (relation.Read())
                                    {
                                        relation.MoveToElement();
                                        if (relation.Name == "param")
                                        {
                                            relitem.paramaname = inner.ReadString();
                                        }
                                        else if (relation.Name == "multiplier")
                                        {
                                            relitem.multiplier = float.Parse(inner.ReadString(),
                                                                             NumberFormatInfo.InvariantInfo);
                                        }
                                    }

                                    item.relations.Add(relitem);
                                    break;
                                }
                            }
                        }
                        // process item to screen
                        ProcessItem(item);
                    }
                }
            }
        }