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 { /// /// Gets or sets the last solution locations. /// public ObservableCollection 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() : base() { Title = "New Project"; BrowseFileCommand = new RelayCommand(BrowseFile); } public NewProjectViewVM(IEnumerable lastSolutionFolders) : this() { LastSolutionPaths = new ObservableCollection(lastSolutionFolders); ProjectLocation = LastSolutionPaths.FirstOrDefault(); } private void BrowseFile() { CommonOpenFileDialog dialog = new CommonOpenFileDialog(); dialog.InitialDirectory = LastSolutionPaths.LastOrDefault(); 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); } } }