diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-02-19 19:09:12 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-02-19 19:09:12 +0200 |
| commit | 160ec4042539e69a7494bcde5c893c6dffcbf1b6 (patch) | |
| tree | cce685e0b88ef922d5adec5af39e4bfb59e158fb /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs | |
| parent | 240fc978fb3327ff7e5bc0c7a06e1b8cc8de4aca (diff) | |
| download | Tango-160ec4042539e69a7494bcde5c893c6dffcbf1b6.tar.gz Tango-160ec4042539e69a7494bcde5c893c6dffcbf1b6.zip | |
Working on developer module..
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs | 76 |
1 files changed, 49 insertions, 27 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 199183c12..62b742390 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -45,7 +45,7 @@ namespace Tango.MachineStudio.Developer.ViewModels /// Represents the developer module main view, view model. /// </summary> /// <seealso cref="Tango.SharedUI.ViewModel" /> - public class MainViewVM : ViewModel, IShutdownRequestBlocker + public class MainViewVM : ViewModel<IMainView>, IShutdownRequestBlocker, IShutdownListener { private static object _syncLock = new object(); @@ -464,6 +464,14 @@ namespace Tango.MachineStudio.Developer.ViewModels } } + private String _jobFilter; + + public String JobFilter + { + get { return _jobFilter; } + set { _jobFilter = value; RaisePropertyChangedAuto(); OnJobFilterChanged(); } + } + #endregion #region Commands @@ -575,7 +583,7 @@ namespace Tango.MachineStudio.Developer.ViewModels /// <summary> /// Initializes a new instance of the <see cref="MainViewVM"/> class. /// </summary> - public MainViewVM() : base() + public MainViewVM(IMainView view) : base(view, true) { } @@ -586,16 +594,22 @@ namespace Tango.MachineStudio.Developer.ViewModels /// <param name="applicationManager">The application manager.</param> /// <param name="notificationProvider">The notification provider.</param> [PreferredConstructor] - public MainViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication) : this() + public MainViewVM(IMainView view, IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IVideoCaptureProvider videoCaptureProvider, DeveloperNavigationManager navigation, IAuthenticationProvider authentication) : this(view) { - using (var db = ObservablesContext.CreateDefault()) + SelectedJobs = new ObservableCollection<Job>(); + + _machineDBContext = ObservablesContext.CreateDefault(); + + if (SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedMachineGuid != null) { - Machines = db.Machines.ToObservableCollection(); + SelectedMachine = _machineDBContext.Machines.SingleOrDefault(x => x.Guid == SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedMachineGuid); } - _machineDBContext = ObservablesContext.CreateDefault(); + if (SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedJobGuid != null && SelectedMachine != null) + { + SelectedMachineJob = SelectedMachine.Jobs.SingleOrDefault(x => x.Guid == SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedJobGuid); + } - SelectedJobs = new ObservableCollection<Job>(); _authentication = authentication; @@ -748,7 +762,6 @@ namespace Tango.MachineStudio.Developer.ViewModels ReloadMachine(); JobsCollectionView = CollectionViewSource.GetDefaultView(SelectedMachine.Jobs); JobsCollectionView.SortDescriptions.Add(new SortDescription(nameof(Job.LastUpdated), ListSortDirection.Descending)); - InvalidateLiquidFactorsAndProcessTables(); } } @@ -757,7 +770,8 @@ namespace Tango.MachineStudio.Developer.ViewModels _machineDBContext.Dispose(); _machineDBContext = ObservablesContext.CreateDefault(); _machineDBContext.Configuration.LazyLoadingEnabled = true; - _selectedMachine = _machineDBContext.Machines.SingleOrDefault(x => x.Guid == _selectedMachine.Guid); + Machines = _machineDBContext.Machines.ToObservableCollection(); + _selectedMachine = Machines.SingleOrDefault(x => x.Guid == _selectedMachine.Guid); RaisePropertyChanged(nameof(SelectedMachine)); JobsCollectionView = CollectionViewSource.GetDefaultView(SelectedMachine.Jobs); @@ -768,6 +782,17 @@ namespace Tango.MachineStudio.Developer.ViewModels #region Private Methods + private void OnJobFilterChanged() + { + JobsCollectionView.Filter = (job) => + { + Job j = job as Job; + return String.IsNullOrWhiteSpace(JobFilter) + || + j.Name.ToLower().Contains(JobFilter.ToLower()); + }; + } + private void OnActiveJobChanged() { if (ActiveJob != null) @@ -998,7 +1023,7 @@ namespace Tango.MachineStudio.Developer.ViewModels { using (_notification.PushTaskItem("Saving Liquid Factors...")) { - await SelectedRML.SaveAsync(); + await SelectedRML.SaveAsync(_dbJobContext); InvalidateLiquidFactorsAndProcessTables(); } } @@ -1053,7 +1078,7 @@ namespace Tango.MachineStudio.Developer.ViewModels } SelectedRML.ProcessParametersTablesGroups.Add(group); - await SelectedRML.SaveAsync(); + await SelectedRML.SaveAsync(_dbJobContext); InvalidateLiquidFactorsAndProcessTables(); } @@ -1398,30 +1423,27 @@ namespace Tango.MachineStudio.Developer.ViewModels return Task.FromResult(false); } - SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedMachineGuid = SelectedMachine != null ? SelectedMachine.Guid : null; - SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedJobGuid = ActiveJob != null ? ActiveJob.Guid : null; - return Task.FromResult(true); } #endregion - #region IMainView + #region IShutdownListener + + public void OnShuttingDown() + { + SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedMachineGuid = SelectedMachine != null ? SelectedMachine.Guid : null; + SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedJobGuid = SelectedMachineJob != null ? SelectedMachineJob.Guid : null; + } - //protected override void OnViewAttached() - //{ - // base.OnViewAttached(); + #endregion - // //if (SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedMachineGuid != null) - // //{ - // // SelectedMachine = Adapter.Machines.SingleOrDefault(x => x.Guid == SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedMachineGuid); - // //} + #region IMainView - // //if (SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedJobGuid != null && SelectedMachine != null) - // //{ - // // ActiveJob = SelectedMachine.Jobs.SingleOrDefault(x => x.Guid == SettingsManager.Default.MachineStudio.DeveloperModule.LastSelectedJobGuid); - // //} - //} + protected override void OnViewAttached() + { + base.OnViewAttached(); + } #endregion } |
