aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2017-12-19 12:28:20 +0200
committerAvi Levkovich <avi@twine-s.com>2017-12-19 12:28:20 +0200
commit76aa983631df4fa5b16b170e2f6dd845c5ac9531 (patch)
tree6b2b4d0776c54536ec07aabc6be94857dcee91fc /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
parent6bf71c81050b824398dc82ce4b69cdf71fb4a2f7 (diff)
parentb421701fd5cf000a16cab9b1fe9eda812ccce8c3 (diff)
downloadTango-76aa983631df4fa5b16b170e2f6dd845c5ac9531.tar.gz
Tango-76aa983631df4fa5b16b170e2f6dd845c5ac9531.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs103
1 files changed, 103 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
new file mode 100644
index 000000000..f4a7a7502
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
@@ -0,0 +1,103 @@
+using GalaSoft.MvvmLight;
+using GalaSoft.MvvmLight.Ioc;
+using Microsoft.Practices.ServiceLocation;
+using System;
+using Tango.Logging;
+using Tango.MachineStudio.Common.Authentication;
+using Tango.MachineStudio.Common.Modules;
+using Tango.MachineStudio.Common.Navigation;
+using Tango.MachineStudio.Common.Notifications;
+using Tango.MachineStudio.Common.StudioApplication;
+using Tango.MachineStudio.UI.Authentication;
+using Tango.MachineStudio.UI.Modules;
+using Tango.MachineStudio.UI.Navigation;
+using Tango.MachineStudio.UI.Notifications;
+using Tango.MachineStudio.UI.StudioApplication;
+using Tango.MachineStudio.UI.SupervisingController;
+using Tango.MachineStudio.UI.ViewModels;
+using Tango.MachineStudio.UI.Views;
+
+namespace Tango.MachineStudio.UI
+{
+ /// <summary>
+ /// This class contains static references to all the view models in the
+ /// application and provides an entry point for the bindings.
+ /// </summary>
+ public class ViewModelLocator
+ {
+ /// <summary>
+ /// Initializes a new instance of the ViewModelLocator class.
+ /// </summary>
+ public ViewModelLocator()
+ {
+ ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
+
+ ////if (ViewModelBase.IsInDesignModeStatic)
+ ////{
+ //// // Create design time view services and models
+ //// SimpleIoc.Default.Register<IDataService, DesignDataService>();
+ ////}
+ ////else
+ ////{
+ //// // Create run time view services and models
+ //// SimpleIoc.Default.Register<IDataService, DataService>();
+ ////}
+
+ SimpleIoc.Default.Unregister<INotificationProvider>();
+ SimpleIoc.Default.Unregister<IAuthenticationProvider>();
+ SimpleIoc.Default.Unregister<INavigationManager>();
+ SimpleIoc.Default.Unregister<IStudioModuleLoader>();
+ SimpleIoc.Default.Unregister<IStudioApplicationManager>();
+
+ SimpleIoc.Default.Register<INotificationProvider, DefaultNotificationProvider>();
+ SimpleIoc.Default.Register<IAuthenticationProvider, DefaultAuthenticationProvider>();
+ SimpleIoc.Default.Register<INavigationManager, DefaultNavigationManager>();
+ SimpleIoc.Default.Register<IStudioModuleLoader, DefaultStudioModuleLoader>();
+ SimpleIoc.Default.Register<IStudioApplicationManager, DefaultStudioApplicationManager>();
+
+ SimpleIoc.Default.Register<MainViewVM>();
+ SimpleIoc.Default.Register<LoadingViewVM>();
+ SimpleIoc.Default.Register<ShutdownViewVM>();
+ SimpleIoc.Default.Register<LoginViewVM>();
+
+ //Register View (Supervising Controller Pattern).
+ if (!ViewModelBase.IsInDesignModeStatic)
+ {
+ LogManager.Log(String.Format("Registering Supervising Controller {0}...", nameof(IMainView)));
+ SimpleIoc.Default.Register(() => (IMainView)MainView.Self);
+ }
+ }
+
+ public MainViewVM MainViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<MainViewVM>();
+ }
+ }
+
+ public LoadingViewVM LoadingViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<LoadingViewVM>();
+ }
+ }
+
+ public ShutdownViewVM ShutdownViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<ShutdownViewVM>();
+ }
+ }
+
+ public LoginViewVM LoginViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<LoginViewVM>();
+ }
+ }
+ }
+} \ No newline at end of file