diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs | 43 |
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); + } } } } |
