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.Scripting.IDE.ProjectTypes; using Tango.SharedUI; namespace Tango.Scripting.IDE.Dialogs { public class NewProjectDialogVM : DialogViewVM { public ObservableCollection ProjectTypes { get; set; } public List Locations { get; set; } private IProjectType _selectedProjectType = null; public IProjectType SelectedProjectType { get { return _selectedProjectType; } set { _selectedProjectType = value; RaisePropertyChangedAuto(); RaisePropertyChanged("LargeImage"); RaisePropertyChanged("SelectedDescription"); } } private BitmapSource _defaultLargeImage = ProjectType.GetImage("Images/test.png"); public BitmapSource LargeImage { get { if (SelectedProjectType != null) return SelectedProjectType.LargeImage; else return _defaultLargeImage; } } public string SelectedDescription { get { if (SelectedProjectType != null) return SelectedProjectType.Description; return ""; } } private String _projectName = "App1"; public String ProjectName { get { return _projectName; } set { _projectName = value; RaisePropertyChangedAuto(); } } private String _projectLocation; public String ProjectLocation { get { return _projectLocation; } set { _projectLocation = value; RaisePropertyChangedAuto(); } } private String _solutionName = "App1"; public String SolutionName { get { return _solutionName; } set { _solutionName = value; RaisePropertyChangedAuto(); } } public NewProjectDialogVM() : base() { ProjectTypes = new ObservableCollection(); RegisterProjectType(new StubProjectType()); RegisterProjectType(new UnitTestProjectType()); _selectedProjectType = ProjectTypes.FirstOrDefault(); string workingDirectory = Environment.CurrentDirectory; _projectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName; Locations = new List(); Locations.Add(_projectLocation); } public void RegisterProjectType(IProjectType projectType) { ProjectTypes.Add(projectType); } public void UnRegisterProjectItemHandler(IProjectType projectType) { ProjectTypes.Remove(projectType); } } }