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-03-25 14:35:30 +0200
committerShlomo Hecht <shlomo@twine-s.com>2019-03-25 14:35:30 +0200
commitcbb5066b1997bb430e33a89e742fd0b5c440a388 (patch)
tree3b45ad87006780a11f0323a5716cdd0a85d30d30 /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs
parent0a3f882fe4d388d7387a165349595208cf96a3ae (diff)
parentdf1a05d5586fbce72e9aa2cb05cd64f74d1b98e9 (diff)
downloadTango-cbb5066b1997bb430e33a89e742fd0b5c440a388.tar.gz
Tango-cbb5066b1997bb430e33a89e742fd0b5c440a388.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
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.cs97
1 files changed, 93 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 16644b6da..e52b58775 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,108 @@
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.Scripting.IDE.Projects;
+using Tango.Scripting.IDE.ProjectTypes;
using Tango.SharedUI;
namespace Tango.Scripting.IDE
{
public class ScriptIDEViewVM : ViewModel
{
- private IScriptProject _project;
- public IScriptProject Project
+ private List<IProjectType> _projectTypes;
+
+ #region Properties
+
+ private Solution _solution;
+ public Solution Solution
+ {
+ get { return _solution; }
+ set { _solution = value; RaisePropertyChangedAuto(); }
+ }
+
+ private IProject _selectedProject;
+ public IProject SelectedProject
+ {
+ get { return _selectedProject; }
+ set { _selectedProject = value; RaisePropertyChangedAuto(); }
+ }
+
+ private IProjectItem _selectedProjectItem;
+ public IProjectItem SelectedProjectItem
+ {
+ get { return _selectedProjectItem; }
+ set { _selectedProjectItem = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ObservableCollection<IProjectItem> _openProjectItems;
+ public ObservableCollection<IProjectItem> OpenProjectItems
+ {
+ get { return _openProjectItems; }
+ set { _openProjectItems = value; RaisePropertyChangedAuto(); }
+ }
+
+ #endregion
+
+ #region Commands
+
+ public RelayCommand<IProjectItem> OpenProjectItemCommand { get; set; }
+
+ public RelayCommand<IProjectItem> CloseProjectItemCommand { get; set; }
+
+ #endregion
+
+ #region Constructors
+
+ public ScriptIDEViewVM()
{
- get { return _project; }
- set { _project = value; RaisePropertyChangedAuto(); }
+ _projectTypes = new List<IProjectType>();
+ OpenProjectItems = new ObservableCollection<IProjectItem>();
+
+ RegisterProjectType(new StubProjectType());
+
+ Solution = new Solution();
+ Solution.Projects.Add(_projectTypes.First().NewProject("Test Project.stub"));
+
+ //Init Commands
+ OpenProjectItemCommand = new RelayCommand<IProjectItem>(OpenProjectItem);
+ CloseProjectItemCommand = new RelayCommand<IProjectItem>(CloseProjectItem);
+ }
+
+ #endregion
+
+ #region Public Methods
+
+ private void OpenProjectItem(IProjectItem projectItem)
+ {
+ if (!OpenProjectItems.Contains(projectItem))
+ {
+ OpenProjectItems.Add(projectItem);
+ }
+
+ SelectedProjectItem = projectItem;
+ }
+
+ private void CloseProjectItem(IProjectItem projectItem)
+ {
+ OpenProjectItems.Remove(projectItem);
+
+ SelectedProjectItem = OpenProjectItems.FirstOrDefault();
+ }
+
+ public void RegisterProjectType(IProjectType projectType)
+ {
+ _projectTypes.Add(projectType);
}
+
+ public void UnRegisterProjectItemHandler(IProjectType projectType)
+ {
+ _projectTypes.Remove(projectType);
+ }
+
+ #endregion
}
}