/// <summary> /// Загрузка папки решения с Xml документа /// </summary> /// <param name="parent"></param> /// <param name="folderElement"></param> /// <returns></returns> private static SolutionFolder LoadSolutionFolderFromXmlDocument(SolutionFolder parent, XmlNode folderElement, Solution sol) { string expanded = folderElement.Attributes["expanded"].InnerText; string path = folderElement.Attributes["path"].InnerText; if ((string.IsNullOrEmpty(path) == false) && (path[0] == '\\')) { path = path.Substring(1); } path = System.IO.Path.Combine(parent.Path, path); SolutionFolder res = new SolutionFolder(path, parent) { Expanded = string.Equals(expanded, "True") }; foreach (XmlNode node in folderElement.ChildNodes) { if (node.Name.Equals("SolutionFolder")) { res.AddElement(LoadSolutionFolderFromXmlDocument(res, node, sol)); } if (node.Name.Equals("Project")) { res.AddElement(LoadProjectFromXmlDocument(res, node, sol)); } } return(res); }
private void itemNewSolutionFolder_Click(object sender, System.Windows.RoutedEventArgs e) { SolutionFolder folder = new SolutionFolder(System.IO.Path.Combine(RootFolder.Path, GenerateFileName("NewFolder")), this); folder.Save(); rootFolder.AddElement(folder); Save(); SchematixCore.Core.UpdateExplorerPanel(); rootFolder.Expanded = true; folder.Rename(); }
/// <summary> /// Обработчик события добавления существующего проекта по-умолчанию /// </summary> /// <param name="parent"></param> protected void CustomAddExsistingProject(SolutionFolder parent) { Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog(); ofd.Filter = "Schematix Project File|*.proj"; ofd.InitialDirectory = Path; ofd.CheckFileExists = true; ofd.Multiselect = false; if (ofd.ShowDialog() == true) { //Пользователь выбрал проект, который необходимо добавить в решение if (System.IO.File.Exists(ofd.FileName)) { Project newProj = Project.LoadProjectFromXml(parent, ofd.FileName); parent.AddElement(newProj); Save(); SchematixCore.Core.UpdateExplorerPanel(); } } }