/// <summary> /// Загрузка содержимого дерева из Xml файла /// </summary> /// <param name="filePath">Путь к файлу</param> /// <returns>Загруженная модель</returns> public void LoadFromFile(string filePath) { Nodes.Clear(); GroupNode rootGroup = new GroupNode(Properties.Resources.allComputersGroupName); LoadNodesFromFile(filePath, rootGroup); Nodes.Add(rootGroup); }
private void LoadDefaultTree() { bool defaultLoaded = false; //Загружено ли дерево //Пытаемся загрузить дерево из директории с исполняемым файлом string defaultTreePath = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "default.yttree"; if (File.Exists(defaultTreePath)) { try { _treeModel = new YtTreeModel(); _treeModel.LoadFromFile(defaultTreePath); mainTreeView.Model = _treeModel; mainTreeView.ExpandAll(); defaultLoaded = true; _loadedTreePath = defaultTreePath; } catch (FormatException) { } } //Пытаемся загрузить дерево из директории пользователя defaultTreePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar + "Glint" + Path.DirectorySeparatorChar + "Yttrium" + Path.DirectorySeparatorChar + "ytgui" + Path.DirectorySeparatorChar + "default.yttree"; if (File.Exists(defaultTreePath)) { try { _treeModel = new YtTreeModel(); _treeModel.LoadFromFile(defaultTreePath); mainTreeView.Model = _treeModel; mainTreeView.ExpandAll(); defaultLoaded = true; _loadedTreePath = defaultTreePath; } catch (FormatException) { } } if (!defaultLoaded) { _treeModel = new YtTreeModel(); mainTreeView.Model = _treeModel; // Создаем группу "Все компьютеры". GroupNode allCompsNode = new GroupNode( Properties.Resources.allComputersGroupName ); _treeModel.Nodes.Add(allCompsNode); mainTreeView.ExpandAll(); } }
private void createGroupHandler(object sender, EventArgs e) { TreeNodeAdv selectedNode = mainTreeView.SelectedNode; if (selectedNode == null) return; if (!(selectedNode.Tag is IGroup)) { if(selectedNode.Tag is IComputer) { selectedNode = selectedNode.Parent; } else { return; } } AddGroupForm groupForm = new AddGroupForm(); DialogResult result = groupForm.ShowDialog(); if (result == DialogResult.OK) { GroupNode groupNode = new GroupNode(groupForm.groupNameTextBox.Text); (selectedNode.Tag as Node).Nodes.Add(groupNode); selectedNode.IsExpanded = true; } }
/// <summary> /// Создание узла дерева из узла xml документа /// </summary> /// <param name="xmlNode">Узел xml документа</param> /// <returns>Созданный узел дерева</returns> protected static Aga.Controls.Tree.Node CreateNodeFromXml(XmlNode xmlNode) { if (xmlNode.Name.Equals("group")) { GroupNode groupNode = new GroupNode(xmlNode.Attributes["name"].Value); foreach (XmlNode subNode in xmlNode.ChildNodes) { groupNode.Nodes.Add(CreateNodeFromXml(subNode)); } return groupNode; } if (xmlNode.Name.Equals("computer")) { ComputerNode computerNode = new ComputerNode(xmlNode.Attributes["host"].Value); XmlAttribute password = (XmlAttribute)xmlNode.Attributes.GetNamedItem("password"); if (password != null) { computerNode.Password = password.Value; } return computerNode; } throw new FormatException("Invalid node type"); }