示例#1
0
 /// <summary>
 /// 根据XElement元素生成工程子项(递归使用)
 /// </summary>
 /// <param name="project"></param>
 /// <param name="projectItem"></param>
 /// <param name="el"></param>
 private static void BuildDirectoryItem(IProject project, DirectoryProjectItem projectItem, XElement el)
 {
     foreach (XElement e1 in el.Elements())
     {
         int    count = e1.Elements().Count <XElement>();
         string type  = e1.Attribute("Type").Value;
         string name  = e1.Attribute("Name").Value;
         if (count == 0)
         {
             projectItem.Items.Add(new CustomProjectItem(project, new ItemType(type), name));
         }
         else
         {
             projectItem.Items.Add(new DirectoryProjectItem(project, new ItemType(type), name));
             BuildDirectoryItem(project, projectItem.Items[0] as DirectoryProjectItem, e1);
         }
     }
 }
示例#2
0
        /// <summary>
        /// 返回这个工程子项的生成的节点
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        private ExtTreeNode BuildNode(ATNET.Project.ProjectItem item)
        {
            ExtTreeNode          node          = new CustomTreeNode(null, item);
            DirectoryProjectItem directoryItem = item as DirectoryProjectItem;

            if (directoryItem != null)
            {
                node = new DirectoryTreeNode(null, item);
                if (directoryItem.Items.Count > 0)
                {
                    foreach (ATNET.Project.ProjectItem pitem in directoryItem.Items)
                    {
                        ExtTreeNode node1 = BuildNode(pitem);
                        node.Items.Add(node1);
                    }
                }
                return(node as DirectoryTreeNode);
            }
            return(node as CustomTreeNode);
        }
示例#3
0
        /// <summary>
        /// 降XElement元素转换成工程子项
        /// </summary>
        /// <param name="rootElement">工程文件中包含的根元素</param>
        /// <param name="project">子项属于的工程</param>
        private static void ParseToProjectItem(XElement rootElement, IProject project)
        {
            IEnumerable <XElement> element  = from el in rootElement.Elements() select el;
            IEnumerable <XElement> element1 = element.Where(el => el.Name == "Items");

            foreach (XElement e1 in element1.Nodes <XElement>())
            {
                int    count = e1.Elements().Count <XElement>();
                string type  = e1.Attribute("Type").Value;
                string name  = e1.Attribute("Name").Value;

                if (count == 0)//CustomProjectItem
                {
                    project.AddProjectItem(new CustomProjectItem(project, new ItemType(type), name));
                }
                else//DirectoryProjectItem
                {
                    DirectoryProjectItem projectItem = new DirectoryProjectItem(project, new ItemType(type), name);
                    project.AddProjectItem(projectItem);
                    BuildDirectoryItem(project, projectItem, e1);
                }
            }
        }