public void UpdateAssets(string assetFile, UpdatePropertiesDelegate updateProps, UpdateOutputDelegate updateOutput, OpenEffectFile openEffect, MaterialsView materialsHandle) { if (!File.Exists(assetFile)) { return; } m_AssetPath = assetFile; m_ProjectLocation = Path.GetDirectoryName(assetFile); m_NodeDelegate = updateProps; m_OuputDeleagate = updateOutput; m_OpenEffect = openEffect; m_MaterialsHandle = materialsHandle; m_MaterialsHandle.UpdateDelegate = m_NodeDelegate; m_XmlDoc.Load(assetFile); XmlElement rootXml = m_XmlDoc.DocumentElement; treeViewAssets.BeginUpdate(); foreach (XmlNode node in rootXml.ChildNodes) { TreeNode treeNode = treeViewAssets.Nodes[node.Name]; if (treeNode != null) { treeNode.Tag = node; treeNode.Nodes.Clear(); foreach (XmlNode child in node.ChildNodes) { if (node.Name == "Effects") { AddEffect(treeNode, child); } else if (node.Name == "Materials") { AddMaterial(treeNode, child); } else { XmlNode nameNode = child.Attributes["name"]; if (nameNode != null) { treeNode.Nodes.Add(new TreeNode(nameNode.Value) { Tag = child }); } } } } } treeViewAssets.EndUpdate(); }
public void UpdateProject(string project, UpdatePropertiesDelegate updateProps) { m_ProjectPath = project; m_NodeDelegate = updateProps; m_XmlDoc.Load(project); XmlElement root = m_XmlDoc.DocumentElement; treeViewProject.BeginUpdate(); treeViewProject.Nodes.Clear(); var rootTree = new TreeNode(Path.GetFileNameWithoutExtension(project)) { Tag = CreateProjectXmlNode(root, project) }; foreach (XmlNode child in root.ChildNodes) { XmlNode typeNode = child.Attributes["type"]; if (typeNode != null) { if (typeNode.Value == "EditorCamera") { m_EditorCameraNode = new TreeNode(child.Name) { Tag = child }; rootTree.Nodes.Add(m_EditorCameraNode); } else if (typeNode.Value == "Scene") { m_SceneNode = new TreeNode(child.Name) { Tag = child }; foreach (XmlNode childScene in child.ChildNodes) { m_SceneNode.Nodes.Add(new TreeNode(childScene.Name) { Tag = childScene }); } rootTree.Nodes.Add(m_SceneNode); } } } treeViewProject.Nodes.Add(rootTree); treeViewProject.SelectedNode = rootTree.FirstNode; treeViewProject.EndUpdate(); treeViewProject.ExpandAll(); }