aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Tango.FSE.UI/Views/EventsView.xaml
blob: 1093c1ff773427cc8036df5a2be0b8c972f0b334 (plain)
1
2
3
4
5
6pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
syntax = "proto3";

import "LiquidType.proto";
import "CalibrationData.proto";

package Tango.PMR.ColorLab;
option java_package = "com.twine.tango.pmr.colorlab";

message InputLiquid
{
	LiquidType LiquidType = 1;
	CalibrationData CalibrationData = 2;
	double MaxNanoliterPerCentimeter = 3;
	double Volume = 4;
}
'n239' href='#n239'>239
<UserControl x:Class="Tango.FSE.UI.Views.EventsView"
             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:global="clr-namespace:Tango.FSE.UI"
             xmlns:vm="clr-namespace:Tango.FSE.UI.ViewModels"
             xmlns:controls="clr-namespace:Tango.FSE.Common.Controls;assembly=Tango.FSE.Common"
             xmlns:material="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:resolution="clr-namespace:Tango.FSE.Common.Resolution;assembly=Tango.FSE.Common"
             xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
             xmlns:local="clr-namespace:Tango.FSE.UI.Views"
             mc:Ignorable="d" 
             d:DesignHeight="720" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Type=vm:EventsViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.EventsViewVM}" Background="{StaticResource FSE_PrimaryBackgroundBrush}" Foreground="{StaticResource FSE_PrimaryForegroundBrush}">
    <Grid Margin="20">
        <Image Source="/Images/events_back.png" HorizontalAlignment="Right" VerticalAlignment="Top" Opacity="0.05" Stretch="None" />
        <DockPanel>
            <Grid DockPanel.Dock="Top" Height="100">
                <DockPanel HorizontalAlignment="Left">
                    <Image Source="/Images/menu/events.png" Stretch="None" />
                    <StackPanel Margin="10 15 0 0">
                        <TextBlock FontSize="{StaticResource FSE_ModuleHeaderFontSize}" Foreground="{StaticResource FSE_PrimaryAccentBrush}" >Machine Events</TextBlock>
                        <TextBlock>Below you can find the list of active and resolved machine events.</TextBlock>
                    </StackPanel>
                </DockPanel>
            </Grid>
            <Grid Margin="70 40 0 0">
                <ScrollViewer x:Name="scrollEvents" FocusVisualStyle="{x:Null}" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
                    <StackPanel Width="700" HorizontalAlignment="Left">
                        <DockPanel>
                            <material:PackIcon Kind="NotificationsActive" Width="24" Height="24" />
                            <TextBlock VerticalAlignment="Center" Margin="5 0 0 0" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_LargeFontSize}" FontWeight="SemiBold">Active Events</TextBlock>
                        </DockPanel>
                        <DockPanel Opacity="0.5" Height="150" Margin="20 20 0 0" TextElement.Foreground="{StaticResource FSE_GrayBrush}" Visibility="{Binding EventsProvider.ActiveEvents.Count,Converter={StaticResource IsEqualToVisibilityConverter},ConverterParameter=0}">
                            <material:PackIcon VerticalAlignment="Top" Kind="InfoOutline" Width="32" Height="32" />
                            <TextBlock Margin="10 6 0 0" VerticalAlignment="Top" FontSize="{StaticResource FSE_LargeFontSize}">no active events</TextBlock>
                        </DockPanel>
                        <ListBox x:Name="listBoxActiveEvents" ItemContainerStyle="{StaticResource FSE_BlankListBoxItem}" Background="Transparent" HorizontalContentAlignment="Stretch" Margin="15 5 0 0" ItemsSource="{Binding EventsProvider.ActiveEvents}" SelectedItem="{Binding SelectedEvent}">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <Grid Margin="0 10">
                                        <DockPanel>
                                            <material:PackIcon Width="24" Height="24" Style="{StaticResource FSE_LogIcon}" />
                                            <StackPanel Margin="10 0 0 0">
                                                <DockPanel VerticalAlignment="Center">
                                                    <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" DockPanel.Dock="Right" Text="{Binding DateTime,Converter={StaticResource DateTimeUtcToLocalDateTime},StringFormat='HH:mm:ss'}" ToolTip="{Binding DateTime,Converter={StaticResource DateTimeUtcHumanizeConverter}}"></TextBlock>
                                                    
                                                    <TextBlock Text="{Binding EventType.Title}">
                                                        <TextBlock.Style>
                                                            <Style TargetType="TextBlock">
                                                                <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryForegroundBrush}"></Setter>
                                                                <Style.Triggers>
                                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem},Path=IsSelected}" Value="True">
                                                                        <Setter Property="Foreground" Value="{StaticResource FSE_PrimaryAccentBrush}"></Setter>
                                                                    </DataTrigger>
                                                                </Style.Triggers>
                                                            </Style>
                                                        </TextBlock.Style>
                                                    </TextBlock>
                                                </DockPanel>
                                                <Rectangle Margin="0 5 0 5" DockPanel.Dock="Top" VerticalAlignment="Bottom" StrokeThickness="1">
                                                    <Rectangle.Stroke>
                                                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                                                            <GradientStop Offset="0" Color="{StaticResource FSE_BorderColor}" />
                                                            <GradientStop Offset="1" Color="Transparent" />
                                                        </LinearGradientBrush>
                                                    </Rectangle.Stroke>
                                                </Rectangle>

                                                <DockPanel TextElement.FontSize="{StaticResource FSE_SmallFontSize}" TextElement.Foreground="{StaticResource FSE_GrayBrush}">
                                                    <TextBlock DockPanel.Dock="Right"><Run>#</Run><Run Text="{Binding EventType.Code}"></Run></TextBlock>
                                                    <TextBlock Text="{Binding EventType.TechnicalDescription}" Margin="0 0 10 0" TextWrapping="Wrap"></TextBlock>
                                                </DockPanel>
                                                <StackPanel Margin="0 5 0 0" TextElement.FontSize="{StaticResource FSE_SmallerFontSize}" TextElement.Foreground="{StaticResource FSE_GrayBrush}">
                                                    <!--<TextBlock Text="{Binding EventType.Name}"></TextBlock>-->
                                                    <TextBlock TextWrapping="Wrap" Margin="0 2 0 0" Text="{Binding Description}"></TextBlock>
                                                </StackPanel>

                                            </StackPanel>
                                        </DockPanel>
                                    </Grid>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>

                        <DockPanel Margin="0 60 0 0">
                            <material:PackIcon Kind="History" Width="24" Height="24" />
                            <DockPanel VerticalAlignment="Center" Margin="5 0 0 0" >
                                <controls:ToggleIconButton Cursor="Hand" x:Name="chkHistory" DockPanel.Dock="Right" ToolTip="Show/Hide resolved" UncheckedIcon="ChevronDown" CheckedIcon="ChevronUp" />
                                <TextBlock VerticalAlignment="Center" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_LargeFontSize}" FontWeight="SemiBold">Resolved Events</TextBlock>
                            </DockPanel>
                        </DockPanel>
                        <StackPanel Visibility="{Binding ElementName=chkHistory,Path=IsChecked,Converter={StaticResource BooleanToVisibilityConverter}}">
                            <DockPanel Opacity="0.5" Margin="20 20 0 0" TextElement.Foreground="{StaticResource FSE_GrayBrush}" Visibility="{Binding EventsProvider.EventsHistory.Count,Converter={StaticResource IsEqualToVisibilityConverter},ConverterParameter=0}">
                                <material:PackIcon VerticalAlignment="Top" Kind="InfoOutline" Width="32" Height="32" />
                                <TextBlock Margin="10 6 0 0" VerticalAlignment="Top" FontSize="{StaticResource FSE_LargeFontSize}">no resolved events</TextBlock>
                            </DockPanel>
                            <ItemsControl Opacity="0.6" Background="Transparent" HorizontalContentAlignment="Stretch" Margin="15 5 0 0" ItemsSource="{Binding EventsProvider.EventsHistory}">
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <Grid Margin="0 10">
                                            <DockPanel>
                                                <material:PackIcon Width="24" Height="24" Style="{StaticResource FSE_LogIcon}" />
                                                <StackPanel Margin="10 0 0 0">
                                                    <DockPanel VerticalAlignment="Center">
                                                        <TextBlock FontSize="{StaticResource FSE_SmallFontSize}" DockPanel.Dock="Right" Text="{Binding DateTime,Converter={StaticResource DateTimeUtcToLocalDateTime},StringFormat='HH:mm:ss'}" ToolTip="{Binding DateTime,Converter={StaticResource DateTimeUtcHumanizeConverter}}"></TextBlock>
                                                        <TextBlock Text="{Binding EventType.Title}"></TextBlock>
                                                    </DockPanel>
                                                    <Rectangle Margin="0 5 0 5" DockPanel.Dock="Top" VerticalAlignment="Bottom" StrokeThickness="1">
                                                        <Rectangle.Stroke>
                                                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                                                                <GradientStop Offset="0" Color="{StaticResource FSE_BorderColor}" />
                                                                <GradientStop Offset="1" Color="Transparent" />
                                                            </LinearGradientBrush>
                                                        </Rectangle.Stroke>
                                                    </Rectangle>

                                                    <DockPanel TextElement.FontSize="{StaticResource FSE_SmallFontSize}" TextElement.Foreground="{StaticResource FSE_GrayBrush}">
                                                        <TextBlock DockPanel.Dock="Right"><Run>#</Run><Run Text="{Binding EventType.Code}"></Run></TextBlock>
                                                        <TextBlock Text="{Binding EventType.TechnicalDescription}" Margin="0 0 10 0" TextWrapping="Wrap"></TextBlock>
                                                    </DockPanel>
                                                    <StackPanel Margin="0 5 0 0" TextElement.FontSize="{StaticResource FSE_SmallerFontSize}" TextElement.Foreground="{StaticResource FSE_GrayBrush}">
                                                        <!--<TextBlock Text="{Binding EventType.Name}"></TextBlock>-->
                                                        <TextBlock TextWrapping="Wrap" Margin="0 2 0 0" Text="{Binding Description}"></TextBlock>
                                                        <TextBlock Foreground="{StaticResource FSE_GreenBrush}" TextWrapping="Wrap" Margin="0 2 0 0">
                                                            <Run>Resolved after</Run>
                                                            <Run Text="{Binding Duration,Converter={StaticResource TimeSpanHumanizeConverter},Mode=OneWay}"></Run>
                                                        </TextBlock>
                                                    </StackPanel>

                                                </StackPanel>
                                            </DockPanel>
                                        </Grid>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>
                        </StackPanel>
                    </StackPanel>
                </ScrollViewer>
            </Grid>
        </DockPanel>

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*" />
                <ColumnDefinition Width="1*" />
            </Grid.ColumnDefinitions>
            <StackPanel Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock HorizontalAlignment="Left" FontSize="{StaticResource FSE_ModuleHeaderFontSize}">status</TextBlock>

                <DockPanel Margin="0 10 0 0">
                    <Grid>
                        <Grid Visibility="{Binding EventsProvider.HasActiveEvents,Converter={StaticResource BooleanToVisibilityConverter}}">
                        <lvc:PieChart resolution:ResolutionHelper.Mode="High" DisableAnimations="True" LegendLocation="None" Hoverable="False" DataTooltip="{x:Null}"  Width="320" Height="300" InnerRadius="80">
                            <lvc:PieChart.Series>
                                <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_PrimaryBackgroundBrush}" Fill="{StaticResource FSE_WarningBrush}" FontSize="16" Title="Warning" Values="{Binding WarningEvents,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" 
                               />
                                <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_PrimaryBackgroundBrush}" Fill="{StaticResource FSE_ErrorBrush}" FontSize="16" Title="Error" Values="{Binding ErrorEvents,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" 
                               />
                                <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_PrimaryBackgroundBrush}" Fill="{StaticResource FSE_CriticalBrush}" FontSize="16" Title="Critical" Values="{Binding CriticalEvents,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" 
                               />
                            </lvc:PieChart.Series>
                        </lvc:PieChart>
                        </Grid>
                        <Grid Visibility="{Binding EventsProvider.HasActiveEvents,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
                        <lvc:PieChart resolution:ResolutionHelper.Mode="High" DisableAnimations="True" LegendLocation="None" Hoverable="False" DataTooltip="{x:Null}"  Width="320" Height="300" InnerRadius="80">
                            <lvc:PieChart.Series>
                                <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_PrimaryBackgroundBrush}" Fill="{StaticResource FSE_GrayBrush}" FontSize="16" Title="Warning" Values="1" DataLabels="False" 
                               />
                                <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_PrimaryBackgroundBrush}" Fill="{StaticResource FSE_GrayBrush}" FontSize="16" Title="Error" Values="1" DataLabels="False" 
                               />
                                <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_PrimaryBackgroundBrush}" Fill="{StaticResource FSE_GrayBrush}" FontSize="16" Title="Critical" Values="1" DataLabels="False" 
                               />
                            </lvc:PieChart.Series>
                        </lvc:PieChart>
                        </Grid>
                    </Grid>
                    <StackPanel Margin="10 0 0 0">
                        <TextBlock>active events summery:</TextBlock>

                        <StackPanel TextElement.FontSize="{StaticResource FSE_SmallFontSize}" Margin="0 20 0 0">
                            <DockPanel Margin="0 5">
                                <material:PackIcon Kind="BellAlert" Foreground="{StaticResource FSE_CriticalBrush}" />
                                <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
                                    <Run Text="{Binding CriticalEvents}"></Run>
                                    <Run>critical</Run>
                                </TextBlock>
                            </DockPanel>
                            <DockPanel Margin="0 5">
                                <material:PackIcon Kind="Alert" Foreground="{StaticResource FSE_ErrorBrush}" />
                                <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
                                    <Run Text="{Binding ErrorEvents}"></Run>
                                    <Run>errors</Run>
                                </TextBlock>
                            </DockPanel>
                            <DockPanel Margin="0 5">
                                <material:PackIcon Kind="Alert" Foreground="{StaticResource FSE_WarningBrush}" />
                                <TextBlock Margin="5 0 0 0" VerticalAlignment="Center">
                                    <Run Text="{Binding WarningEvents}"></Run>
                                    <Run>warnings</Run>
                                </TextBlock>
                            </DockPanel>
                        </StackPanel>

                        <TextBlock Margin="0 40 0 0">job execution status:</TextBlock>
                        <DockPanel Margin="0 20 0 0">
                            <material:PackIcon>
                                <material:PackIcon.Style>
                                    <Style TargetType="material:PackIcon">
                                        <Setter Property="Foreground" Value="{StaticResource FSE_ErrorBrush}"></Setter>
                                        <Setter Property="Kind" Value="Alert"></Setter>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding CanExecuteJob}" Value="True">
                                                <Setter Property="Foreground" Value="{StaticResource FSE_SuccessBrush}"></Setter>
                                                <Setter Property="Kind" Value="Check"></Setter>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </material:PackIcon.Style>
                            </material:PackIcon>
                            <TextBlock Margin="5 -2 0 0" VerticalAlignment="Center" FontSize="{StaticResource FSE_SmallFontSize}">
                                <TextBlock.Style>
                                    <Style TargetType="TextBlock">
                                        <Setter Property="Text" Value="cannot execute job"></Setter>
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding CanExecuteJob}" Value="True">
                                                <Setter Property="Text" Value="job execution is enabled"></Setter>
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </TextBlock.Style>
                            </TextBlock>
                        </DockPanel>
                    </StackPanel>
                </DockPanel>
            </StackPanel>
        </Grid>
    </Grid>
</UserControl>