void parseExamplesTree(IEnumerable<XElement> rootExamplesList, TreeNode parentNode) { foreach (XElement examples_sub in rootExamplesList) { IEnumerable<XElement> exampleList = from c in examples_sub.Elements("Example") select c; foreach (XElement example in exampleList) { var serializer = new XmlSerializer(typeof(Example)); Example exampleObj = (Example)serializer.Deserialize(example.CreateReader()); TreeNode childNode = parentNode.Nodes.Add(exampleObj.Title); TreeNodeData treeNodeData = new TreeNodeData(); treeNodeData.Path = Path.Combine(((TreeNodeData)(parentNode.Tag)).Path, exampleObj.FolderName); treeNodeData.Example = exampleObj; childNode.Tag = treeNodeData; childNode.ImageIndex = 1; childNode.SelectedImageIndex = 1; IEnumerable<XElement> examples_list2 = from c in example.Elements("Examples") select c; parseExamplesTree(examples_list2, childNode); } } }
private void populateExamplesTree(string examplesDefinitionFile, string componentName) { if (!File.Exists(examplesDefinitionFile)) { //dispay error message return; } examplesTree.Nodes.Clear(); TreeNode parentNode = examplesTree.Nodes.Add(componentName); TreeNodeData treeNodeData = new TreeNodeData(); treeNodeData.Path = ""; parentNode.Tag = treeNodeData; XElement data = XElement.Load(examplesDefinitionFile); IEnumerable<XElement> folders = from c in data.Elements("Folders") select c; parseFoldersTree(folders, parentNode); //do same with examples IEnumerable<XElement> examples = from c in data.Elements("Examples") select c; parseExamplesTree(examples, parentNode); parentNode.ExpandAll(); if (examplesTree.Nodes.Count > 0) examplesTree.Nodes[0].EnsureVisible(); }
void parseFoldersTree(IEnumerable<XElement> rootFoldersList, TreeNode parentNode) { foreach (XElement folders_sub in rootFoldersList) { IEnumerable<XElement> folderlist = from c in folders_sub.Elements("Folder") select c; foreach (XElement folder in folderlist) { var serializer = new XmlSerializer(typeof(Folder)); Folder folderObj = (Folder)serializer.Deserialize(folder.CreateReader()); TreeNode childNode = parentNode.Nodes.Add(folderObj.Title); TreeNodeData treeNodeData = new TreeNodeData(); treeNodeData.Path = Path.Combine(((TreeNodeData)(parentNode.Tag)).Path, folderObj.FolderName); childNode.Tag = treeNodeData; childNode.ImageIndex = 0; IEnumerable<XElement> examples_list2 = from c in folder.Elements("Examples") select c; parseExamplesTree(examples_list2, childNode); IEnumerable<XElement> folders_list2 = from c in folder.Elements("Folders") select c; parseFoldersTree(folders_list2, childNode); } } }
private bool isValidNodeSelected() { /*if (examplesTree.SelectedNode != null) selectedNode = examplesTree.SelectedNode;*/ if (selectedNode == null) return false; TreeNodeData treedata = new TreeNodeData(); if (selectedNode.Tag == null) return false; treedata = (TreeNodeData)selectedNode.Tag; if (treedata.Example == null) return false; return true; }