aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-01-21 15:56:57 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-01-21 15:56:57 +0200
commit3234e33cc4ba354f0395bb514b8b2fa102cf38ec (patch)
tree064121c6d1b2d7ea428e705d8457f86ca95e4a4b /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI
parent68dca419117f9336d0fe21f9f04903906eeeef02 (diff)
downloadTango-3234e33cc4ba354f0395bb514b8b2fa102cf38ec.tar.gz
Tango-3234e33cc4ba354f0395bb514b8b2fa102cf38ec.zip
Started working on Developer module.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs34
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs2
2 files changed, 31 insertions, 5 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
index 06b4dca7c..a59ecf8e0 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
@@ -14,6 +14,8 @@ using System.Collections;
using Tango.Integration.Services;
using Tango.Core;
using Tango.Logging;
+using Tango.MachineStudio.Common.Modules;
+using Tango.MachineStudio.Common;
namespace Tango.MachineStudio.UI.StudioApplication
{
@@ -24,17 +26,16 @@ namespace Tango.MachineStudio.UI.StudioApplication
/// <seealso cref="Tango.MachineStudio.Common.StudioApplication.IStudioApplicationManager" />
public class DefaultStudioApplicationManager : ExtendedObject, IStudioApplicationManager
{
- /// <summary>
- /// The navigation manager
- /// </summary>
private INavigationManager _navigationManager;
+ private IStudioModuleLoader _moduleLoader;
/// <summary>
/// Initializes a new instance of the <see cref="DefaultStudioApplicationManager" /> class.
/// </summary>
/// <param name="navigationManager">The navigation manager.</param>
- public DefaultStudioApplicationManager(INavigationManager navigationManager)
+ public DefaultStudioApplicationManager(INavigationManager navigationManager, IStudioModuleLoader moduleLoader)
{
+ _moduleLoader = moduleLoader;
_navigationManager = navigationManager;
}
@@ -146,5 +147,30 @@ namespace Tango.MachineStudio.UI.StudioApplication
});
}
+
+ /// <summary>
+ /// Loads the specified module if permitted.
+ /// </summary>
+ /// <param name="moduleName">Name of the module.</param>
+ /// <param name="args">The arguments.</param>
+ public void RequestModule(string moduleName, object args)
+ {
+ IStudioModule module = _moduleLoader.UserModules.SingleOrDefault(x => x.Name == moduleName);
+
+ if (module != null)
+ {
+ ServiceLocator.Current.GetInstance<ViewModels.MainViewVM>().StartModule(module);
+
+ //Notify request listeners.
+ foreach (var vm in ServiceLocator.Current.GetAllInstancesByBase<IModuleRequestListener>())
+ {
+ vm.OnRequestModule(module, args);
+ }
+ }
+ else
+ {
+ throw new InvalidOperationException("The module was not found or you do not have sufficient privileges.");
+ }
+ }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
index fdab1a93c..679ba5ff3 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -272,7 +272,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// Starts the specified module.
/// </summary>
/// <param name="module">The module.</param>
- private void StartModule(IStudioModule module)
+ internal void StartModule(IStudioModule module)
{
IsMenuOpened = false;