/// <summary> /// Adds another file (child) item below the parent item. /// This will throw an Exception if parent is null. /// </summary> /// <param name="itemName"></param> /// <param name="parent"></param> /// <param name="itemType"></param> /// <returns></returns> public ISolutionBaseItem AddChild( string itemName, SolutionItemType itemType, ISolutionBaseItem parent) { var internalItem = parent as ISolutionItem; if (internalItem == null) { throw new System.ArgumentException("Paremeter parent cannot have children."); } switch (itemType) { case SolutionItemType.SolutionRootItem: return(AddSolutionRootItem(itemName)); case SolutionItemType.File: return(internalItem.AddFile(itemName)); case SolutionItemType.Folder: return(internalItem.AddFolder(itemName)); case SolutionItemType.Project: return(internalItem.AddProject(itemName)); default: throw new ArgumentOutOfRangeException(itemType.ToString()); } }
/// <summary> /// Renames a child item in the collection of children in this item. /// A re-sort and IsItemSelected should be applied after the rename such that /// the renamed item should re-appear at the correct position in the sorted /// list of items. /// </summary> /// <param name="item"></param> /// <param name="newName"></param> /// <returns></returns> public void RenameChild(ISolutionBaseItem item, string newName) { if (item == null) { return; } _Children.RenameItem(item, newName); }
/// <summary> /// Removes a child item from the collection of children in this item. /// </summary> /// <param name="item"></param> /// <returns></returns> public bool RemoveChild(ISolutionBaseItem item) { if (item == null) { return(false); } item.SetParent(null); return(_Children.RemoveItem(item)); }
/// <summary> /// Creates a mockup project structure with items below it. /// </summary> /// <param name="solutionRoot"></param> /// <param name="project"></param> /// <param name="parent"></param> /// <param name="folders"></param> /// <param name="files"></param> private static void CreateProject( ISolution solutionRoot , string project , ISolutionBaseItem parent , List <string> folders , List <string> files ) { var projectItem = solutionRoot.AddChild(project, SolutionItemType.Project, parent); var projectItemChanged = false; for (int i = 0; i < 13; i++) { solutionRoot.AddChild(string.Format("file_{0}", i), SolutionItemType.File, projectItem); projectItemChanged = true; } if (folders != null) { foreach (var item in folders) { var folder = solutionRoot.AddChild(item, SolutionItemType.Folder, projectItem); for (int i = 0; i < 123; i++) { solutionRoot.AddChild(string.Format("file_{0}", i), SolutionItemType.File, folder); projectItemChanged = true; } } } if (files != null) { foreach (var item in files) { solutionRoot.AddChild(item, SolutionItemType.File, projectItem); } projectItemChanged = true; } parent.SortChildren(); if (projectItemChanged == true) { projectItem.SortChildren(); } }
/// <summary> /// Renames the displayed string in the <paramref name="solutionItem"/> /// as requested in <paramref name="newDisplayName"/>. /// </summary> /// <param name="solutionItem"></param> /// <param name="newDisplayName"></param> public void RenameItem(ISolutionBaseItem solutionItem, string newDisplayName) { solutionItem.SetDisplayName(newDisplayName); }
/// <summary> /// Class constructor /// </summary> public ProjectViewModel(ISolutionBaseItem parent, string displayName) : base(parent, Models.SolutionItemType.Project) { SetDisplayName(displayName); }
/// <summary> /// Class constructor /// </summary> public FolderViewModel(ISolutionBaseItem parent, string displayName) : base(parent, Models.SolutionItemType.Folder) { SetDisplayName(displayName); }
/// <summary> /// Class constructor /// </summary> protected SolutionBaseItemViewModel(ISolutionBaseItem parent, SolutionItemType itemType) : this() { SetParent(parent); _ItemType = itemType; }
/// <summary> /// Adds a child item of type <see cref="ISolutionBaseItem"/> to this parent /// which can also be typed with <see cref="ISolutionBaseItem"/>. /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <returns></returns> protected ISolutionBaseItem AddChild(string key, ISolutionBaseItem value) { _Children.AddItem(value); return(value); }
/// <summary> /// Sets the <see cref="Parent"/> property object /// where this object is the child in the treeview. /// </summary> /// <param name="parent"></param> public void SetParent(ISolutionBaseItem parent) { _Parent = parent; NotifyPropertyChanged(() => Parent); }
/// <summary> /// Adds a child item of type <see cref="ISolutionBaseItem"/> to this parent /// which can also be typed with <see cref="ISolutionBaseItem"/>. /// </summary> /// <param name="item"></param> /// <returns></returns> public ISolutionBaseItem AddChild(ISolutionBaseItem item) { return(AddChild(item.DisplayName, item)); }
/// <summary> /// Class constructor /// </summary> /// <param name="displayName"></param> /// <param name="parent"></param> public SolutionRootItemViewModel(ISolutionBaseItem parent, string displayName) : base(parent, Models.SolutionItemType.SolutionRootItem) { SetDisplayName(displayName); }