aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs')
-rw-r--r--Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs107
1 files changed, 107 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs
new file mode 100644
index 000000000..7742a3434
--- /dev/null
+++ b/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/Dialogs/BaseProjectDialogVM.cs
@@ -0,0 +1,107 @@
+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;
+
+namespace Tango.Scripting.IDE.Dialogs
+{
+ public class BaseProjectDialogVM : IDEDialogViewModel
+ {
+ #region properties
+
+ public ObservableCollection<IProjectType> ProjectTypes { 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(); InvalidateRelayCommands(); }
+ }
+ private String _projectLocation;
+ public String ProjectLocation
+ {
+ get { return _projectLocation; }
+ set { _projectLocation = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ }
+
+ #endregion
+
+ #region constructor
+
+ public BaseProjectDialogVM() : base()
+ {
+ ProjectTypes = new ObservableCollection<IProjectType>();
+ RegisterProjectType(new StubProjectType());
+ RegisterProjectType(new UnitTestProjectType());
+
+ _selectedProjectType = ProjectTypes.FirstOrDefault();
+
+ string workingDirectory = Environment.CurrentDirectory;
+ ProjectLocation = Directory.GetParent(workingDirectory).Parent.Parent.FullName;
+ }
+
+ #endregion
+
+ #region register_project_types
+
+ public void RegisterProjectType(IProjectType projectType)
+ {
+ ProjectTypes.Add(projectType);
+ }
+
+ public void UnRegisterProjectItemHandler(IProjectType projectType)
+ {
+ ProjectTypes.Remove(projectType);
+ }
+
+ #endregion
+
+ #region Override Methods
+
+ protected override bool CanOK()
+ {
+ return !String.IsNullOrWhiteSpace(ProjectLocation) && !String.IsNullOrWhiteSpace(ProjectName);
+ }
+
+ #endregion
+
+ }
+}