using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Ioc;
using Microsoft.Practices.ServiceLocation;
using System;
using Tango.Integration.Services;
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
{
///
/// This class contains static references to all the view models in the
/// application and provides an entry point for the bindings.
///
public class ViewModelLocator
{
///
/// Initializes a new instance of the ViewModelLocator class.
///
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
////if (ViewModelBase.IsInDesignModeStatic)
////{
//// // Create design time view services and models
//// SimpleIoc.Default.Register();
////}
////else
////{
//// // Create run time view services and models
//// SimpleIoc.Default.Register();
////}
SimpleIoc.Default.Unregister();
SimpleIoc.Default.Unregister();
SimpleIoc.Default.Unregister();
SimpleIoc.Default.Unregister();
SimpleIoc.Default.Unregister();
SimpleIoc.Default.Unregister();
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();
LogManager.RegisterLogger(new VSOutputLogger());
LogManager.RegisterLogger(new FileLogger());
//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();
}
}
public LoadingViewVM LoadingViewVM
{
get
{
return ServiceLocator.Current.GetInstance();
}
}
public ShutdownViewVM ShutdownViewVM
{
get
{
return ServiceLocator.Current.GetInstance();
}
}
public LoginViewVM LoginViewVM
{
get
{
return ServiceLocator.Current.GetInstance();
}
}
public MachineConnectionViewVM MachineConnectionViewVM
{
get
{
return ServiceLocator.Current.GetInstance();
}
}
public MachineLoginViewVM MachineLoginViewVM
{
get
{
return ServiceLocator.Current.GetInstance();
}
}
}
}