/// <summary>
        ///     Initializes a new instance of the <see cref="NewFolderMenuItem" /> class.
        /// </summary>
        /// <param name="directoryCreator">The directory creator.</param>
        /// <param name="projectExplorerItemFactory">The project explorer item factory.</param>
        public NewFolderMenuItem(IDirectoryFactory directoryCreator,
            IProjectExplorerItemFactory projectExplorerItemFactory)
            : base(Resources.NewFolderMenuItemHeader, 0)
        {
            Check.IfIsNull(directoryCreator).Throw<ArgumentNullException>(() => directoryCreator);
            Check.IfIsNull(projectExplorerItemFactory).Throw<ArgumentNullException>(() => projectExplorerItemFactory);

            this.directoryCreator = directoryCreator;
            this.projectExplorerItemFactory = projectExplorerItemFactory;

            Command = new Command(CreateNewFolder);
        }
        private static ProjectExplorerViewModel SetupClass(
            IEnumerable<IProjectExplorerItem> fixedItems = null,
            IProjectLoader projectLoader = null,
            IProjectExplorerItemFactory projectExplorerItemFactory = null)
        {
            fixedItems = fixedItems ?? new List<IProjectExplorerItem>();
            projectLoader = projectLoader ?? new StubIProjectLoader();
            projectExplorerItemFactory = projectExplorerItemFactory ??
                                         new StubIProjectExplorerItemFactory();

            return new ProjectExplorerViewModel(fixedItems, projectLoader, projectExplorerItemFactory);
        }
        public ProjectExplorerViewModel(
            [ImportMany(ImportConstants.FixedProjectExplorerItemKey)] IEnumerable<IProjectExplorerItem>
                fixedProjectExplorerItems,
            IProjectLoader projectLoader,
            IProjectExplorerItemFactory projectExplorerItemFactory)
        {
            Check.IfIsNull(fixedProjectExplorerItems).Throw<ArgumentNullException>(() => fixedProjectExplorerItems);
            Check.IfIsNull(projectLoader).Throw<ArgumentNullException>(() => projectLoader);
            Check.IfIsNull(projectExplorerItemFactory).Throw<ArgumentNullException>(() => projectExplorerItemFactory);

            this.fixedProjectExplorerItems = fixedProjectExplorerItems;
            this.projectExplorerItemFactory = projectExplorerItemFactory;

            projectLoader.ProjectLoaded += OnProjectLoad;
        }