aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/EmbeddedLogsView.xaml
blob: 7ec4177bd8206f868c50dcec3b56303a1785cf04 (pla
File2
'#n174'>174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
<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="{StaticResource WhiteBrush100}">
                <Border.Effect>
                    <DropShadowEffect />
                </Border.Effect>
                <Grid>
                    <StackPanel Orientation="Horizontal">
                        <Button Margin="10 0 0 0" Height="50" Style="{StaticResource MaterialDesignFlatButton}" Foreground="{StaticResource DarkGrayBrush}" 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" Background="{StaticResource Logging.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="{StaticResource DarkGrayBrush}" 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="{StaticResource TransparentBackgroundBrush400}">
                <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="{StaticResource OrangeBrush}"></Setter>
                                                                    </DataTrigger>
                                                                    <DataTrigger Binding="{Binding Category}" Value="Error">
                                                                        <Setter Property="Kind" Value="AlertOctagon"></Setter>
                                                                        <Setter Property="Foreground" Value="{StaticResource RedBrush100}"></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="{StaticResource GrayBrush300}"></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>