From 0dec8a74239cff769836cae577fbd84824070e83 Mon Sep 17 00:00:00 2001 From: Roy Date: Sat, 21 Apr 2018 19:49:05 +0300 Subject: Implemented NavigationControl for better performance!!! Redesign of machine studio module initialization. --- .../Tango.MachineStudio.UI/Views/LoginView.xaml | 7 +- .../Tango.MachineStudio.UI/Views/LoginView.xaml.cs | 24 +--- .../Tango.MachineStudio.UI/Views/MainView.xaml | 134 ++++++++++----------- .../Tango.MachineStudio.UI/Views/MainView.xaml.cs | 26 +--- .../Views/ShutdownView.xaml.cs | 5 +- .../Views/UpdateView.xaml.cs | 5 +- 6 files changed, 84 insertions(+), 117 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml index 84ba597f2..7f54263b7 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml @@ -5,6 +5,7 @@ xmlns:rules="clr-namespace:Tango.MachineStudio.Common.ValidationRules;assembly=Tango.MachineStudio.Common" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:helpers="clr-namespace:Tango.SharedUI.Helpers;assembly=Tango.SharedUI" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" mc:Ignorable="d" d:DesignHeight="720" d:DesignWidth="1280" DataContext="{Binding LoginViewVM, Source={StaticResource Locator}}" Background="Transparent"> @@ -15,7 +16,7 @@ - + @@ -31,10 +32,10 @@ - + Remember me - diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml.cs index 027e37682..bf1dd389d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/LoginView.xaml.cs @@ -22,26 +22,15 @@ namespace Tango.MachineStudio.UI.Views /// /// Interaction logic for LoginView.xaml /// - public partial class LoginView : UserControl, ITransitionView + public partial class LoginView : UserControl { - private Rfc2898Cryptographer cryptographer; - public LoginView() { InitializeComponent(); - - cryptographer = new Rfc2898Cryptographer(); - } - - public String Password - { - get { return (String)GetValue(PasswordProperty); } - set { SetValue(PasswordProperty, value); } + this.Loaded += LoginView_Loaded; } - public static readonly DependencyProperty PasswordProperty = - DependencyProperty.Register("Password", typeof(String), typeof(LoginView), new PropertyMetadata(null)); - public void OnTransitionCompleted() + private void LoginView_Loaded(object sender, RoutedEventArgs e) { txtEmail.Focus(); @@ -49,13 +38,6 @@ namespace Tango.MachineStudio.UI.Views { txtPass.Focus(); } - - txtPass.Password = cryptographer.Decrypt(SettingsManager.Default.MachineStudio.LastLoginPassword); - } - - private void txtPass_PasswordChanged(object sender, RoutedEventArgs e) - { - Password = txtPass.Password; } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml index a841a72cb..dd3d122b6 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml @@ -38,14 +38,14 @@ - + + IsChecked="{Binding Source={x:Reference MenuToggleButton}, Path=IsChecked, Mode=TwoWay}" /> @@ -330,77 +330,73 @@ - - - - - - - - - - - Welcome to Machine Studio - The below modules are displayed according to your user roles and permissions. - - + + + + + + + + + Welcome to Machine Studio + The below modules are displayed according to your user roles and permissions. + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs index 442d11cdd..df1f97f23 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MainView.xaml.cs @@ -26,6 +26,7 @@ using System.Threading; using Tango.Core.Helpers; using Tango.SharedUI.Helpers; using Tango.Logging; +using static Tango.SharedUI.Controls.NavigationControl; namespace Tango.MachineStudio.UI.Views { @@ -44,15 +45,8 @@ namespace Tango.MachineStudio.UI.Views _loader.ModulesLoaded += Loader_ModulesLoaded; } - public void NavigateToModule(IStudioModule module) - { - TransitionControl.AutoNavigate(module != null ? module.Name : "Home"); - } - private void Loader_ModulesLoaded(object sender, EventArgs e) { - TransitionControl.Controls.RemoveAll((x) => x.Tag.ToString() != "Home"); - Task.Factory.StartNew(() => { LogManager.Default.Log("Loading modules views..."); @@ -74,15 +68,12 @@ namespace Tango.MachineStudio.UI.Views ThreadsHelper.InvokeUI(() => { - Grid grid = new Grid(); - grid.Children.Add(module.MainView); - - TransitionControl.Controls.Add(new ContentControl() + if (!TransitionControl.Elements.ToList().Exists(x => x.GetType() == module.MainViewType)) { - Tag = module.Name, - Content = grid, - Visibility = Visibility.Hidden, - }); + FrameworkElement view = Activator.CreateInstance(module.MainViewType) as FrameworkElement; + NavigationControl.SetNavigationName(view, module.Name); + TransitionControl.Elements.Add(view); + } _loader.UserModules.Add(module); }); @@ -92,11 +83,6 @@ namespace Tango.MachineStudio.UI.Views Thread.Sleep(100); } - ThreadsHelper.InvokeUI(() => - { - TransitionControl.RefreshControls(); - }); - item.Pop(); }); } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs index afe6d3800..e1e16592b 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ShutdownView.xaml.cs @@ -13,20 +13,21 @@ using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using static Tango.SharedUI.Controls.MultiTransitionControl; +using static Tango.SharedUI.Controls.NavigationControl; namespace Tango.MachineStudio.UI.Views { /// /// Interaction logic for ShutdownView.xaml /// - public partial class ShutdownView : UserControl, ITransitionView + public partial class ShutdownView : UserControl, INavigationView { public ShutdownView() { InitializeComponent(); } - public void OnTransitionCompleted() + public void OnNavigated() { progressRing.IsActive = true; } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs index 75b74f65d..deb4dfdbe 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/UpdateView.xaml.cs @@ -14,13 +14,14 @@ using System.Windows.Navigation; using System.Windows.Shapes; using Tango.MachineStudio.UI.ViewModels; using static Tango.SharedUI.Controls.MultiTransitionControl; +using static Tango.SharedUI.Controls.NavigationControl; namespace Tango.MachineStudio.UI.Views { /// /// Interaction logic for UpdateView.xaml /// - public partial class UpdateView : UserControl, ITransitionView + public partial class UpdateView : UserControl, INavigationView { private UpdateViewVM _vm; @@ -34,7 +35,7 @@ namespace Tango.MachineStudio.UI.Views }; } - public void OnTransitionCompleted() + public void OnNavigated() { _vm.OnNavigatedInto(); } -- cgit v1.3.1