Ejemplo n.º 1
0
        private void LoadTreeFromXML(XElement xele, TmTreeView tv)
        {
            TmNode node;
            string themelist = Enum.GetName(typeof(TmNodeType), TmNodeType.ThemeList).ToLower();
            foreach (XElement xnode in xele.Elements(themelist))
            {
                node = new TmNode(TmNodeType.ThemeList);
                node.Load(xnode, false); // Add only the first node
                tv.Add(node);
            }

            string category = Enum.GetName(typeof(TmNodeType), TmNodeType.Category).ToLower();
            foreach (XElement xnode in xele.Elements(category))
            {
                node = new TmNode(TmNodeType.Category);
                node.Load(xnode, true); // Add entire branch
                node.UpdateImageIndex(true);
                tv.Add(node);
            }

            string theme = Enum.GetName(typeof(TmNodeType), TmNodeType.Theme).ToLower();
            foreach (XElement xnode in xele.Elements(theme))
            {
                node = new TmNode(TmNodeType.Theme);
                node.Load(xnode, true); // Add entire branch
                node.UpdateImageIndex(true);
                tv.Add(node);
            }
            tv.TextSortInit((string)xele.Attribute("sortorder"));
        }
Ejemplo n.º 2
0
        public void Load(XElement xele, bool recurse)
        {
            if (xele == null)
                throw new ArgumentNullException("xele");

            //Kind was already set when node was created.  Set all other properties
            Name = (string)xele.Attribute("name");
            XElement data;
            data = xele.Element("tags");
            Tags = data == null ? null : data.Value;
            data = xele.Element("summary");
            Summary = data == null ? null : data.Value;
            data = xele.Element("description");
            Description = data == null ? null : data.Value;
            data = xele.Element("pubdate");
            if (data != null)
            {
                DateTime temp;
                if (DateTime.TryParse(data.Value, out temp))
                    PubDate = temp;
            }

            data = xele.Element("data");
            if (data != null)
            {
                // Ignore the path in the data element for themelists.
                if (IsThemeList && !string.IsNullOrEmpty(Data.Path))
                    data.Value = Data.Path;
                Data = ThemeData.Load(data);
            }

            data = xele.Element("metadata");
            if (data != null)
                Metadata = Metadata.Load(data);

            if (recurse)
            {
                TmNode childNode;

                string category = Enum.GetName(typeof(TmNodeType), TmNodeType.Category).ToLower();
                foreach (XElement xnode in xele.Elements(category))
                {
                    childNode = new TmNode(TmNodeType.Category);
                    Add(childNode);
                    childNode.Load(xnode);
                }

                string theme = Enum.GetName(typeof(TmNodeType), TmNodeType.Theme).ToLower();
                foreach (XElement xnode in xele.Elements(theme))
                {
                    childNode = new TmNode(TmNodeType.Theme);
                    Add(childNode);
                    childNode.Load(xnode);
                }
            }
        }