diff options
| author | Roy <roy.mail.net@gmail.com> | 2018-04-21 19:49:05 +0300 |
|---|---|---|
| committer | Roy <roy.mail.net@gmail.com> | 2018-04-21 19:49:05 +0300 |
| commit | 0dec8a74239cff769836cae577fbd84824070e83 (patch) | |
| tree | d6cc24ee53454b3f17f1580e90de38238555b6bd /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels | |
| parent | 4df1724226c0d0941b970dbe71b1476e3c3e9902 (diff) | |
| download | Tango-0dec8a74239cff769836cae577fbd84824070e83.tar.gz Tango-0dec8a74239cff769836cae577fbd84824070e83.zip | |
Implemented NavigationControl for better performance!!!
Redesign of machine studio module initialization.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
3 files changed, 37 insertions, 17 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs index 7fefe4a41..fafa752c5 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs @@ -41,6 +41,15 @@ namespace Tango.MachineStudio.UI.ViewModels set { _email = value; RaisePropertyChangedAuto(); } } + private String _password; + [Required(ErrorMessage = "Password is required")] + public String Password + { + get { return _password; } + set { _password = value; RaisePropertyChangedAuto(); } + } + + private bool _rememberMe; /// <summary> /// Gets or sets a value indicating whether to remember the last user email and password. @@ -54,7 +63,7 @@ namespace Tango.MachineStudio.UI.ViewModels /// <summary> /// Gets or sets the login command. /// </summary> - public RelayCommand<String> LoginCommand { get; set; } + public RelayCommand LoginCommand { get; set; } /// <summary> /// Initializes a new instance of the <see cref="LoginViewVM"/> class. @@ -68,29 +77,29 @@ namespace Tango.MachineStudio.UI.ViewModels _navigationManager = navigationManager; _authenticationProvider = authenticationProvider; _eventLogger = eventLogger; - LoginCommand = new RelayCommand<String>(Login); + LoginCommand = new RelayCommand(Login); cryptographer = new Rfc2898Cryptographer(); Email = SettingsManager.Default.MachineStudio.LastLoginEmail; RememberMe = SettingsManager.Default.MachineStudio.RememberMe; + Password = cryptographer.Decrypt(SettingsManager.Default.MachineStudio.LastLoginPassword); } /// <summary> /// Logins the requested user. /// </summary> - /// <param name="password">The password.</param> - private void Login(String password) + private void Login() { if (Validate()) { try { - _authenticationProvider.Login(Email, password); + _authenticationProvider.Login(Email, Password); _navigationManager.NavigateTo(NavigationView.MainView); SettingsManager.Default.MachineStudio.LastLoginEmail = Email; SettingsManager.Default.MachineStudio.RememberMe = RememberMe; - SettingsManager.Default.MachineStudio.LastLoginPassword = RememberMe ? cryptographer.Encrypt(password) : null; + SettingsManager.Default.MachineStudio.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null; SettingsManager.SaveDefaultSettings(); _eventLogger.Log("User logged in"); 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 8e451cdce..b97825d34 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -35,6 +35,7 @@ using Tango.MachineStudio.UI.Windows; using Tango.PMR.Stubs; using Tango.Settings; using Tango.SharedUI; +using Tango.SharedUI.Controls; using Tango.SharedUI.Helpers; using Tango.Transport.Adapters; @@ -497,6 +498,16 @@ namespace Tango.MachineStudio.UI.ViewModels { IsMenuOpened = false; + if (module != null) + { + if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + { + FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; + NavigationControl.SetNavigationName(view, module.Name); + (MainView.Self as MainView).TransitionControl.Elements.Add(view); + } + } + foreach (var m in StudioModuleLoader.AllModules.Where(x => x != module)) { m.IsLoaded = false; @@ -507,12 +518,12 @@ namespace Tango.MachineStudio.UI.ViewModels CurrentModule = module; CurrentModule.IsLoaded = true; IsModuleLoaded = true; - View.NavigateToModule(module); + (MainView.Self as MainView).TransitionControl.NavigateTo(module.Name); } else { IsModuleLoaded = false; - View.NavigateToModule(null); + (MainView.Self as MainView).TransitionControl.NavigateTo("Home"); } } @@ -538,18 +549,21 @@ namespace Tango.MachineStudio.UI.ViewModels module.InNewWindow = true; - var parent = (MainView.Self as MainView).TransitionControl.Controls.SingleOrDefault(x => x.Tag.ToString() == module.Name).Content as Grid; + if (!(MainView.Self as MainView).TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) + { + FrameworkElement v = Activator.CreateInstance(module.MainViewType) as FrameworkElement; + NavigationControl.SetNavigationName(v, module.Name); + (MainView.Self as MainView).TransitionControl.Elements.Add(v); + } - var view = parent.Children[0] as FrameworkElement; - parent.Children.Remove(view); + var view = (MainView.Self as MainView).TransitionControl.GetAndDetach(module.Name); - ModuleWindowVM vm = new ModuleWindowVM(module, parent); + ModuleWindowVM vm = new ModuleWindowVM(module); ModuleWindow window = new ModuleWindow(this, vm, view); window.Closing += (x, y) => { window.grid.Children.Remove(view); - parent.Children.Add(view); module.InNewWindow = false; }; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ModuleWindowVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ModuleWindowVM.cs index a5b737b59..9fd1d68bb 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ModuleWindowVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ModuleWindowVM.cs @@ -19,11 +19,8 @@ namespace Tango.MachineStudio.UI.ViewModels set { _module = value; RaisePropertyChangedAuto(); } } - public Grid Parent { get; set; } - - public ModuleWindowVM(IStudioModule module, Grid parent) + public ModuleWindowVM(IStudioModule module) { - Parent = parent; Module = module; } } |
