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(List projectTypes) : base(projectTypes)
{
Title = "New Project";
BrowseFileCommand = new RelayCommand(BrowseFile);
}
public NewProjectViewVM(IEnumerable lastSolutionFolders, List projectTypes) : this(projectTypes)
{
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);
}
}
}