private static void AddScriptBodies(ArchAngel.Interfaces.Template.Folder folder, string filesDir) { foreach (var subFolder in folder.Folders) { AddScriptBodies(subFolder, filesDir); } foreach (var file in folder.Files) { string filePath = Path.Combine(filesDir, string.Format("File_{0}.vnh_script", file.Id)); file.Script.Body = File.ReadAllText(filePath); } foreach (var file in folder.StaticFiles) { string filePath = Path.Combine(filesDir, string.Format("StaticFile_{0}_Skip.vnh_script", file.Id)); file.SkipThisFileScript = File.ReadAllText(filePath); } }
public void AddNewFolder() { try { if (ArchAngel.Interfaces.SharedData.CurrentProject.TemplateProject.IsOfficial) { if (MessageBox.Show(this, "Changes can't be made to built-in templates. Do you want to save-as a custom template?", "Built-in template", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) { SaveAs(); } return; } if (treeFiles.SelectedNodes.Count == 0) { MessageBox.Show(this, "Select a folder to add this file to first.", "No Folder Selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else if (treeFiles.SelectedNodes.Count > 1) { throw new Exception("Only one node should be selected."); } Cursor = Cursors.WaitCursor; Refresh(); Node selectedNode = treeFiles.SelectedNodes[0]; ArchAngel.Interfaces.Template.Folder parentFolder = (ArchAngel.Interfaces.Template.Folder)selectedNode.Tag; ArchAngel.Interfaces.Template.Folder newFolder = new ArchAngel.Interfaces.Template.Folder() { ID = ArchAngel.Interfaces.SharedData.CurrentProject.TemplateProject.GetNextAvailableFolderId(), Name = "NewFolder", Iterator = ArchAngel.Interfaces.Template.IteratorTypes.None, ParentFolder = parentFolder }; parentFolder.Folders.Add(newFolder); CreateNewFolderAndAddToTree(selectedNode, newFolder); syntaxEditorFilename.Focus(); } finally { Controller.Instance.MainForm.Activate(); Cursor = Cursors.Default; } }