aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs43
1 files changed, 29 insertions, 14 deletions
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 503532223..da73e8eae 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -19,6 +19,7 @@ using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common.Navigation;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.Common.StudioApplication;
+using Tango.MachineStudio.UI.StudioApplication;
using Tango.MachineStudio.UI.SupervisingController;
using Tango.MachineStudio.UI.Views;
using Tango.MachineStudio.UI.Windows;
@@ -316,25 +317,39 @@ namespace Tango.MachineStudio.UI.ViewModels
private void OpenModuleInWindow(IStudioModule module)
{
- module.InNewWindow = true;
+ if (module == null) return;
- var parent = (MainView.Self as MainView).TransitionControl.Controls.SingleOrDefault(x => x.Tag.ToString() == module.Name).Content as Grid;
+ try
+ {
+ StartModule(null);
- var view = parent.Children[0] as FrameworkElement;
- parent.Children.Remove(view);
+ module.InNewWindow = true;
- ModuleWindowVM vm = new ModuleWindowVM(module, parent);
- ModuleWindow window = new ModuleWindow(this, vm, view);
+ var parent = (MainView.Self as MainView).TransitionControl.Controls.SingleOrDefault(x => x.Tag.ToString() == module.Name).Content as Grid;
- window.Closing += (x, y) =>
- {
- window.grid.Children.Remove(view);
- parent.Children.Add(view);
- module.InNewWindow = false;
- };
+ var view = parent.Children[0] as FrameworkElement;
+ parent.Children.Remove(view);
+
+ ModuleWindowVM vm = new ModuleWindowVM(module, parent);
+ ModuleWindow window = new ModuleWindow(this, vm, view);
+
+ window.Closing += (x, y) =>
+ {
+ window.grid.Children.Remove(view);
+ parent.Children.Add(view);
+ module.InNewWindow = false;
+ };
- window.Owner = MainWindow.Instance;
- window.Show();
+ window.Owner = MainWindow.Instance;
+ window.Show();
+
+ (_applicationManager as DefaultStudioApplicationManager).RegisterOpenedWindow(window);
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error popping out module " + module.Name);
+ _notificationProvider.ShowError("Error popping out module " + module.Name);
+ }
}
}
}