示例#1
0
        public override void Run()
        {
            TreeNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;

            while (node != null && !(node is ISolutionFolderNode))
            {
                node = node.Parent;
            }
            ISolutionFolderNode solutionFolderNode = node as ISolutionFolderNode;

            if (node != null)
            {
                using (NewProjectDialog npdlg = new NewProjectDialog(false)) {
                    npdlg.InitialProjectLocationDirectory = GetInitialDirectorySuggestion(solutionFolderNode);

                    // show the dialog to request project type and name
                    if (npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK)
                    {
                        if (npdlg.NewProjectLocation.Length == 0)
                        {
                            MessageService.ShowError("No project has been created, there is nothing to add.");
                            return;
                        }
                        AddExitingProjectToSolution.AddProject(solutionFolderNode, npdlg.NewProjectLocation);
                        ProjectService.SaveSolution();
                    }
                }
            }
        }
示例#2
0
        void showNewProjectDialog()
        {
            slideEditController.stopPlayingTimelines();

            Browser     browse      = new Browser("Project Types", "Create Authoring Project");
            BrowserNode defaultNode = new BrowserNode("Slideshow", new SlideshowProjectTemplate());

            browse.addNode(null, null, defaultNode);
            browse.DefaultSelection = defaultNode;

            NewProjectDialog.ShowDialog(browse, (projectDialog) =>
            {
                ProjectTemplate template = projectDialog.SelectedValue;
                String fullProjectName   = projectDialog.FullProjectName;

                if (projectDialog.MakeSingleFile && !fullProjectName.EndsWith(".sl", StringComparison.InvariantCultureIgnoreCase))
                {
                    fullProjectName += ".sl";
                }
                if (slideEditController.projectExists(fullProjectName))
                {
                    MessageBox.show(String.Format("A project already exists at the location.\n{0}\n\nWould you like to delete it and create a new one?", fullProjectName), "Overwrite?", MessageBoxStyle.IconQuest | MessageBoxStyle.Yes | MessageBoxStyle.No, result =>
                    {
                        if (result == MessageBoxStyle.Yes)
                        {
                            slideEditController.createNewProject(fullProjectName, true, template);
                        }
                    });
                }
                else
                {
                    slideEditController.createNewProject(fullProjectName, false, template);
                }
            });
        }
示例#3
0
 public override void Run()
 {
     using (NewProjectDialog npdlg = new NewProjectDialog(true)) {
         npdlg.Owner = (Form)WorkbenchSingleton.Workbench;
         npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm);
     }
 }
示例#4
0
        private void ProjectToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            using (var dlg = new NewProjectDialog())
            {
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    if (dlg.SelectedTemplate != null)
                    {
                        Project p = dlg.SelectedTemplate.CreateProject(dlg.ProjectFilePath, dlg.ProjectName, WorkspaceManager);
                        if (p != null)
                        {
                            if (!Directory.Exists(Path.Combine(dlg.WorkspacePath, dlg.WorkspaceName)) && dlg.CreateWorkspace)
                            {
                                Directory.CreateDirectory(Path.Combine(dlg.WorkspacePath, dlg.ProjectName));
                                WorkspaceManager.CreateNewWorkspace(dlg.WorkspaceFilePath);
                            }
                            WorkspaceManager.AddProject(p);
                        }
                    }

                    else
                    {
                        MessageBox.Show("An existing project with this name already exists at this location!");
                        return;
                    }
                }
            }
        }
示例#5
0
        private void newProjectMenuItem_Click(object sender, EventArgs e)
        {
            var np = new NewProjectDialog();

            if (np.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var f = new Project();
                f.Name = np.Filename;
                f.Type = np.Type;

                Workspace.Solution.Projects.Add(f);

                explorerTreeView.Nodes.Clear();
                explorerTreeView.Nodes.Add(SolutionExplorer.Build(Workspace.Solution, solutionContextMenu, projectContextMenu, fileContextMenu));

                var path = new FileInfo(Workspace.SolutionPath).Directory.FullName;

                Directory.CreateDirectory(path + "\\" + f.Name);
                Directory.CreateDirectory(path + "\\" + f.Name + "\\Properties");

                np.Plugin.Events.Fire("OnCreateProject", f);

                Workspace.Solution.Save(Workspace.SolutionPath);
            }
        }
示例#6
0
        public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
        {
            try
            {
                NewProjectDialog dialog = new NewProjectDialog();
                dialog.ShowDialog();
                var dialogResult = dialog.Result;

                if (dialogResult.Cancelled)
                {
                    throw new WizardBackoutException();
                }

                replacementsDictionary.Add("passthrough:CreateAndroidProject", dialogResult.CreateAndroid.ToString());
                replacementsDictionary.Add("passthrough:CreateiOSProject", dialogResult.CreateiOS.ToString());
                replacementsDictionary.Add("passthrough:CreateUWPProject", dialogResult.CreateUwp.ToString());
                replacementsDictionary.Add("passthrough:Container", dialogResult.ContainerType.ToString());
            }
            catch
            {
                string solutionDirectory = replacementsDictionary["$solutiondirectory$"];

                if (Directory.Exists(solutionDirectory))
                {
                    Directory.Delete(solutionDirectory, true);
                }

                throw;
            }
        }
示例#7
0
        public void NewProject()
        {
            using (var app = new PythonVisualStudioApp()) {
                using (var newProjDialog = NewProjectDialog.FromDte(app)) {
                    newProjDialog.FocusLanguageNode();

                    var consoleApp = newProjDialog.ProjectTypes.FindItem("Python Application");
                    consoleApp.Select();

                    newProjDialog.OK();
                }

                // wait for new solution to load...
                for (int i = 0; i < 10 && app.Dte.Solution.Projects.Count == 0; i++)
                {
                    System.Threading.Thread.Sleep(1000);
                }

                Assert.AreEqual(1, app.Dte.Solution.Projects.Count);

                var project = app.Dte.Solution.Projects.Item(1);
                Console.WriteLine("Project.Name: {0}", project.Name ?? "(null)");

                var itemName = Path.ChangeExtension(project.Name, ".py");
                Console.WriteLine("Expected item: {0}", itemName);

                Console.WriteLine("Items:");
                foreach (var item in project.ProjectItems.OfType <ProjectItem>())
                {
                    Console.WriteLine("  {0}", item.Name ?? "(null)");
                }

                Assert.IsNotNull(project.ProjectItems.Item(itemName));
            }
        }
示例#8
0
 public void Command_NewProject()
 {
     NewProjectCommand = new CommandBase((parameter, command) =>
     {
         var dialog = new NewProjectDialog(Model.Window);
         dialog.ShowDialog();
     });
 }
示例#9
0
 public void AddProject()
 {
     using (var dlg = new NewProjectDialog())
     {
         if (dlg.ShowDialog() == DialogResult.OK)
         {
         }
     }
 }
示例#10
0
        private void NewProjectCommandExecuted(object obj)
        {
            var dialog = new NewProjectDialog();

            if (dialog.ShowDialog() == true)
            {
                ConnectionParameters = dialog.ViewModel.ConnectionParameters;
            }
        }
        public async Task NewProject()
        {
            var dialog = new OpenFolderDialog();
            var result = await dialog.ShowAsync(new Window());

            if (!String.IsNullOrEmpty(result))
            {
                var window = new NewProjectDialog(result);
                window.Show();
            }
        }
示例#12
0
        public void ShowDialog(Action <String> newProjectPathCallback)
        {
            NewProjectDialog newProjectDialog = new NewProjectDialog();

            if (newProjectDialog.ShowDialog() == true && this.IsProjectNameValid)
            {
                String newProjectPath = Path.Combine(SettingsViewModel.GetInstance().ProjectRoot, this.NewProjectName);

                newProjectPathCallback?.Invoke(newProjectPath);
            }
        }
示例#13
0
        private void OnCreateProject(object sender, EventArgs e)
        {
            var dlg = new NewProjectDialog(WeSay.Project.WeSayWordsProject.NewProjectDirectory);

            if (DialogResult.OK != dlg.ShowDialog())
            {
                return;
            }
            CreateAndOpenProject(dlg.PathToNewProjectDirectory, dlg.Iso639Code, dlg.LanguageName);

            PointOutOpenWeSayButton();
        }
示例#14
0
        public bool GetSaveProjectDir(out string path)
        {
            var dialog = new NewProjectDialog();

            if (dialog.ShowDialog() == true)
            {
                path = dialog.ProjectDir;
                return(true);
            }

            path = null;
            return(false);
        }
示例#15
0
        private void NewProjectEvent(object sender, ExecutedRoutedEventArgs e)
        {
            NewProjectDialog popup = new NewProjectDialog();

            popup.File = Directory.GetCurrentDirectory() + System.IO.Path.DirectorySeparatorChar + "NewZerothProject.zproj";
            popup.ShowDialog();
            if (popup.cancelled || popup.invalid)
            {
                return;
            }
            Logger.log($"[Editor] Creating new project '{popup.ProjectName}' at '{popup.File}'");
            LoadedProject newProject = LoadedProject.newProject(popup.File, popup.ProjectName);

            switchProject(newProject);
        }
示例#16
0
        //================================================================================================================================================
        // Delegate Command Methods
        //================================================================================================================================================
        #region OnAddProject(object parameter)
        protected void OnAddProject(object parameter)
        {
            Project p = new Project();

            Projects.Add(p);
            //Items.Add(p);
            NewProjectDialog npd = new NewProjectDialog(p);

            npd.ShowDialog();
            TreeViewItem tvi = new TreeViewItem();

            tvi.Header      = p.Name;
            tvi.DataContext = p;
            TreeViewItems.Add(tvi);

            CurrentItem = tvi;
        }
示例#17
0
        private void newProjectMenuItem_Click(object sender, RoutedEventArgs e)
        {
            NewProjectDialog newProjectDialog = new NewProjectDialog();

            // Show new project dialog to the user.
            if (newProjectDialog.ShowDialog().Value)
            {
                // Dialog OK, got some correct properties for creating editor.

                // Dispose old project and show warning dialog to the user.
                if (project != null)
                {
                    if (MessageBox.Show("All unsaved work will be lost, continue?", "Warning", MessageBoxButton.YesNo) == MessageBoxResult.No)
                    {
                        return;
                    }

                    CleanupLastProject();
                }

                // Create new project.
                NewProjectProperties properties = newProjectDialog.NewProjectProperties;

                switch (properties.MapType)
                {
                case MapType.Tile:
                    project = ProjectBuilder.BuildTileMapProject(properties, xnaControl.Handle);
                    break;

                case MapType.Object:
                case MapType.Hex:
                default:
                    throw new NotImplementedException("Feature is not implemented.");
                }

                // Initialize the project.
                InitializeNewProject();

                // Set resolution.
                // TODO: set resolution once its XNA controls size valid.
                project.Game.ChangeGraphics(1280, 720);
            }

            // Invalid results, continue.
        }
示例#18
0
        private void radMenuItem12_Click(object sender, EventArgs e)
        {
            var np = new NewProjectDialog();

            if (np.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var f = new Project();
                f.Name = np.Filename;
                f.Type = np.Type;

                Workspace.Solution.Projects.Add(f);

                radTreeView1.Nodes.Clear();
                radTreeView1.Nodes.Add(SolutionExplorer.Build(Workspace.Solution));

                Workspace.Solution.Save(Workspace.SolutionPath);
            }
        }
示例#19
0
        Project NewProject(IDatabase db, Project project, ProjectType type,
                           ITemplatesService tps, List <LongoMatch.Common.Device> devices, out CaptureSettings captureSettings)
        {
            NewProjectDialog npd = new NewProjectDialog();

            npd.TransientFor     = mainWindow as Gtk.Window;
            npd.Use              = type;
            npd.TemplatesService = tps;
            npd.Project          = project;
            if (type == ProjectType.CaptureProject)
            {
                npd.Devices = devices;
            }
            int response = npd.Run();

            while (true)
            {
                if (response != (int)ResponseType.Ok)
                {
                    project = null;
                    break;
                }
                else if (npd.Project == null)
                {
                    InfoMessage(Catalog.GetString("Please, select a video file."));
                    response = npd.Run();
                }
                else
                {
                    project = npd.Project;
                    break;
                }
            }
            if (type == ProjectType.CaptureProject || type == ProjectType.URICaptureProject)
            {
                captureSettings = npd.CaptureSettings;
            }
            else
            {
                captureSettings = new CaptureSettings();
            }
            npd.Destroy();
            return(project);
        }
示例#20
0
        public void CreateNewProject(WizardEventHandler wizardEventHandler)
        {
            NewProjectDialog npd = new NewProjectDialog(null);

            npd = new NewProjectDialog(null);
            if (this.CurrentWizard != null)
            {
                this.CurrentWizard.DialogOpened(npd);
            }
            toolStripStatusLabel.Text = "Creating new project";
            if (npd.ShowDialog() == DialogResult.OK)
            {
                //OpeningSpectraCount = 0;
                tsMainProgressBar.Maximum = 0;
                tsMainProgressBar.Visible = true;
                //toolStripStatusLabel.Text = String.Format("Creating Project {0}...", npd.projectNameTextBox.Text);
                foreach (SpectraContainerDescription scd in npd.ContainerDescriptions)
                {
                    tsMainProgressBar.Maximum += scd.spectraPaths.Length;
                }
                string   defaultProjectName = getDefaultProjectName();
                IProject project            = AvailableAssemblies.getProject(
                    npd.ProjectType.ToString(),
                    new object[] {
                    defaultProjectName,     //npd.projectNameTextBox.Text,
                    npd.ContainerDescriptions
                });
                //project.Save(System.IO.Path.Combine(npd.projectPathTextBox.Text, npd.projectNameTextBox.Text), false);
                ProjectForm form = CreateProjectWindow(project);
                form.NotSavedChanges      = true;
                tsMainProgressBar.Visible = false;
                if (wizardEventHandler != null)
                {
                    wizardEventHandler(this, new WizardEventArgs(form, WizardEventType.Created));
                }
            }
            if (CurrentWizard != null)
            {
                CurrentWizard.DialogClosed();
            }
            npd.Dispose();
            toolStripStatusLabel.Text = "Ready";
        }
示例#21
0
        private void radMenuItem12_Click(object sender, EventArgs e)
        {
            var np = new NewProjectDialog();

            if (np.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var f = new Project();
                f.Name = np.Filename;
                f.Type = np.Type;

                Workspace.Solution.Projects.Add(f);

                explorerTreeView.Nodes.Clear();
                explorerTreeView.Nodes.Add(SolutionExplorer.Build(Workspace.Solution, radContextMenu1));

                np.Plugin.Events.Fire("OnCreateProject", f);

                Workspace.Solution.Save(Workspace.SolutionPath);
            }
        }
        public Project NewProject()
        {
            NewProjectDialog dialog = new NewProjectDialog();

            if (dialog.ShowDialog(owner) == DialogResult.OK)
            {
                try
                {
                    ProjectCreator creator = new ProjectCreator();
                    return(creator.CreateProject(dialog.TemplateDirectory,
                                                 dialog.ProjectLocation, dialog.ProjectName));
                }
                catch (Exception exception)
                {
                    ErrorHandler.ShowInfo("Could not create the requested project: " + exception.Message);
                }
            }

            return(null);
        }
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;
            ISolutionFolderNode            solutionFolderNode = node as ISolutionFolderNode;

            if (node != null)
            {
                using (NewProjectDialog npdlg = new NewProjectDialog(false)) {
                    npdlg.InitialProjectLocationDirectory = GetInitialDirectorySuggestion(solutionFolderNode);

                    // show the dialog to request project type and name
                    if (npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK)
                    {
                        if (npdlg.NewProjectLocation.Length == 0)
                        {
                            MessageService.ShowError("No project has been created, there is nothing to add.");
                            return;
                        }
                        AddExitingProjectToSolution.AddProject(solutionFolderNode, npdlg.NewProjectLocation);
                        ProjectService.SaveSolution();

                        if (SDLite.UpdateInfo.ExpandNewProjectByDefaut)
                        {
                            IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;

                            if (window != null && window.ActiveViewContent != null)
                            {
                                ProjectBrowserPad.Instance.ProjectBrowserControl.SelectFile(window.ActiveViewContent.PrimaryFileName);
                            }

                            node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;

                            if (node is ProjectNode)
                            {
                                node.Expand();
                            }
                        }
                    }
                }
            }
        }
        public Project NewProject()
        {
            NewProjectDialog dialog = new NewProjectDialog();

            if (dialog.ShowDialog(owner) == DialogResult.OK)
            {
                try
                {
                    FlashDevelopActions.CheckAuthorName();
                    ProjectCreator creator = new ProjectCreator();
                    return(creator.CreateProject(dialog.TemplateDirectory, dialog.ProjectLocation, dialog.ProjectName, dialog.PackageName));
                }
                catch (Exception exception)
                {
                    string msg = TextHelper.GetString("Info.CouldNotCreateProject");
                    ErrorManager.ShowInfo(msg + " " + exception.Message);
                }
            }

            return(null);
        }
示例#25
0
        public override void Run()
        {
            AbstractProjectBrowserTreeNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode;
            ISolutionFolderNode            solutionFolderNode = node as ISolutionFolderNode;

            if (node != null)
            {
                using (NewProjectDialog npdlg = new NewProjectDialog(false)) {
                    if (npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm) == DialogResult.OK)
                    {
                        if (npdlg.NewProjectLocation.Length == 0)
                        {
                            MessageService.ShowError("No project has been created, there is nothing to add.");
                            return;
                        }
                        AddExitingProjectToSolution.AddProject(solutionFolderNode, npdlg.NewProjectLocation);
                        ProjectService.SaveSolution();
                    }
                }
            }
        }
示例#26
0
        public IEnumerator SetUp()
        {
            GameObject buttonsLandscape = Q.driver.Find(By.Name, "ButtonsLandscape");
            GameObject scenesList       = Q.driver.Find(By.Name, "ScenesList");
            GameObject projectsList     = Q.driver.Find(By.Name, "ProjectsList");
            GameObject mainScreen       = Q.driver.Find(By.Name, "MainScreen");

            sceneseBtn  = Q.driver.FindIn(buttonsLandscape, By.Name, "ScenesButton");
            projectsBtn = Q.driver.FindIn(buttonsLandscape, By.Name, "ProjectsButton");
            packagesBtn = Q.driver.FindIn(buttonsLandscape, By.Name, "PackagesButton");

            saveSceneBtn  = Q.driver.Find(By.Name, "SaveScene");
            closeSceneBtn = Q.driver.Find(By.Name, "CloseScene");

            saveProjectBtn  = Q.driver.Find(By.Name, "SaveProject");
            closeProjectBtn = Q.driver.Find(By.Name, "CloseProject");

            newSceneProjectBtn = Q.driver.Find(By.Name, "AddNewSceneProject");
            Debug.Assert(newSceneProjectBtn != null, "newSceneProjectBtn should not be null");

            inputDialog = Q.driver.FindIn(mainScreen, By.Name, "InputDialog");

            inputDialogInput    = Q.driver.FindIn(inputDialog, By.Name, "Input");
            inputDialogOKButton = Q.driver.FindIn(inputDialog, By.Name, "Got It");

            sceneOptionMenu   = MainScreen.Instance.SceneOptionMenu;
            sceneRename       = Q.driver.FindIn(sceneOptionMenu.gameObject, By.Name, "Rename");
            sceneRemove       = Q.driver.FindIn(sceneOptionMenu.gameObject, By.Name, "Delete");
            projectOptionMenu = MainScreen.Instance.ProjectOptionMenu;
            projectRename     = Q.driver.FindIn(projectOptionMenu.gameObject, By.Name, "Rename");
            projectRemove     = Q.driver.FindIn(projectOptionMenu.gameObject, By.Name, "Delete");

            confirmationDialog         = sceneOptionMenu.ConfirmationDialog.gameObject;
            confirmationDialogOKButton = Q.driver.FindIn(confirmationDialog, By.Name, "Ok");

            newProjectDialog         = Q.driver.Find(By.Name, "NewProjectDialog").GetComponent <NewProjectDialog>();
            newProjectDialogOKButton = Q.driver.FindIn(newProjectDialog.gameObject, By.Name, "Got It");
            yield return(null);
        }
示例#27
0
        private static async Task CreateProject()
        {
            var vm = new NewProjectDialogViewModel();

            var result = new NewProjectDialog(vm).ShowDialog();

            // MessageBox.Show($"Project Name: {vm.ProjectName}{Environment.NewLine}Project Location: {vm.ProjectLocation}{Environment.NewLine}Game Type: {vm.GameType}{Environment.NewLine}Project Type: {vm.ProjectType}", "result");

            // If they canceled the operation, just quit.
            if (result == false)
            {
                return;
            }

            var instance = (MainWindow)Application.Current.MainWindow;
            CancellationTokenSource cts = new CancellationTokenSource();
            MetroDialogSettings     mds = new MetroDialogSettings()
            {
                ColorScheme           = MetroDialogColorScheme.Theme,
                AffirmativeButtonText = "Continue",
                CancellationToken     = cts.Token
            };

            ProgressDialogController controller = await instance.ShowProgressAsync($"Creating Project '{vm.ProjectName}'", "Please wait...", true, mds);

            IFileService       fileService       = new FileService();
            INewProjectService newProjectService = new NewProjectService(Log.Logger, fileService);

            await newProjectService.CreateNewProject(vm.ProjectName, vm.ProjectFile, vm.GameType, vm.CloneStock, vm.Fallback, controller);

            controller.SetProgress(1d);
            controller.SetMessage("Done!");

            await Task.Delay(1000);

            await controller.CloseAsync();

            // Open the newly created project
        }
示例#28
0
        void c_NewProject(object sender, EventArgs e)
        {
            NewProjectDialog    newProjectDialogWindow = new NewProjectDialog();
            NewProjectEventArgs args = (NewProjectEventArgs)e;
            var newProjectViewModel  = new NewProjectViewModel(args.Project);

            EventHandler handler = null;

            handler = delegate
            {
                newProjectViewModel.RequestClose -= handler;
                newProjectDialogWindow.Close();
                if (newProjectViewModel.Saved)
                {
                    viewModel.CreateMainClassWorkspace();
                }
            };

            newProjectViewModel.RequestClose += handler;

            newProjectDialogWindow.DataContext = newProjectViewModel;
            newProjectDialogWindow.ShowDialog();
        }
示例#29
0
        public void NewProject()
        {
            using (var app = new PythonVisualStudioApp()) {
                using (var newProjDialog = NewProjectDialog.FromDte(app)) {
                    newProjDialog.FocusLanguageNode();

                    var consoleApp = newProjDialog.ProjectTypes.FindItem("Python Application");
                    consoleApp.Select();

                    newProjDialog.OK();
                }

                // wait for new solution to load...
                for (int i = 0; i < 10 && app.Dte.Solution.Projects.Count == 0; i++)
                {
                    System.Threading.Thread.Sleep(1000);
                }

                Assert.AreEqual(1, app.Dte.Solution.Projects.Count);

                Assert.IsNotNull(app.Dte.Solution.Projects.Item(1).ProjectItems.Item(Path.GetFileNameWithoutExtension(app.Dte.Solution.FullName) + ".py"));
            }
        }
示例#30
0
        public ProjectTemplateResult ShowNewProjectDialog(ISolutionFolder solutionFolder, IEnumerable <TemplateCategory> templates)
        {
                        #if DEBUG
            SD.Templates.UpdateTemplates();
                        #endif
            using (NewProjectDialog npdlg = new NewProjectDialog(templates ?? SD.Templates.TemplateCategories, createNewSolution: solutionFolder == null)) {
                npdlg.SolutionFolder = solutionFolder;
                if (solutionFolder != null)
                {
                    npdlg.InitialProjectLocationDirectory = AddNewProjectToSolution.GetInitialDirectorySuggestion(solutionFolder);
                }

                // show the dialog to request project type and name
                if (npdlg.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK)
                {
                    return(npdlg.result);
                }
                else
                {
                    return(null);
                }
            }
        }