diff options
| author | Avi Levkovich <avi@twine-s.com> | 2017-12-19 12:28:20 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2017-12-19 12:28:20 +0200 |
| commit | 76aa983631df4fa5b16b170e2f6dd845c5ac9531 (patch) | |
| tree | 6b2b4d0776c54536ec07aabc6be94857dcee91fc /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs | |
| parent | 6bf71c81050b824398dc82ce4b69cdf71fb4a2f7 (diff) | |
| parent | b421701fd5cf000a16cab9b1fe9eda812ccce8c3 (diff) | |
| download | Tango-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.cs | 103 |
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 |
