aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/ApplicationLogsView.xaml
blob: 486c0751d63506908418d775b1045e74123e5b33 (plain)
1
2
pre { 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 */
<Application x:Class="Tango.MachineStudio.HardwareDesigner.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/Tango.MachineStudio.Common;component/Resources/MaterialDesign.xaml" />
                <ResourceDictionary Source="pack://application:,,,/Tango.MachineStudio.Common;component/Themes/LightThemeColors.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
f='#n203'>203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
<UserControl x:Class="Tango.MachineStudio.Logging.Views.ApplicationLogsView"
             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:ApplicationLogsViewVM, IsDesignTimeCreatable=False}" DataContext="{x:Static global:ViewModelLocator.ApplicationLogsViewVM}">
    <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}" IsEnabled="{Binding IsRealTime}" 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" IsEnabled="{Binding IsRealTime}" 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>

                        <Border BorderThickness="1" BorderBrush="#3B3B3B" VerticalAlignment="Center" Padding="10 7" CornerRadius="5" Margin="30 0 0 0">
                            <StackPanel>
                                <ItemsControl VerticalAlignment="Center" ItemsSource="{Binding SelectedLogCategories}">
                                    <ItemsControl.ItemsPanel>
                                        <ItemsPanelTemplate>
                                            <StackPanel Orientation="Horizontal" />
                                        </ItemsPanelTemplate>
                                    </ItemsControl.ItemsPanel>
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <StackPanel Orientation="Horizontal" Margin="10 0 0 0">
                                                <CheckBox IsChecked="{Binding IsSelected}" VerticalAlignment="Center"></CheckBox>
                                                <TextBlock Text="{Binding Data}" Margin="5 0 0 0" VerticalAlignment="Center"></TextBlock>
                                            </StackPanel>
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </StackPanel>
                        </Border>

                        <CheckBox VerticalAlignment="Center" Margin="20 0 0 0" IsChecked="{Binding ProcessDebugLogs}" IsEnabled="{Binding IsRealTime}" ToolTip="Allow incoming real-time debug logs">Enable Debug Logs</CheckBox>
                    </StackPanel>

                    <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0 0 30 0">
                        <materialDesign:PackIcon Kind="Magnify" Width="24" Height="24" />
                        <TextBox VerticalAlignment="Center" Margin="10 0 0 0" Width="300" Text="{Binding Filter,UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding RealTimePaused}" materialDesign:HintAssist.Hint="Filter" />
                    </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" Background="Transparent" RenderOptions.EdgeMode="Aliased" RenderOptions.BitmapScalingMode="LowQuality" MaxWidth="{Binding RelativeSource={RelativeSource AncestorType=Grid},Path=ActualWidth}" AutoGenerateColumns="False" SelectionMode="Single" SelectedCellsChanged="grid_SelectedCellsChanged"  ItemsSource="{Binding LogsViewSource}" 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>
                                                <DataTrigger Binding="{Binding LogObject}" Value="External Bridge">
                                                    <Setter Property="Foreground" Value="#28A805" />
                                                </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 RelativeCallerFile}" />
                                        <DataGridTextColumn Header="METHOD" Binding="{Binding CallerMethodName}" />
                                        <DataGridTextColumn Header="LINE" Binding="{Binding CallerLineNumber}" />
                                        <DataGridTemplateColumn Header="MESSAGE" Width="1*">
                                            <DataGridTemplateColumn.CellTemplate>
                                                <DataTemplate>
                                                    <TextBlock Text="{Binding Message}" TextTrimming="CharacterEllipsis"></TextBlock>
                                                </DataTemplate>
                                            </DataGridTemplateColumn.CellTemplate>
                                        </DataGridTemplateColumn>
                                    </DataGrid.Columns>
                                </DataGrid>
                            </Grid>
                        </Grid>
                    </Grid>
                </Grid>
            </Grid>
        </Grid>
    </Grid>
</UserControl>