<UserControl x:Class="Tango.MachineStudio.Logging.Views.EmbeddedLogsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete"
xmlns:autoCompleteMachine="clr-namespace:Tango.MachineStudio.Common.AutoComplete;assembly=Tango.MachineStudio.Common"
xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
xmlns:global="clr-namespace:Tango.MachineStudio.Logging"
xmlns:localConverters="clr-namespace:Tango.MachineStudio.Logging.Converters"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:vm="clr-namespace:Tango.MachineStudio.Logging.ViewModels"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Tango.MachineStudio.Logging.Views"
mc:Ignorable="d"
d:DesignHeight="1080" d:DesignWidth="1920" d:DataContext="{d:DesignInstance Type=vm:EmbeddedLogsViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.EmbeddedLogsViewVM}">
<UserControl.Resources>
<autoCompleteMachine:MachinesProvider x:Key="MachinesProvider" />
<converters:DateTimeUTCToShortDateTimeConverter x:Key="DateTimeUTCToShortDateTimeConverter" />
<converters:DateTimeUTCToStringConverter x:Key="DateTimeUTCToStringConverter" />
<localConverters:DateIsInListToBooleanConverter x:Key="DateIsInListToBooleanConverter" />
<Style x:Key="CustomCalendarDayButtonStyle" TargetType="{x:Type CalendarDayButton}" BasedOn="{StaticResource MaterialDesignCalendarDayButton}">
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource DateIsInListToBooleanConverter}">
<Binding />
<Binding RelativeSource="{RelativeSource AncestorType=UserControl}" Path="DataContext.Dates" />
<Binding RelativeSource="{RelativeSource AncestorType=DatePicker}" Path="IsDropDownOpen" ></Binding>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="HighlightDatePickerStyle" TargetType="{x:Type Calendar}" BasedOn="{StaticResource {x:Type Calendar}}">
<Setter Property="CalendarDayButtonStyle" Value="{StaticResource CustomCalendarDayButtonStyle}" />
</Style>
<Style TargetType="DatePickerTextBox" BasedOn="{StaticResource {x:Type DatePickerTextBox}}">
<Setter Property="IsReadOnly" Value="True"/>
</Style>
</UserControl.Resources>
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="79"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Border Background="#F1F1F1">
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
<Grid>
<StackPanel Orientation="Horizontal">
<Button Margin="10 0 0 0" Height="50" Style="{StaticResource MaterialDesignFlatButton}" Foreground="#202020" Command="{Binding NavigateToHomeCommand}" HorizontalContentAlignment="Left">
<StackPanel Orientation="Horizontal" >
<materialDesign:PackIcon Kind="ArrowLeftBold" Width="20" Height="20" />
<TextBlock Margin="5 0 0 0" FontSize="16">BACK</TextBlock>
</StackPanel>
</Button>
<Border Margin="10" Padding="5" BorderBrush="DimGray" BorderThickness="1">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="White"/>
<GradientStop Color="#FFEAEAEA" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Calendar" Width="24" Height="24" VerticalAlignment="Bottom" Margin="0 0 0 5" />
<DatePicker x:Name="datePicker" DisplayDateStart="{Binding MinDate}" DisplayDateEnd="{Binding MaxDate}" CalendarStyle="{StaticResource HighlightDatePickerStyle}" SelectedDate="{Binding SelectedDate}" materialDesign:HintAssist.Hint="Pick Date" Margin="10 0 0 5" Width="200" VerticalAlignment="Bottom" FontSize="16">
</DatePicker>
<ToggleButton VerticalAlignment="Bottom" Margin="20 0 0 5" IsChecked="{Binding IsRealTime}"></ToggleButton>
<TextBlock VerticalAlignment="Center" Margin="10 17 0 0">Real-Time</TextBlock>
</StackPanel>
</Border>
<Button Style="{StaticResource MaterialDesignFlatButton}" Command="{Binding ToggleRealTimePaused}" Padding="0" Height="50" Width="50" Foreground="#202020" ToolTip="Pause/Resume Real-Time">
<materialDesign:PackIcon Width="50" Height="50">
<materialDesign:PackIcon.Style>
<Style TargetType="materialDesign:PackIcon">
<Setter Property="Kind" Value="Pause"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding RealTimePaused}" Value="True">
<Setter Property="Kind" Value="Play"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</materialDesign:PackIcon.Style>
</materialDesign:PackIcon>
</Button>
<Button Margin="20 0 0 0" Background="#FF7777" BorderBrush="#FF7777" ToolTip="Clear real-time logs" Command="{Binding ClearRealTimeLogsCommand}">
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Width="24" Height="24" Kind="DeleteSweep" />
<TextBlock VerticalAlignment="Center" Margin="10 0 0 0">CLEAR</TextBlock>
</StackPanel>
</Button>
</StackPanel>
</Grid>
</Border>
<Grid Grid.Row="1" Background="#B3FFFFFF">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid>
<Grid>
<Grid>
<DataGrid x:Name="grid" SelectedCellsChanged="grid_SelectedCellsChanged" Background="Transparent" AutoGenerateColumns="False" SelectionMode="Single" ItemsSource="{Binding Logs}" SelectedItem="{Binding SelectedLog}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="True" IsReadOnly="True">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow" BasedOn="{StaticResource {x:Type DataGridRow}}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Transparent"></Setter>
<Setter Property="Foreground" Value="{StaticResource AccentColorBrush}" />
<Setter Property="Cursor" Value="Hand"></Setter>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent"></Setter>
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Background" Value="Transparent"></Setter>
</Trigger>
<!--<DataTrigger Binding="{Binding CallerMethodName}" Value="OnStartup">
<Setter Property="Background" Value="{StaticResource AccentColorBrush}"></Setter>
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="SemiBold"></Setter>
<Setter Property="Cursor" Value="Arrow"></Setter>
</DataTrigger>-->
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent"></Setter>
</Trigger>
<!--<DataTrigger Binding="{Binding CallerMethodName}" Value="OnStartup">
<Setter Property="Background" Value="{StaticResource AccentColorBrush}"></Setter>
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="SemiBold"></Setter>
<Setter Property="Cursor" Value="Arrow"></Setter>
</DataTrigger>-->
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTemplateColumn Header="#">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<materialDesign:PackIcon Width="16" Height="16">
<materialDesign:PackIcon.Style>
<Style TargetType="materialDesign:PackIcon">
<Setter Property="Kind" Value="Alert"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding Category}" Value="Info">
<Setter Property="Kind" Value="Information"></Setter>
<Setter Property="Foreground" Value="DimGray"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Category}" Value="Warning">
<Setter Property="Kind" Value="Alert"></Setter>
<Setter Property="Foreground" Value="#FFA300"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Category}" Value="Error">
<Setter Property="Kind" Value="AlertOctagon"></Setter>
<Setter Property="Foreground" Value="#FF5C5C"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Category}" Value="Critical">
<Setter Property="Kind" Value="BellPlus"></Setter>
<Setter Property="Foreground" Value="Red"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Category}" Value="Debug">
<Setter Property="Kind" Value="Bug"></Setter>
<Setter Property="Foreground" Value="#303030"></Setter>
</DataTrigger>
<!--<DataTrigger Binding="{Binding CallerMethodName}" Value="OnStartup">
<Setter Property="Kind" Value="ClockFast"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
</DataTrigger>-->
</Style.Triggers>
</Style>
</materialDesign:PackIcon.Style>
</materialDesign:PackIcon>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="DATE TIME" Binding="{Binding TimeStamp,StringFormat='MM/dd/yyyy HH:mm:ss.ff'}" />
<DataGridTextColumn Header="FILE" Binding="{Binding DebugLogResponse.FileName}" />
<DataGridTextColumn Header="LINE" Binding="{Binding DebugLogResponse.LineNumber}" />
<DataGridTextColumn Header="MODULE" Binding="{Binding DebugLogResponse.ModuleId}" />
<DataGridTextColumn Header="FILTER" Binding="{Binding DebugLogResponse.Filter}" />
<DataGridTemplateColumn Header="MESSAGE" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MessagePlusRepeated}" TextTrimming="CharacterEllipsis"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Grid>
</Grid>
</Grid>
</Grid>
</Grid>
</Grid>
</UserControl>