aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-04-16 00:38:18 +0300
committerShlomo Hecht <shlomo@twine-s.com>2019-04-16 00:38:18 +0300
commita43abd7769c1dd19b2bfe4f9d09d8226da396516 (patch)
treea692defe22a6eb75f1ee0d2caf539300d8dceb9c /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
parentb54e81b157edff62414a8a8e3fb9e82964f0c5d1 (diff)
parent9d9aa53284fd93fc8590d2ff85741c7f4a95947b (diff)
downloadTango-a43abd7769c1dd19b2bfe4f9d09d8226da396516.tar.gz
Tango-a43abd7769c1dd19b2bfe4f9d09d8226da396516.zip
merge
Diffstat (limited to 'Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs')
-rw-r--r--Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs88
1 files changed, 84 insertions, 4 deletions
diff --git a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
index e52b58775..b156371c5 100644
--- a/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
+++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
@@ -1,19 +1,27 @@
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;
+using System.Windows.Controls;
+using System.Windows.Media.Imaging;
using Tango.Core.Commands;
+using Tango.Scripting.IDE.Controls;
+using Tango.Scripting.IDE.Dialogs;
+using Tango.Scripting.IDE.Notifications;
using Tango.Scripting.IDE.Projects;
using Tango.Scripting.IDE.ProjectTypes;
using Tango.SharedUI;
namespace Tango.Scripting.IDE
{
- public class ScriptIDEViewVM : ViewModel
+ public class ScriptIDEViewVM : IDEViewModel
{
private List<IProjectType> _projectTypes;
+ public ObservableCollection<ErrorData> ErrorList { get; set; }
#region Properties
@@ -44,32 +52,64 @@ namespace Tango.Scripting.IDE
get { return _openProjectItems; }
set { _openProjectItems = value; RaisePropertyChangedAuto(); }
}
-
+ private bool _isRunProject = false;
+ public bool IsRunProject
+ {
+ get { return _isRunProject; }
+ set
+ {
+ if (_isRunProject != value)
+ {
+ _isRunProject = value; RaisePropertyChangedAuto();
+ }
+ }
+ }
#endregion
#region Commands
-
+ public RelayCommand NewProjectCommand { get; set; }
+ public RelayCommand AddProjectCommand { get; set; }
public RelayCommand<IProjectItem> OpenProjectItemCommand { get; set; }
public RelayCommand<IProjectItem> CloseProjectItemCommand { get; set; }
+ public RelayCommand RunProject { get; set; }
+ public RelayCommand StopProject { get; set; }
#endregion
#region Constructors
- public ScriptIDEViewVM()
+ public ScriptIDEViewVM() : base()
{
_projectTypes = new List<IProjectType>();
OpenProjectItems = new ObservableCollection<IProjectItem>();
+ ErrorList = new ObservableCollection<ErrorData>();
RegisterProjectType(new StubProjectType());
+ RegisterProjectType(new UnitTestProjectType());
Solution = new Solution();
+ Solution.SolutionLocation = @"C:\Test";
Solution.Projects.Add(_projectTypes.First().NewProject("Test Project.stub"));
//Init Commands
+ NewProjectCommand = new RelayCommand(AddNewProject);
+ AddProjectCommand = new RelayCommand(AddProject);
OpenProjectItemCommand = new RelayCommand<IProjectItem>(OpenProjectItem);
CloseProjectItemCommand = new RelayCommand<IProjectItem>(CloseProjectItem);
+ RunProject = new RelayCommand(RunProjectCommand);
+ StopProject = new RelayCommand(StopRunProjectCommand);
+
+ NotificationManager = new DefaultNotificationManager();
+ }
+
+ private void RunProjectCommand(object obj)
+ {
+ // MessageBox.Show("You said: RunProjectCommand");
+ }
+ private void StopRunProjectCommand(object obj)
+ {
+ IsRunProject = false;
}
#endregion
@@ -102,7 +142,47 @@ namespace Tango.Scripting.IDE
{
_projectTypes.Remove(projectType);
}
+ /// <summary>
+ /// Open a dialog to create a new project
+ /// </summary>
+ private async void AddNewProject()
+ {
+ var vm = await NotificationManager.ShowDialog<NewProjectViewVM>();
+
+ if (vm.DialogResult)
+ {
+ Solution newSolution = new Solution();
+ newSolution.Name = vm.SolutionName;
+ newSolution.SolutionLocation = vm.ProjectLocation;
+ Solution = newSolution;
+ StringBuilder builder = new StringBuilder(vm.ProjectLocation);
+ builder.AppendFormat(@"\{0}", vm.ProjectName);
+ Solution.Projects.Add(vm.SelectedProjectType.NewProject(builder.ToString()));
+ }
+ }
+ private async void AddProject()
+ {
+ var vm = await NotificationManager.ShowDialog<AddProjectViewVM>(new AddProjectViewVM()
+ {
+ ProjectLocation = Solution.SolutionLocation
+ //ProjectLocation = Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase))
+ //ProjectLocation = "Current Solution folder..."
+ });
+ if (vm.DialogResult)
+ {
+ StringBuilder builder = new StringBuilder(vm.ProjectLocation);
+ builder.AppendFormat(@"\{0}", vm.ProjectName);
+ Solution.Projects.Add(vm.SelectedProjectType.NewProject(builder.ToString()));
+ }
+ }
+ public bool IsSolutionProject(IProject SelectedItem)
+ {
+ if (SelectedItem is StubProject)
+ return true;
+ return false;
+
+ }
#endregion
}
}