aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-04-22 13:35:22 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-04-22 13:35:22 +0300
commitde099bd3b50b8ea52b212b8d322626582c2648be (patch)
treeeea98a7f7b073d6cf8ded47bddc3b3f3f5e7c430 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
parent8edd1a95962a5c1c2e73d15f209a9fb362ff884a (diff)
downloadTango-de099bd3b50b8ea52b212b8d322626582c2648be.tar.gz
Tango-de099bd3b50b8ea52b212b8d322626582c2648be.zip
Implemented new TangoIOC container & TangoMessenger.
Got rid of MVVMLite libs ! Got rid of IShutdownRequestBlocker, IShutdownListener, IModuleRequestListener. Implemented IStudioViewModel & StudioViewModel.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs30
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs4
2 files changed, 15 insertions, 19 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
index b97825d34..25346e94b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -1,6 +1,4 @@
-using GalaSoft.MvvmLight.Ioc;
-using GalaSoft.MvvmLight.Messaging;
-using System;
+using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
@@ -14,6 +12,7 @@ using System.Windows.Controls;
using System.Windows.Media;
using Tango.BL.Entities;
using Tango.Core.Commands;
+using Tango.Core.DI;
using Tango.Integration.Services;
using Tango.Logging;
using Tango.MachineStudio.Common;
@@ -45,7 +44,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// Represents the Machine Studio main view, view model.
/// </summary>
/// <seealso cref="Tango.SharedUI.ViewModel{Tango.MachineStudio.UI.SupervisingController.IMainView}" />
- public class MainViewVM : ViewModel<IMainView>
+ public class MainViewVM : ViewModel
{
private IStudioModule _currentModule;
private INavigationManager _navigation;
@@ -240,7 +239,6 @@ namespace Tango.MachineStudio.UI.ViewModels
/// <param name="applicationManager">The application manager.</param>
/// <param name="navigationManager">The navigation manager.</param>
public MainViewVM(
- IMainView view,
IAuthenticationProvider authenticationProvider,
IStudioModuleLoader studioModuleLoader,
INotificationProvider notificationProvider,
@@ -249,7 +247,7 @@ namespace Tango.MachineStudio.UI.ViewModels
IEventLogger eventLogger,
IDiagnosticsFrameProvider frameProvider,
ISpeechProvider speechProvider,
- IHtmlPresenter htmlPresenter) : base(view)
+ IHtmlPresenter htmlPresenter) : base()
{
_eventLogger = eventLogger;
_navigation = navigationManager;
@@ -508,9 +506,10 @@ namespace Tango.MachineStudio.UI.ViewModels
}
}
- foreach (var m in StudioModuleLoader.AllModules.Where(x => x != module))
+ foreach (var m in StudioModuleLoader.AllModules.Where(x => x != module && !x.InNewWindow))
{
m.IsLoaded = false;
+ TangoIOC.Default.GetModuleViewModels(m).ToList().ForEach(x => x.OnNavigatedFrom());
}
if (module != null)
@@ -519,6 +518,8 @@ namespace Tango.MachineStudio.UI.ViewModels
CurrentModule.IsLoaded = true;
IsModuleLoaded = true;
(MainView.Self as MainView).TransitionControl.NavigateTo(module.Name);
+
+ TangoIOC.Default.GetModuleViewModels(module).ToList().ForEach(x => x.OnNavigatedTo());
}
else
{
@@ -528,14 +529,6 @@ namespace Tango.MachineStudio.UI.ViewModels
}
/// <summary>
- /// Called when the <see cref="T:Tango.SharedUI.IView" /> is loaded and attached.
- /// </summary>
- protected override void OnViewAttached()
- {
- base.OnViewAttached();
- }
-
- /// <summary>
/// Opens the module in a new window.
/// </summary>
/// <param name="module">The module.</param>
@@ -545,10 +538,10 @@ namespace Tango.MachineStudio.UI.ViewModels
try
{
- StartModule(null);
-
module.InNewWindow = true;
+ StartModule(null);
+
if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType))
{
FrameworkElement v = Activator.CreateInstance(module.MainViewType) as FrameworkElement;
@@ -565,11 +558,14 @@ namespace Tango.MachineStudio.UI.ViewModels
{
window.grid.Children.Remove(view);
module.InNewWindow = false;
+ TangoIOC.Default.GetModuleViewModels(module).ToList().ForEach(v => v.OnNavigatedFrom());
};
window.Owner = MainWindow.Instance;
window.Show();
+ TangoIOC.Default.GetModuleViewModels(module).ToList().ForEach(x => x.OnNavigatedTo());
+
(_applicationManager as DefaultStudioApplicationManager).RegisterOpenedWindow(window);
}
catch (Exception ex)
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
index ab4fd8e0b..0f6ec8b98 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
@@ -1,6 +1,5 @@
using FluentFTP;
using Ionic.Zip;
-using Microsoft.Practices.ServiceLocation;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@@ -12,6 +11,7 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Tango.Core.Commands;
+using Tango.Core.DI;
using Tango.Core.Helpers;
using Tango.Logging;
using Tango.MachineStudio.Common.Authentication;
@@ -256,7 +256,7 @@ namespace Tango.MachineStudio.UI.ViewModels
}
}
- ServiceLocator.Current.GetInstance<MainViewVM>().DisableCheckForUpdates = true;
+ TangoIOC.Default.GetInstance<MainViewVM>().DisableCheckForUpdates = true;
Status = UpdateStatus.UpdateCompleted;
}
catch (Exception ex)