aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2018-09-26 10:01:01 +0300
committerAvi Levkovich <avi@twine-s.com>2018-09-26 10:01:01 +0300
commite99391a32439a4ce5f89fde8237cb68257f36ed0 (patch)
tree0552936f6a0994b0a18600b085234b00f649a2c9 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI
parentba1c45d36da2e15870bae36b3bdfee4271d7292f (diff)
parent94b83ea6d7e62534219801dcf1d53ee6e187837d (diff)
downloadTango-e99391a32439a4ce5f89fde8237cb68257f36ed0.tar.gz
Tango-e99391a32439a4ce5f89fde8237cb68257f36ed0.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs33
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs33
3 files changed, 59 insertions, 9 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 29bb459ee..8eff9ea4e 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs
@@ -21,6 +21,7 @@ using Tango.BL.Enumerations;
using Tango.Core.DI;
using Tango.BL.Entities;
using Tango.BL;
+using Tango.MachineStudio.UI.ViewModels;
namespace Tango.MachineStudio.UI.StudioApplication
{
@@ -45,7 +46,7 @@ namespace Tango.MachineStudio.UI.StudioApplication
_navigationManager = navigationManager;
_openedWindows = new List<Window>();
- Application.Current.MainWindow.ContentRendered += (_, __) =>
+ Application.Current.MainWindow.ContentRendered += (_, __) =>
{
TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>().ToList().ForEach(x => x.OnApplicationStarted());
};
@@ -150,8 +151,8 @@ namespace Tango.MachineStudio.UI.StudioApplication
await Task.Factory.StartNew(async () =>
{
- //Do Shutdown Procedures...
- foreach (var vm in TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>())
+ //Do Shutdown Procedures...
+ foreach (var vm in TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>())
{
try
{
@@ -173,7 +174,29 @@ namespace Tango.MachineStudio.UI.StudioApplication
vm.OnShuttingDown();
}
- SettingsManager.Default.GetOrCreate<MachineStudioSettings>().LastBounds = r;
+
+ var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
+ settings.LastBounds = r;
+ settings.StudioModulesBounds.Clear();
+
+
+ foreach (var window in _openedWindows.OfType<Windows.ModuleWindow>())
+ {
+ window.Invoke(() =>
+ {
+ var context = window.ModuleContext;
+
+ if (context != null)
+ {
+ settings.StudioModulesBounds.Add(new MachineStudioSettings.StudioModuleBounds()
+ {
+ Bounds = window.RestoreBounds,
+ State = window.WindowState,
+ Name = context.Module.Name,
+ });
+ }
+ });
+ }
try
{
@@ -224,7 +247,7 @@ namespace Tango.MachineStudio.UI.StudioApplication
catch (Exception ex)
{
IsShuttingDown = false;
- LogManager.Log(ex,"An error occurred while shutting down machine studio.");
+ LogManager.Log(ex, "An error occurred while shutting down machine studio.");
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
index 215f7afb5..4032c946c 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
@@ -149,7 +149,7 @@ namespace Tango.MachineStudio.UI.ViewModels
InvokeUI(() =>
{
- _studioModuleLoader.LoadModules();
+ //_studioModuleLoader.LoadModules();
_navigationManager.NavigateTo(NavigationView.LoginView);
IsLoading = false;
});
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 31b2181ea..cbd58134d 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -47,7 +47,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// Represents the Machine Studio main view, view model.
/// </summary>
/// <seealso cref="Tango.SharedUI.ViewModel{Tango.MachineStudio.UI.SupervisingController.IMainView}" />
- public class MainViewVM : ViewModel
+ public class MainViewVM : StudioViewModel
{
private IStudioModule _currentModule;
private INavigationManager _navigation;
@@ -296,7 +296,7 @@ namespace Tango.MachineStudio.UI.ViewModels
ConnectCommand = new RelayCommand(ConnectToMachine);
SignoutCommand = new RelayCommand(SignOut);
DisconnectCommand = new RelayCommand(DisconnectFromMachine, (x) => ApplicationManager.IsMachineConnected && !_isDisconnecting);
- OpenModuleInWindowCommand = new RelayCommand<IStudioModule>(OpenModuleInWindow);
+ OpenModuleInWindowCommand = new RelayCommand<IStudioModule>((x) => { OpenModuleInWindow(x); });
ExitCommand = new RelayCommand(ExitApplication);
UpdateCenterCommand = new RelayCommand(NavigateToUpdateCenter);
@@ -671,7 +671,7 @@ namespace Tango.MachineStudio.UI.ViewModels
/// Opens the module in a new window.
/// </summary>
/// <param name="module">The module.</param>
- private void OpenModuleInWindow(IStudioModule module)
+ private void OpenModuleInWindow(IStudioModule module, Rect? bounds = null, WindowState? state = null)
{
if (module == null) return;
@@ -697,6 +697,20 @@ namespace Tango.MachineStudio.UI.ViewModels
ModuleWindowVM vm = new ModuleWindowVM(module);
ModuleWindow window = new ModuleWindow(this, vm, view);
+ if (bounds.HasValue)
+ {
+ window.WindowStartupLocation = WindowStartupLocation.Manual;
+ window.WindowState = WindowState.Normal;
+ window.Left = bounds.Value.Left;
+ window.Top = bounds.Value.Top;
+ window.Width = bounds.Value.Width;
+ window.Height = bounds.Value.Height;
+ window.Loaded += (_, __) =>
+ {
+ window.WindowState = state.Value;
+ };
+ }
+
window.Closing += (x, y) =>
{
LogManager.Log(String.Format("Closing module '{0}' on new window...", module.Name));
@@ -847,5 +861,18 @@ namespace Tango.MachineStudio.UI.ViewModels
console.Owner = MainWindow.Instance;
console.Show();
}
+
+ public override void OnApplicationReady()
+ {
+ foreach (var item in SettingsManager.Default.GetOrCreate<MachineStudioSettings>().StudioModulesBounds)
+ {
+ var module = StudioModuleLoader.AllModules.SingleOrDefault(x => x.Name == item.Name);
+
+ if (module != null && !module.InNewWindow)
+ {
+ OpenModuleInWindow(module, item.Bounds, item.State);
+ }
+ }
+ }
}
}