Exemple #1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Creates a new project.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public static SpongeProject Create(IWin32Window parent)
        {
            var viewModel = new NewProjectDlgViewModel();

            using (var dlg = new NewProjectDlg(viewModel))
            {
                return(dlg.ShowDialog(parent) == DialogResult.OK ?
                       Create(viewModel.NewProjectName) : null);
            }
        }
Exemple #2
0
        /// ------------------------------------------------------------------------------------
        private void HandleCreateProjectClick(object sender, EventArgs e)
        {
            var viewModel = new NewProjectDlgViewModel();

            using (var dlg = new NewProjectDlg(viewModel))
            {
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    Model.SetRequestedPath(NewProjectDlgViewModel.ParentFolderPathForNewProject, viewModel.NewProjectName);
                    DialogResult = DialogResult.OK;
                    Close();
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// On new project command, display the creation dialog...
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void NewProject()
        {
            try
            {
                NewProjectDlg browser = new NewProjectDlg();
                browser.Owner = Application.Current.MainWindow;

                if (browser.ShowDialog() == true)
                {
                    ProjectService.Instance.Create(browser.ProjectLocation, browser.ProjectName);
                }
            }
            catch (Exception err)
            {
                Tracer.Error("MainWindow.NewProject", err);
            }
        }
Exemple #4
0
        public void DoNewProject()
        {
            var pdlg = new NewProjectDlg(NewProjectDlg.DialogMode.CreateNew | (IDEManager.CurrentSolution != null ? NewProjectDlg.DialogMode.Add : 0));

            Util.CreateDirectoryRecursively(GlobalProperties.Instance.DefaultProjectDirectory);
            pdlg.ProjectDir = GlobalProperties.Instance.DefaultProjectDirectory;

            if (pdlg.ShowDialog().Value)
            {
                var pdir = pdlg.ProjectDir;

                if (pdlg.CreateSolutionDir && !pdlg.AddToCurrentSolution)
                {
                    pdir += "\\" + Util.PurifyDirName(pdlg.SolutionName);
                }

                Util.CreateDirectoryRecursively(pdir);

                if (IDEManager.CurrentSolution != null && pdlg.AddToCurrentSolution)
                {
                    IDEManager.ProjectManagement.AddNewProjectToSolution(
                        pdlg.SelectedLanguageBinding,
                        pdlg.SelectedProjectType,
                        pdlg.ProjectName,
                        pdir);
                }
                else if (!pdlg.AddToCurrentSolution)
                {
                    IDEManager.CurrentSolution = IDEManager.ProjectManagement.CreateNewProjectAndSolution(
                        pdlg.SelectedLanguageBinding,
                        pdlg.SelectedProjectType,
                        pdlg.ProjectName,
                        pdir,
                        pdlg.SolutionName);
                    AdjustLastFileList(IDEManager.CurrentSolution.FileName, true);
                }

                RootWindow.RefreshGUI();
            }
        }
Exemple #5
0
        void MainTree_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                // Get hovered node
                var n = MainTree.GetNodeAt(e.Location);
                if (n == null)
                {
                    return;
                }
                MainTree.SelectedNode = n;

                var cm = new System.Windows.Forms.ContextMenuStrip();
                // Set node tag to our node
                cm.Tag = n;

                cm.Items.Add("Rename", null, delegate(Object o, EventArgs _e)
                {
                    n.BeginEdit();
                });

                #region Build context menu

                #region File Node
                if (n is FileNode)
                {
                    var     fn  = n as FileNode;
                    Project prj = fn.ParentProjectNode.Project;

                    cm.Items.Add("Open", CommonIcons.open16, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.Instance.OpenFile(fn.AbsolutePath);
                    });

                    AddCutCopyPasteButtons(cm, fn, true, true, false);

                    cm.Items.Add("Exlude", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.FileManagement.ExludeFileFromProject(prj, fn.RelativeFilePath);
                    });

                    cm.Items.Add("Delete", CommonIcons.delete16, delegate(Object o, EventArgs _e)
                    {
                        if (Util.ShowDeleteFileDialog(fn.FileName))
                        {
                            IDEManager.FileManagement.RemoveFileFromProject(prj, fn.RelativeFilePath);
                        }
                    });

                    cm.Items.Add(new ToolStripSeparator());

                    cm.Items.Add("Open File Path", null, delegate(Object o, EventArgs _e)
                    {
                        System.Diagnostics.Process.Start("explorer", System.IO.Path.GetDirectoryName(fn.AbsolutePath));
                    });
                }
                #endregion

                #region Directory Node
                else if (n is DirectoryNode)
                {
                    var dn = n as DirectoryNode;

                    var subMenu = new ToolStripMenuItem("Add");
                    cm.Items.Add(subMenu);

                    subMenu.DropDownItems.Add("File", CommonIcons.addfile16, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.FileManagement.AddNewSourceToProject(
                            dn.ParentProjectNode.Project, dn.RelativePath);
                    });

                    subMenu.DropDownItems.Add("Directory", CommonIcons.dir, delegate(Object o, EventArgs _e)
                    {
                        IsAddingDirectory = true;
                        var nd            = new DirectoryNode("");
                        dn.Nodes.Add(nd);
                        dn.Expand();
                        nd.BeginEdit();
                    });

                    subMenu.DropDownItems.Add("Existing File", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.FileManagement.AddExistingSourceToProject(
                            dn.ParentProjectNode.Project, dn.RelativePath);
                    });

                    cm.Items.Add(new ToolStripSeparator());

                    cm.Items.Add("Exclude", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.FileManagement.ExcludeDirectoryFromProject(
                            dn.ParentProjectNode.Project, dn.RelativePath);
                    });

                    cm.Items.Add("Delete", CommonIcons.delete16, delegate(Object o, EventArgs _e)
                    {
                        if (Util.ShowDeleteFileDialog(dn.DirectoryName))
                        {
                            IDEManager.FileManagement.RemoveDirectoryFromProject(
                                dn.ParentProjectNode.Project, dn.RelativePath);
                        }
                    });

                    AddCutCopyPasteButtons(cm, dn, true, true, true);

                    cm.Items.Add(new ToolStripSeparator());

                    cm.Items.Add("Open Path", null, delegate(Object o, EventArgs _e)
                    {
                        System.Diagnostics.Process.Start("explorer", dn.AbsolutePath);
                    });
                }
                #endregion

                #region Solution Node
                else if (n is SolutionNode)
                {
                    var sln = (n as SolutionNode).Solution;

                    cm.Items.Add("Build", CommonIcons.Icons_16x16_BuildCurrentSelectedProject, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.BuildManagement.Build(sln, true);
                    });

                    cm.Items.Add("Rebuild", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.BuildManagement.Build(sln, false);
                    });

                    cm.Items.Add("CleanUp", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.BuildManagement.CleanUpOutput(sln);
                    });

                    cm.Items.Add(new ToolStripSeparator());

                    var subMenu = new ToolStripMenuItem("Add", CommonIcons.addfile16);
                    cm.Items.Add(subMenu);

                    subMenu.DropDownItems.Add("New Project", CommonIcons.prj_16, delegate(Object o, EventArgs _e)
                    {
                        var pdlg = new NewProjectDlg(NewProjectDlg.DialogMode.Add)
                        {
                            ProjectDir = sln.BaseDirectory
                        };

                        if (pdlg.ShowDialog().Value)
                        {
                            IDEManager.ProjectManagement.AddNewProjectToSolution(
                                sln,
                                pdlg.SelectedLanguageBinding,
                                pdlg.SelectedProjectType,
                                pdlg.ProjectName,
                                pdlg.ProjectDir);
                        }
                    });

                    subMenu.DropDownItems.Add("Existing Project", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.ProjectManagement.AddExistingProjectToSolution(sln);
                    });

                    cm.Items.Add("Project Dependencies", null, delegate(Object o, EventArgs _e)
                    {
                        IDEManager.ProjectManagement.ShowProjectDependenciesDialog(sln);
                    });

                    AddCutCopyPasteButtons(cm, n as PrjExplorerNode, false, false, true);

                    cm.Items.Add(new ToolStripSeparator());

                    cm.Items.Add("Open File Path", null, delegate(Object o, EventArgs _e)
                    {
                        System.Diagnostics.Process.Start("explorer", System.IO.Path.GetDirectoryName(sln.FileName));
                    });
                }
                #endregion

                #region Project Node
                else if (n is ProjectNode)
                {
                    var pn = n as ProjectNode;

                    if (pn.IsUnloaded)
                    {
                        cm.Items.Add("Load", CommonIcons.Refresh, delegate(Object o, EventArgs _e)
                        {
                            var prjFile = pn.AbsolutePath;

                            if (string.IsNullOrEmpty(prjFile))
                            {
                                prjFile = pn.Solution.ToAbsoluteFileName(pn.Text);
                            }

                            var prj = Project.LoadProjectFromFile(pn.Solution, prjFile);
                            if (prj != null)
                            {
                                Update();
                            }
                        });

                        AddCutCopyPasteButtons(cm, pn, true, false, false);

                        cm.Items.Add(new ToolStripSeparator());

                        cm.Items.Add("Exclude", CommonIcons.delete16, delegate(Object o, EventArgs _e)
                        {
                            if (MessageBox.Show("Continue with excluding project?", "Excluding project", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                            {
                                IDEManager.ProjectManagement.ExcludeProject(pn.Solution, pn.AbsolutePath);
                            }
                        });
                    }
                    else
                    {
                        var prj = pn.Project;

                        cm.Items.Add("Build", CommonIcons.Icons_16x16_BuildCurrentSelectedProject, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.BuildManagement.Build(prj, true);
                        });

                        cm.Items.Add("Rebuild", null, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.BuildManagement.Build(prj, false);
                        });

                        cm.Items.Add("CleanUp", null, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.BuildManagement.CleanUpOutput(prj);
                        });

                        cm.Items.Add(new ToolStripSeparator());

                        var subMenu = new ToolStripMenuItem("Add");
                        cm.Items.Add(subMenu);

                        subMenu.DropDownItems.Add("File", CommonIcons.addfile16, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.FileManagement.AddNewSourceToProject(prj, "");
                        });

                        subMenu.DropDownItems.Add("Directory", CommonIcons.dir, delegate(Object o, EventArgs _e)
                        {
                            IsAddingDirectory = true;
                            var nd            = new DirectoryNode("");
                            n.Nodes.Add(nd);
                            n.Expand();
                            nd.BeginEdit();
                        });

                        subMenu.DropDownItems.Add("Existing File", null, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.FileManagement.AddExistingSourceToProject(prj, "");
                        });

                        cm.Items.Add("Project Dependencies", null, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.ProjectManagement.ShowProjectDependenciesDialog(prj);
                        });

                        AddCutCopyPasteButtons(cm, pn, true, false, true);

                        cm.Items.Add(new ToolStripSeparator());

                        cm.Items.Add("Unload", null, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.ProjectManagement.UnloadProject(prj);
                            Update();
                        });

                        cm.Items.Add("Exclude", CommonIcons.delete16, delegate(Object o, EventArgs _e)
                        {
                            if (MessageBox.Show("Continue with excluding project?", "Excluding project", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                            {
                                IDEManager.ProjectManagement.ExcludeProject(prj);
                            }
                        });

                        cm.Items.Add(new ToolStripSeparator());

                        cm.Items.Add("Open File Path", null, delegate(Object o, EventArgs _e)
                        {
                            System.Diagnostics.Process.Start("explorer", prj.BaseDirectory);
                        });

                        cm.Items.Add("Properties", CommonIcons.properties16, delegate(Object o, EventArgs _e)
                        {
                            IDEManager.ProjectManagement.ShowProjectPropertiesDialog(prj);
                        });
                    }
                }
                #endregion

                #endregion

                // Show it
                cm.Show(MainTree, e.Location);
            }
        }