From de099bd3b50b8ea52b212b8d322626582c2648be Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 22 Apr 2018 13:35:22 +0300 Subject: Implemented new TangoIOC container & TangoMessenger. Got rid of MVVMLite libs ! Got rid of IShutdownRequestBlocker, IShutdownListener, IModuleRequestListener. Implemented IStudioViewModel & StudioViewModel. --- .../Modules/Tango.MachineStudio.DB/App.config | 40 +++++ .../Tango.MachineStudio.DB.csproj | 14 +- .../Tango.MachineStudio.DB/ViewModelLocator.cs | 191 ++++++++++----------- .../ViewModels/DbTableViewModel.cs | 10 +- .../ViewModels/MainViewVM.cs | 22 +-- .../Views/MainDBView.xaml.cs | 8 +- .../Modules/Tango.MachineStudio.DB/packages.config | 3 +- 7 files changed, 157 insertions(+), 131 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/App.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/App.config index f89af9711..2031d1be1 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/App.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/App.config @@ -16,6 +16,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj index 8eabcc605..baa6042f0 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj @@ -40,15 +40,6 @@ ..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.SqlServer.dll - - ..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.dll - - - ..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Extras.dll - - - ..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Platform.dll - ..\..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll @@ -58,9 +49,6 @@ ..\..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll - - ..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll - ..\..\..\packages\SimpleValidator.0.6.1.0\lib\net40\SimpleValidator.dll @@ -68,7 +56,7 @@ - ..\..\..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll + ..\..\..\packages\Expression.Blend.Sdk.1.0.2\lib\net45\System.Windows.Interactivity.dll diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs index da2bdf631..d2506c362 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs @@ -1,6 +1,4 @@ -using GalaSoft.MvvmLight; -using GalaSoft.MvvmLight.Ioc; -using Microsoft.Practices.ServiceLocation; +using Tango.Core.DI; using Tango.MachineStudio.DB.ViewModels; namespace Tango.MachineStudio.DB @@ -16,65 +14,64 @@ namespace Tango.MachineStudio.DB /// static ViewModelLocator() { - ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - SimpleIoc.Default.Register(); - - SimpleIoc.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + TangoIOC.Default.Register(); + + TangoIOC.Default.Register(); } public static MainViewVM MainViewVM { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -82,7 +79,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -90,7 +87,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -98,7 +95,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -106,7 +103,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -114,7 +111,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -122,7 +119,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -130,7 +127,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -138,7 +135,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -146,7 +143,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -154,7 +151,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -162,7 +159,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -170,7 +167,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -178,7 +175,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -186,7 +183,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -194,7 +191,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -202,7 +199,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -210,7 +207,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -218,7 +215,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -226,7 +223,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -234,7 +231,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -242,7 +239,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -250,7 +247,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -258,7 +255,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -266,7 +263,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -274,7 +271,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -282,7 +279,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -290,7 +287,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -298,7 +295,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -306,7 +303,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -314,7 +311,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -322,7 +319,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -330,7 +327,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -338,7 +335,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -346,7 +343,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -354,7 +351,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -362,7 +359,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -370,7 +367,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -378,7 +375,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -386,7 +383,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -394,7 +391,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } @@ -402,7 +399,7 @@ namespace Tango.MachineStudio.DB { get { - return ServiceLocator.Current.GetInstance(); + return TangoIOC.Default.GetInstance(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs index de6772bf8..f4a0c6b0b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs @@ -9,7 +9,6 @@ using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.DB.Managers; using Tango.SharedUI; using System.Data.Entity.Infrastructure; -using GalaSoft.MvvmLight.Messaging; using Tango.MachineStudio.DB.Messages; using System.Collections.ObjectModel; using System.Reflection; @@ -17,6 +16,7 @@ using Tango.MachineStudio.Common.StudioApplication; using System.ComponentModel; using System.ComponentModel.DataAnnotations.Schema; using Tango.BL; +using Tango.Core.DI; namespace Tango.MachineStudio.DB.ViewModels { @@ -180,7 +180,7 @@ namespace Tango.MachineStudio.DB.ViewModels ValidationErrors.Clear(); DialogOpenMode = DialogOpenMode.Editing; EditEntity = GetEditableEntity(DialogOpenMode); - Messenger.Default.Send(new OpenEntityEditViewMessage(DialogOpenMode, this, typeof(T))); + TangoMessenger.Default.Send(new OpenEntityEditViewMessage(DialogOpenMode, this, typeof(T))); IsDialogOpen = true; } @@ -204,7 +204,7 @@ namespace Tango.MachineStudio.DB.ViewModels } } - Messenger.Default.Send(new OpenEntityEditViewMessage(DialogOpenMode, this, typeof(T))); + TangoMessenger.Default.Send(new OpenEntityEditViewMessage(DialogOpenMode, this, typeof(T))); IsDialogOpen = true; } @@ -231,7 +231,7 @@ namespace Tango.MachineStudio.DB.ViewModels } } - Messenger.Default.Send(new CloseEntityEditViewMessage()); + TangoMessenger.Default.Send(new CloseEntityEditViewMessage()); if (mode == DialogOpenMode.Editing) { @@ -288,7 +288,7 @@ namespace Tango.MachineStudio.DB.ViewModels /// The mode. protected virtual void OnDialogCancelPressed(DialogOpenMode mode, T entity) { - Messenger.Default.Send(new CloseEntityEditViewMessage()); + TangoMessenger.Default.Send(new CloseEntityEditViewMessage()); IsDialogOpen = false; } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs index abda33804..727436306 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MainViewVM.cs @@ -1,5 +1,4 @@ -using Microsoft.Practices.ServiceLocation; -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -8,37 +7,40 @@ using System.Threading.Tasks; using System.Windows; using Tango.BL; using Tango.BL.Entities; +using Tango.Core.DI; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.StudioApplication; using Tango.SharedUI; namespace Tango.MachineStudio.DB.ViewModels { - public class MainViewVM : ViewModel, IModuleRequestListener + public class MainViewVM : StudioViewModel { public MainViewVM() : base() { } - public void OnRequestModule(IStudioModule module, object args) + public override void OnModuleRequest(params object[] args) { - if (module is DBModule && args != null && args is IObservableEntity) + if (args != null && args.Length > 0 && args[0] is IObservableEntity) { - String vmName = args.GetType().Name + "sViewVM"; - + var arg = args[0]; + + String vmName = arg.GetType().Name + "sViewVM"; + Type vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); if (vmType == null) { - vmName = args.GetType().BaseType.Name + "sViewVM"; + vmName = arg.GetType().BaseType.Name + "sViewVM"; vmType = Assembly.GetAssembly(typeof(MainViewVM)).GetTypes().SingleOrDefault(x => x.Name == vmName); } if (vmType != null) { - var vm = ServiceLocator.Current.GetInstance(vmType); - vmType.GetProperty("SelectedEntity").SetValue(vm, args); + var vm = TangoIOC.Default.GetInstance(vmType); + vmType.GetProperty("SelectedEntity").SetValue(vm, arg); vmType.GetMethod("OnEdit", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(vm, new object[] { }); } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml.cs index b769b9bfd..73f73844c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/MainDBView.xaml.cs @@ -1,5 +1,4 @@ -using GalaSoft.MvvmLight.Messaging; -using MaterialDesignThemes.Wpf; +using MaterialDesignThemes.Wpf; using System; using System.Collections.Generic; using System.Linq; @@ -14,6 +13,7 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; +using Tango.Core.DI; using Tango.MachineStudio.DB.Messages; using Tango.MachineStudio.DB.ViewModels; using Tango.MachineStudio.DB.Views.DBViews; @@ -31,8 +31,8 @@ namespace Tango.MachineStudio.DB.Views { InitializeComponent(); - Messenger.Default.Register(this, HandleOpenEntityViewMessage); - Messenger.Default.Register(this, HandleCloseEntityViewMessage); + TangoMessenger.Default.Register(HandleOpenEntityViewMessage); + TangoMessenger.Default.Register(HandleCloseEntityViewMessage); } public bool IsEditViewOpen diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/packages.config index 138a48ec7..08a360572 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/packages.config +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/packages.config @@ -3,11 +3,10 @@ + - - \ No newline at end of file -- cgit v1.3.1