﻿<UserControl x:Class="Plugin.TsExecution.SingleControl"
             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:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI" 
             xmlns:pw="https://opensource.panuon.com/wpf"
             xmlns:pu="https://opensource.panuon.com/wpf-ui"
             xmlns:local="clr-namespace:Plugin.TsExecution"
             mc:Ignorable="d" 
             Loaded="UserControl_Loaded"
             Background="{StaticResource WarningColorContract}"
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <Style TargetType="Label" x:Key="baseLabel">
            <Setter Property="HorizontalContentAlignment" Value="Left"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="Padding" Value="5"/>
        </Style>
        <Style TargetType="TextBlock" x:Key="baseText">
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="Padding" Value="5"/>
        </Style>
    </UserControl.Resources>

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <Grid dp:GridHelper.InnerBorder="1" dp:GridHelper.Space="5" 
              dp:GridHelper.InnerBorderBrush="{StaticResource CommonBoarder}">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Label Grid.RowSpan="3">
                <Label.Style>
                    <Style TargetType="Label">
                        <Setter Property="Padding" Value="10"/>
                        <Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
                        <Setter Property="Background" Value="DeepSkyBlue"/>
                        <Setter Property="Foreground" Value="White"/>
                        <Setter Property="HorizontalContentAlignment" Value="Center"/>
                        <Setter Property="VerticalContentAlignment" Value="Center"/>
                        <Setter Property="FontSize" Value="50"/>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Status}" Value="Passed">
                                <Setter Property="Content" Value="&#xe65a;"/>
                                <Setter Property="Background" Value="Lime"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Testing">
                                <Setter Property="Content" Value="&#xeb61;"/>
                                <Setter Property="Background" Value="Gold"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Failed">
                                <Setter Property="Content" Value="&#xe604;"/>
                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Failed">
                                <Setter Property="Content" Value="&#xe604;"/>
                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Ready">
                                <Setter Property="Content" Value="&#xe6ae;"/>
                                <Setter Property="Background" Value="DeepSkyBlue"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Label.Style>
            </Label>

            <Label HorizontalContentAlignment="Left" Grid.Column="1" Content="{Binding Status}"/>

            <Label Style="{StaticResource baseLabel}" Grid.Row="1" Grid.Column="1">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Total}"/>
                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding TotalNum}"/>
                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Pass}"/>
                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding PassNum}"/>
                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Fail}"/>
                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding FailNum}"/>
                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.PassRate}"/>
                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding PassRate,StringFormat={}{0:P2}}"/>
                </StackPanel>
            </Label>

            <Label Style="{StaticResource baseLabel}" Grid.Row="2" Grid.Column="1">
                <StackPanel Orientation="Horizontal">
                    <Label Style="{StaticResource baseLabel}" Content="{DynamicResource Ts.CurrentSnr}"/>
                    <Label Style="{StaticResource baseLabel}" Margin="5,0,20,0" Content="{Binding Barcode}"/>
                    <Label Style="{StaticResource baseLabel}" Content="{DynamicResource Ts.TimeSpan}"/>
                    <Label Style="{StaticResource baseLabel}" Margin="5,0,20,0" Content="{Binding ElapseTime}"/>
                </StackPanel>
            </Label>
        </Grid>

        <DataGrid Grid.Row="2" Style="{StaticResource DefaultDataGrid}" 
                  pu:DataGridHelper.ColumnHeaderFontSize="12"
                  pu:DataGridHelper.ColumnHeaderPadding="3"
                  RowHeight="20"
                  FontSize="12"
                  ColumnHeaderHeight="30"
                  x:Name="table">
            <DataGrid.Resources>
                <Style TargetType="DataGridCell" 
       BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridCellStyle}}">
                    <Setter Property="Background" Value="Transparent"/>
                    <Setter Property="Padding" Value="2"/>
                    <Setter Property="BorderThickness" Value="0"/>
                    <Setter Property="Background" Value="Transparent"/>
                </Style>

                <Style TargetType="DataGridColumnHeader" 
BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridColumnHeaderStyle}}">
                    <Setter Property="Padding" Value="5"/>
                    <Setter Property="BorderThickness" Value="0"/>
                </Style>
            </DataGrid.Resources>

            <DataGrid.Columns>
                <DataGridTemplateColumn Header="#" CanUserResize="False">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Converter={StaticResource rowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <DataGridTextColumn Width="*" Binding="{Binding Name}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Name}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding Unit}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Unit}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding Value}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Value}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding LimitDown}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.LimitDown}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding LimitUp}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.LimitUp}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTemplateColumn Width="*">
                    <DataGridTemplateColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Result}"/>
                    </DataGridTemplateColumn.Header>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock x:Name="text" VerticalAlignment="Center" Text="{Binding Result}"/>
                            <DataTemplate.Triggers>
                                <DataTrigger Binding="{Binding Result}" Value="Passed">
                                    <Setter TargetName="text" Property="Foreground" Value="Green"/>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding Result}" Value="Failed">
                                    <Setter TargetName="text" Property="Foreground" Value="Red"/>
                                </DataTrigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</UserControl>
