aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ProcessParametersTablesGroupsViewVM.cs
blob: 2ce13ffef3b57fe5483e4f577f3756519abb8710 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.MachineStudio.Common.Notifications;

namespace Tango.MachineStudio.DB.ViewModels
{
    public class ProcessParametersTablesGroupsViewVM : DbTableViewModel<ProcessParametersTablesGroup>
    {
        public ProcessParametersTablesGroupsViewVM(INotificationProvider notification) : base(notification)
        {
            
        }

        protected override void OnBeforeEntitySave(DialogOpenMode mode, ProcessParametersTablesGroup entity)
        {
            entity.SaveDate = DateTime.UtcNow;

            if (entity.Rml != null && entity.Active)
            {
                foreach (var group in entity.Rml.ProcessParametersTablesGroups.Where(x => x != entity))
                {
                    group.Active = false;
                }
            }

            base.OnBeforeEntitySave(mode, entity);
        }
    }
}
/span>; 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 : IDEViewModel { 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(); } } 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() : 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 #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 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 } }