diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs index 5f5fb4f7e..0fbef92a7 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/PPCApplication/DefaultPPCApplicationManager.cs @@ -30,6 +30,7 @@ namespace Tango.PPC.UI.PPCApplication public class DefaultPPCApplicationManager : ExtendedObject, IPPCApplicationManager { private List<PPCViewModel> _notifiedViewModels; + private IMachineProvider _machineProvider; /// <summary> /// Occurs when the application has started. @@ -63,6 +64,8 @@ namespace Tango.PPC.UI.PPCApplication /// </summary> public DefaultPPCApplicationManager(IMachineProvider machineProvider) { + _machineProvider = machineProvider; + if (!DesignMode) { _notifiedViewModels = new List<PPCViewModel>(); @@ -115,20 +118,17 @@ namespace Tango.PPC.UI.PPCApplication { if (loader.UserModules.Count > 0) { - loader.UserModules.LastOrDefault().Initialized += (e, f) => + if (loader.UserModules.ToList().Exists(m => !m.IsInitialized)) { - foreach (var vm in TangoIOC.Default.GetAllInstancesByBase<PPCViewModel>()) + loader.UserModules.LastOrDefault().Initialized += (e, f) => { - if (!_notifiedViewModels.Contains(vm)) - { - vm.OnApplicationStarted(); - _notifiedViewModels.Add(vm); - } - } - - ModulesInitialized?.Invoke(this, new EventArgs()); - machineProvider.Init(); - }; + FinalizeModuleInitialization(); + }; + } + else + { + FinalizeModuleInitialization(); + } } }; }); @@ -136,6 +136,21 @@ namespace Tango.PPC.UI.PPCApplication } } + private void FinalizeModuleInitialization() + { + foreach (var vm in TangoIOC.Default.GetAllInstancesByBase<PPCViewModel>()) + { + if (!_notifiedViewModels.Contains(vm)) + { + vm.OnApplicationStarted(); + _notifiedViewModels.Add(vm); + } + } + + ModulesInitialized?.Invoke(this, new EventArgs()); + _machineProvider.Init(); + } + /// <summary> /// Shutdown the application. /// </summary> |
