diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-07-07 15:02:20 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2018-07-07 15:02:20 +0300 |
| commit | 4ca8cee91fb46977b75e8329c18d9b6a4654b12e (patch) | |
| tree | c2a0473f30d9302f4b8eea21f90106d24ba23461 /Software/Visual_Studio/PPC/Tango.PPC.UI | |
| parent | bed649c7492655c0137237c910b200e053bfa119 (diff) | |
| download | Tango-4ca8cee91fb46977b75e8329c18d9b6a4654b12e.tar.gz Tango-4ca8cee91fb46977b75e8329c18d9b6a4654b12e.zip | |
Working on PPC jobs loading performance...
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI')
5 files changed, 111 insertions, 0 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/HeaderLoadingControl.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/HeaderLoadingControl.xaml new file mode 100644 index 000000000..5b07e1fa2 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/HeaderLoadingControl.xaml @@ -0,0 +1,16 @@ +<UserControl x:Class="Tango.PPC.UI.Controls.HeaderLoadingControl" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:local="clr-namespace:Tango.PPC.UI.Controls" + mc:Ignorable="d" + d:DesignHeight="80" d:DesignWidth="300" IsHitTestVisible="False"> + <Grid> + <StackPanel Orientation="Horizontal" Margin="20 0 0 0"> + <touch:TouchBusyIndicator IsIndeterminate="True" Width="50" Height="50" /> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0">Loading...</TextBlock> + </StackPanel> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/HeaderLoadingControl.xaml.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/HeaderLoadingControl.xaml.cs new file mode 100644 index 000000000..540e829c9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Controls/HeaderLoadingControl.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.UI.Controls +{ + /// <summary> + /// Interaction logic for HeaderLoadingControl.xaml + /// </summary> + public partial class HeaderLoadingControl : UserControl + { + public HeaderLoadingControl() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs index ae777839b..aaa5a9cf3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Notifications/DefaultNotificationProvider.cs @@ -386,5 +386,40 @@ namespace Tango.PPC.UI.Notifications { return ShowDialog<T>(Activator.CreateInstance<T>()); } + + /// <summary> + /// Sets the global busy message. + /// </summary> + /// <param name="message">The message.</param> + public void SetGlobalBusyMessage(string message) + { + GlobalBusyMessage = message; + IsInGlobalBusyState = true; + + RaisePropertyChanged(nameof(IsInGlobalBusyState)); + RaisePropertyChanged(nameof(GlobalBusyMessage)); + } + + /// <summary> + /// Releases the global busy message. + /// </summary> + public void ReleaseGlobalBusyMessage() + { + GlobalBusyMessage = null; + IsInGlobalBusyState = false; + + RaisePropertyChanged(nameof(IsInGlobalBusyState)); + RaisePropertyChanged(nameof(GlobalBusyMessage)); + } + + /// <summary> + /// Gets the current global busy message. + /// </summary> + public string GlobalBusyMessage { get; private set; } + + /// <summary> + /// Gets a value indicating whether this instance is in global busy state. + /// </summary> + public bool IsInGlobalBusyState { get; private set; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj index d2763510a..eaf53b993 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj @@ -101,6 +101,7 @@ <Reference Include="WindowsBase" /> <Reference Include="PresentationCore" /> <Reference Include="PresentationFramework" /> + <Reference Include="WindowsFormsIntegration" /> </ItemGroup> <ItemGroup> <ApplicationDefinition Include="App.xaml"> @@ -111,6 +112,9 @@ <Link>PPC.cs</Link> </Compile> <Compile Include="Authentication\DefaultAuthenticationProvider.cs" /> + <Compile Include="Controls\HeaderLoadingControl.xaml.cs"> + <DependentUpon>HeaderLoadingControl.xaml</DependentUpon> + </Compile> <Compile Include="Converters\NotificationItemConverter.cs" /> <Compile Include="Modules\DefaultStudioModuleLoader.cs" /> <Compile Include="Navigation\DefaultNavigationManager.cs" /> @@ -140,6 +144,10 @@ <Compile Include="Views\MainView.xaml.cs"> <DependentUpon>MainView.xaml</DependentUpon> </Compile> + <Page Include="Controls\HeaderLoadingControl.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="MainWindow.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml index c7d019981..7d170d04f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/LayoutView.xaml @@ -4,12 +4,14 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Tango.PPC.UI.Views" + xmlns:localControls="clr-namespace:Tango.PPC.UI.Controls" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:fa="http://schemas.fontawesome.io/icons/" xmlns:vm="clr-namespace:Tango.PPC.UI.ViewModels" xmlns:global="clr-namespace:Tango.PPC.UI" xmlns:localConverters="clr-namespace:Tango.PPC.UI.Converters" xmlns:touch="clr-namespace:Tango.Touch.Controls;assembly=Tango.Touch" + xmlns:commonControls="clr-namespace:Tango.PPC.Common.Controls;assembly=Tango.PPC.Common" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard;assembly=Tango.Touch" mc:Ignorable="d" @@ -110,6 +112,28 @@ </Grid> <Grid> <!--External Header Content Here--> + <commonControls:AsyncAdornerControl> + <commonControls:AsyncAdornerControl.Style> + <Style TargetType="commonControls:AsyncAdornerControl"> + <Setter Property="Visibility" Value="Hidden"></Setter> + <Style.Triggers> + <MultiDataTrigger> + <MultiDataTrigger.Conditions> + <Condition Binding="{Binding NotificationProvider.IsInGlobalBusyState}" Value="True" /> + <Condition Binding="{Binding IsMenuOpened}" Value="False" /> + </MultiDataTrigger.Conditions> + <Setter Property="Visibility" Value="Visible"></Setter> + </MultiDataTrigger> + </Style.Triggers> + </Style> + </commonControls:AsyncAdornerControl.Style> + <Grid> + <StackPanel Orientation="Horizontal"> + <touch:TouchBusyIndicator Width="50" Height="50" IsIndeterminate="True" /> + <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" FontSize="20" Text="{Binding NotificationProvider.GlobalBusyMessage}"></TextBlock> + </StackPanel> + </Grid> + </commonControls:AsyncAdornerControl> </Grid> </DockPanel> </Border> |
