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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
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);
}
}
}
|