diff options
| author | Avi Levkovich <avi@twine-s.com> | 2019-03-18 10:43:57 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2019-03-18 10:43:57 +0200 |
| commit | d5da6a6151ee363f22074df7d0f3ef0a054aeb01 (patch) | |
| tree | 7629f16e1839ee425ad9f4dd9a98040b16f9e44b /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs | |
| parent | d6cbcb31e642adc4707c4d989bb20953de7f13fc (diff) | |
| parent | c1bd7fc6d742ce7e1ba1b7a6ce345fb1bd3dd5fa (diff) | |
| download | Tango-d5da6a6151ee363f22074df7d0f3ef0a054aeb01.tar.gz Tango-d5da6a6151ee363f22074df7d0f3ef0a054aeb01.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_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.cs | 97 |
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 } } |
