aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/NewProjectViewVM.cs
blob: 98558c7dc2bd2b968cf6727db91c0c920bb0c5f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media.Imaging;
using Tango.Core.Commands;
using Tango.Scripting.IDE.ProjectTypes;
using Tango.SharedUI;
using Microsoft.WindowsAPICodePack.Dialogs;
using Microsoft.Win32;

namespace Tango.Scripting.IDE.Dialogs
{
    public class NewProjectViewVM : BaseProjectDialogVM
    {
        /// <summary>
        /// Gets or sets the last solution locations.
        /// </summary>
        public ObservableCollection<String> LastSolutionPaths { get; set; }

        private String _solutionName = "App1";
        public String SolutionName
        {
            get { return _solutionName; }
            set { _solutionName = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
        }

        #region Commands
        public RelayCommand BrowseFileCommand { get; set; }
        #endregion

        public NewProjectViewVM(List<IProjectType> projectTypes) : base(projectTypes)
        {
            Title = "New Project";
            BrowseFileCommand = new RelayCommand(BrowseFile);
        }

        public NewProjectViewVM(IEnumerable<String> lastSolutionFolders, List<IProjectType> projectTypes) : this(projectTypes)
        {
            LastSolutionPaths = new ObservableCollection<string>(lastSolutionFolders);
            ProjectLocation = LastSolutionPaths.FirstOrDefault();
        }

        private void BrowseFile()
        {
            CommonOpenFileDialog dialog = new CommonOpenFileDialog();
            dialog.InitialDirectory = LastSolutionPaths.LastOrDefault<string>();
            dialog.IsFolderPicker = true;
            if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
            {
                if (Directory.Exists(dialog.FileName) == true)
                {
                    if (false == LastSolutionPaths.Contains(dialog.FileName))
                    {
                        LastSolutionPaths.Add(dialog.FileName);
                    }
                    ProjectLocation = dialog.FileName;
                }
            }
        }

        protected override bool CanOK()
        {
            return base.CanOK() && !String.IsNullOrWhiteSpace(SolutionName);
        }
    }
}