void CreateProject()
        {
            if (categoryTreeView.SelectedNode != null)
            {
                ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.LastSelectedCategory", TreeViewHelper.GetPath(categoryTreeView.SelectedNode));
                ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.CategoryTreeState", TreeViewHelper.GetViewStateString(categoryTreeView));
                ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.LargeImages", largeIconsRadioButton.Checked);
            }

            string solution         = solutionNameTextBox.Text.Trim();
            string name             = nameTextBox.Text.Trim();
            string location         = locationTextBox.Text.Trim();
            string projectNameError = CheckProjectName(solution, name, location);

            if (projectNameError != null)
            {
                MessageService.ShowError(projectNameError);
                return;
            }

            if (templateListView.SelectedItems.Count == 1 && locationTextBox.Text.Length > 0 && solutionNameTextBox.Text.Length > 0)
            {
                TemplateItem item = (TemplateItem)templateListView.SelectedItems[0];
                try {
                    System.IO.Directory.CreateDirectory(NewProjectDirectory);
                } catch (Exception) {
                    MessageService.ShowError("${res:ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.CantCreateDirectoryError}");
                    return;
                }

                ProjectTemplateOptions cinfo = new ProjectTemplateOptions();

                if (item.Template.SupportedTargetFrameworks.Any())
                {
                    cinfo.TargetFramework = (TargetFramework)targetFrameworkComboBox.SelectedItem;
                    ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.TargetFramework", cinfo.TargetFramework.TargetFrameworkVersion);
                }

                cinfo.ProjectBasePath = DirectoryName.Create(NewProjectDirectory);
                cinfo.ProjectName     = name;

                if (createNewSolution)
                {
                    if (!SD.ProjectService.CloseSolution())
                    {
                        return;
                    }
                    result = item.Template.CreateAndOpenSolution(cinfo, NewSolutionDirectory, solution);
                }
                else
                {
                    cinfo.Solution       = SolutionFolder.ParentSolution;
                    cinfo.SolutionFolder = SolutionFolder;
                    result = item.Template.CreateProjects(cinfo);
                    cinfo.Solution.Save();
                }

                if (result != null)
                {
                    item.Template.RunOpenActions(result);
                }

                ProjectBrowserPad.RefreshViewAsync();
                DialogResult = DialogResult.OK;
            }
        }
Beispiel #2
0
        bool CreateProject()
        {
            if (SelectedCategory != null)
            {
                ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.LastSelectedCategory", SelectedCategory.Text);
                ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.LargeImages", SelectedIconSizeIndex);
            }

            string solution         = SolutionName.Trim();
            string name             = ProjectName.Trim();
            string location         = ProjectLocationDirectory.Trim();
            string projectNameError = CheckProjectName(solution, name, location);

            if (projectNameError != null)
            {
                MessageService.ShowError(projectNameError);
                return(false);
            }

            if (SelectedTemplate != null && ProjectLocationDirectory.Length > 0 && SolutionName.Length > 0)
            {
                TemplateItem item = SelectedTemplate;
                try {
                    System.IO.Directory.CreateDirectory(NewProjectDirectory);
                } catch (Exception) {
                    MessageService.ShowError("${res:ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.CantCreateDirectoryError}");
                    return(false);
                }

                ProjectTemplateOptions cinfo = new ProjectTemplateOptions();

                if (item.Template.SupportedTargetFrameworks.Any())
                {
                    cinfo.TargetFramework = SelectedTargetFramework;
                    ICSharpCode.Core.PropertyService.Set("Dialogs.NewProjectDialog.TargetFramework", cinfo.TargetFramework.TargetFrameworkVersion);
                }

                cinfo.ProjectBasePath = DirectoryName.Create(NewProjectDirectory);
                cinfo.ProjectName     = name;

                if (CreateNewSolution)
                {
                    if (!SD.ProjectService.CloseSolution())
                    {
                        return(false);
                    }
                    _result = item.Template.CreateAndOpenSolution(cinfo, NewSolutionDirectory, solution);
                }
                else
                {
                    cinfo.Solution       = SolutionFolder.ParentSolution;
                    cinfo.SolutionFolder = SolutionFolder;
                    _result = item.Template.CreateProjects(cinfo);
                    cinfo.Solution.Save();
                }

                if (_result != null)
                {
                    item.Template.RunOpenActions(_result);
                }

                ProjectBrowserPad.RefreshViewAsync();
                return(true);
            }
            return(false);
        }