diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-04-07 14:41:00 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-04-07 14:41:00 +0300 |
| commit | e49c150d363a28dc79739efb611ce1f957ba6dce (patch) | |
| tree | 3fc8f3a5b28ceb746481e46c144ba5270e438fa7 /Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs | |
| parent | e859f581bb925e575bba10e4468c3644a92ad266 (diff) | |
| parent | cfc59d248257c850b589bebe1e4e012f234d92ec (diff) | |
| download | Tango-e49c150d363a28dc79739efb611ce1f957ba6dce.tar.gz Tango-e49c150d363a28dc79739efb611ce1f957ba6dce.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.cs | 132 |
1 files changed, 132 insertions, 0 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 new file mode 100644 index 000000000..3fc0ce0e1 --- /dev/null +++ b/Software/Visual_Studio/TEMP/Tango.Scripting/Tango.Scripting.IDE/ScriptIDEViewVM.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media.Imaging; +using Tango.Core.Commands; +using Tango.Scripting.IDE.Controls; +using Tango.Scripting.IDE.Projects; +using Tango.Scripting.IDE.ProjectTypes; +using Tango.SharedUI; + +namespace Tango.Scripting.IDE +{ + public class ScriptIDEViewVM : ViewModel + { + private List<IProjectType> _projectTypes; + public ObservableCollection<ErrorData> ErrorList { get; set; } + + #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 NewProjectCommand { get; set; } + public RelayCommand<IProjectItem> OpenProjectItemCommand { get; set; } + + public RelayCommand<IProjectItem> CloseProjectItemCommand { get; set; } + public RelayCommand RunProject { get; set; } + + #endregion + + #region Constructors + + public ScriptIDEViewVM() + { + _projectTypes = new List<IProjectType>(); + OpenProjectItems = new ObservableCollection<IProjectItem>(); + ErrorList = new ObservableCollection<ErrorData>(); + + RegisterProjectType(new StubProjectType()); + RegisterProjectType(new UnitTestProjectType()); + + Solution = new Solution(); + Solution.Projects.Add(_projectTypes.First().NewProject("Test Project.stub")); + + //Init Commands + NewProjectCommand = new RelayCommand(AddNewProject); + OpenProjectItemCommand = new RelayCommand<IProjectItem>(OpenProjectItem); + CloseProjectItemCommand = new RelayCommand<IProjectItem>(CloseProjectItem); + RunProject = new RelayCommand(RunProjectCommand); + } + + private void RunProjectCommand(object obj) + { + MessageBox.Show("You said: RunProjectCommand"); + } + + #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); + } + /// <summary> + /// Open a dialog to create a new project + /// </summary> + private void AddNewProject() + { + Dialogs.NewProjectDialog dialog = new Dialogs.NewProjectDialog(true); + if(dialog.ShowDialog() == true) + { + MessageBox.Show("You said: OK"); + } + } + #endregion + } +} |
