Esempio n. 1
0
        /// <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));
        }
Esempio n. 4
0
        /// <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();
            }
        }
Esempio n. 5
0
 /// <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);
 }
Esempio n. 6
0
 /// <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));
 }
Esempio n. 12
0
 /// <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);
 }